npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@micromint1npm/repudiandae-maiores-perspiciatis

v1.0.0

Published

<div align="center"> <h1>Is this an invitation to a Discord server? ➕</h1> <p> This module checks whether a string is a Discord server invitation. If it is, it fetches information from the API to find out more about the server.

Downloads

11

Maintainers

dophung94zxdophung94zx

Keywords

warningstatelesszerofast-deep-cloneespreereducerspinnerdom-testing-libraryparsershrinkwraptestqueryweaksetcoloursymlinksfindLastJSONmetadatasimpledb0compilerpopmotionjasmineMicrosoftdataviewratelimitelectrongetOwnPropertyDescriptorquotebreakreadequalES2019ECMAScript 6codesprefixrdsmatchbinaryUint32Arrayfiltersymlinkpropbrowserlistenvironmentcallboundtypeofdireverystringmime-dblistenerscss-in-jsassertionemrnamesetImmediateES3animationcolumnswhichYAMLchromepreserve-symlinksdiffcollectionpipedeletecharactermovespecdeepexpressoffsetfetchlook-ups3terminaltostringtagObject.keysaccessordependency manager256upObject.definePropertykeystableoptimizeres2016nopewaapitestingscheme-validationStreamsspawnObject.getPrototypeOfsharedES6workspace:*execkarmaes2017errorinternalhttprateprivateWeakSettoArrayendpointstyled-componentsimmutableregexpInt8ArrayglobalReflect.getPrototypeOffindfullexecutegetoptisArrayBuffermimevalideventDispatcheramazontoobjectfsArrayBuffer#slicefullwidthexpressionstringifierjsonwriteecmascriptarraychineseenvawscommanderloadingloggingroutesafevpcdotenvgetenderString.prototype.matchAllworkeroptimistfindupcallpyyamldeep-cloneECMAScript 2023rfc4122RxPushpostcss-pluginframeriteratorfixed-widthconsumeparsetypaniontransformESprogresstrimRightes2015resolvetypesprivate dataquerystringzxMapECMAScript 2022globalswafconfigFunction.prototype.nameWebSocketreal-timebatchfast-clonenamesxtermes6full-widthrm -rfredirectUint16ArraypropertiesowneslintpluginpluginisConcatSpreadablefromloadbalancingloggerglobtouchreduxcode pointsequalityyupworkflowCSSaccessibilityconcurrencyes5Array.prototype.includestrimEndcurltime$.extendmatcheshttpsargstslibECMAScript 2021es-shim APITypedArrayUint8Arraycall-boundtypescriptbddtraverseyamlrangeerrorjshintECMAScript 2017iteratemobilermdirfastifyairbnbwalkingpostcssec23ddirectoryasciientriesdebuggerES2016ignore@@toStringTagdebugwaitURLArraylocationemitpackage managernpmroutinga11yjavascriptuuidArray.prototype.flattenvalidateES2022ES2017react animationqueueMicrotasktsinstallerES2020ieenumerablevisualrapidspinnerscall-bindperformantcloudfrontcallbindSymbol.toStringTagprocessnegativelockfilergbflatschemabytejoinumberinternal slotmatchAllStreamfunctionsmkdirsString.prototype.trimtesterdeep-copyasynchasOwnfolderes-shimscircularFloat32ArraycreateassertspicomatchBigUint64ArraycolumnlazyBigInt64Arraygraphql-clientcolorselbconcatMapcacheredact__proto__eslintconfigfunctionalpruneextensionguidstructuredCloneECMAScript 2016-0makestylessubprocesspnpm9modulesdataViewautoprefixerviewfunction.lengthdependenciescensornegative zerovariablessesextendfeedsnstypedchromiumcoreconfigurablewalkECMAScript 3minimalObjectcssinstallutilkoreanArrayBuffer.prototype.slicefastclonebyteLengthbinariesbrowserstdlibtypesafeflagszodsameValueZeroFloat64ArraybusygetPrototypeOfES2015tc39textdatastructurehelpermanagerunicodereworkRxJSlinkstreammake dirtoolkitform-validationsqsmonoreposharedarraybuffersettercommand-lineforEachreact-hooksnodejsstoragegatewayredux-toolkitObject.fromEntriescoerciblestringifyesreadableES2023wordbreakspringconcatlruhasOwnPropertyWeakMapmkdirtermlinewrapsortedsortcompare[[Prototype]]Array.prototype.findLastIndexECMAScript 2020gitignoreUint8ClampedArrayparsingsyntaxfpsjsdomenvironmentsjestArray.prototype.containsstreams2htmlcontainssettingsES7charactersxhrInt16Arrayconsole_.extendpreprocessorsyntaxerrorasteriskscore-jseslintprotobufdataregular expressionESnextbundlingObject.isimmerobjdefineflagdescriptionrulesArray.prototype.filter.gitignorelastbluebirdthrottleescapesomeautoscalinglocalelasticacheassertincludeswidthlinthasArray.prototype.flatMaphas-ownoncedateinvariantschemepropertyUnderscorexmlwgetECMAScript 5parentsymbolpusheventEmitternodees2018importexporttakebinclifindLastIndexintrinsiccloudsearchgetintrinsictypedarraysastbyteOffsetwritablemimetypesavasequencefigletttystarterstylingmapreduceregular-expressionpolyfilllimitedtyped arraycallbackrm -frtoSortedatomshellnpmignoreefficientpathdefinePropertyrequestECMAScript 7serializeclass-validatorcommanddroplimitexecfileStyleSheetgraphqlcjkboundwordwrapObject.valuessettapthreesource mapphonevaluesprototypehelperscopythroatdynamodbgetteromitcloneslotsetPrototypeOfiddayjsArray.prototype.flatgroupponyfillreact-hook-formObject.entriesarktypelogchannelawesomesauceeast-asian-widthobjectsuperstructstreamsfnmatchpromisestypeerrorhookformRegExp#flagsemojies7formattingio-tsreact-testing-librarybufferes-abstractfast-copyURLSearchParamssymbolsoptionArray.prototype.findLastfunctionkinesisargvstyleflattentrimStartjQueryapolloproxymoduleformatECMAScript 2015protolibphonenumberInt32Arrayshimbuffersjsreadablestreamhardlinksi18nrobustTypeBoxvarsiamgenericsartReactiveExtensionscomputed-typesinferenceoutputmkdirpPromisetapeECMAScript 2019idlebindimportuninstallfastruntimetrimreducejsdiffbeanstalkqueuepackagesnativeshebangweakmaputil.inspectforkTypeScriptremoveidentifiersgdprcloudformationarraysES8duplexbundlerReactiveXcolorbannerhashRegExp.prototype.flagsregular expressionsagentWebSocketsdraghigher-ordermulti-package.envdescriptorsajaxindeterministicRFC-6455wrapmomenteventsfilerecursiveObservableassignpersistentES5ObservablesES2021sidesuperagentjsxdomswfrssvestroute53randominputansiregularserializerurlcloudtrailargumentmrupromisemaprequirecloudwatchshames8manipulationIteratorwhatwgCSSStyleDeclarationextrautilityebshooksajvtelephonemochaSetreact poseperformanceprettyAsyncIteratortddstyleguideglacierpackagebrowserslistestreeawaiteslint-pluginposespeedl10nECMAScript 2018package.jsongroupByregexjapaneseObject.assignSymbolutilitieslooksliceapipatchcheckformtoStringTagtypeqskeysdeepclonetypedarraygesturesprotocol-buffersdeepcopychaiiterationlengthdescriptorinspectmergeES2018childtoolsclientreusefile systemformslanguagecryptocollection.es6validationrmarraybuffer

Readme

📥 » Installation

npm install @micromint1npm/repudiandae-maiores-perspiciatis

✨ Example bot made in Discord.js

https://github.com/sefinek24/is-discord-invitation-bot

🤔 » Table

| Function | Async/await | Options | Validation | Faster method | Reliability | Recommended | |----------|:------------|------------------------------|:-------------------------------------------|---------------|-------------|:------------| | online | Yes | View | API | ❌ | ✅ | ✅ | | regex | No | View | Regex | ✅ | ❌ | ❌ |

🌍 API

online(message)

Checks for valid Discord invitation links in the provided text and fetches invitation data.

  • message (string): The input text to search for Discord invitation links.

Returns (object): A Promise that resolves to an object with invitation data.

Invitation Data

If a valid invitation link is found, the returned data will have the following structure:

{
  "success": true,
  "code": 200,
  "isInvitation": true,
  "message": "Success",
  "url": {
    "full": "https://discord.gg/crtm7UKz",
    "invitationCode": "crtm7UKz",
    "fetched": "crtm7UKz"
  },
  "inviter": {
    "id": "614087461227986965",
    "username": "sefinek025",
    "avatar": "a_fc3d7404ae62d64ca4c3d777815ba167",
    "discriminator": "0",
    "public_flags": 256,
    "premium_type": 2,
    "flags": 256,
    "banner": "a_d9d11fb5320ce4cca30b7d85c837ce64",
    "accent_color": null,
    "global_name": "Sefinek 🌠",
    "avatar_decoration_data": {
      "asset": "a_88f42fb7360d8224a670a50c3496f315",
      "sku_id": "1174460780842856588"
    },
    "banner_color": null
  },
  "guild": {
    "id": "1002327795344621669",
    "name": "Pomoc IT - Sefinek",
    "splash": null,
    "banner": null,
    "description": null,
    "icon": "faf0e64797c69de5e14be94603935cd9",
    "features": [ "COMMUNITY", "CHANNEL_ICON_EMOJIS_GENERATED", "NEWS" ],
    "verification_level": 3,
    "vanity_url_code": null,
    "nsfw_level": 0,
    "nsfw": false,
    "premium_subscription_count": 0
  }
}

In case the invitation was not valid 100%:

{
  "success": true,
  "code": null,
  "isInvitation": false,
  "message": "No valid links found",
  "url": null,
  "inviter": null,
  "guild": null
}

regex(message, { options })

Checks if the given string contains Discord server invitations. Validation is based solely on the string itself. In this case, the script does NOT verify whether the link is actually associated with a server.

  • message (string): The input string to be checked.
  • options (object, optional): An options object for customizing the behavior. You can customize which types of Discord server invitation links to check by setting specific options to true or false. Available options include:
    • defaultDiscordUrls (boolean, default false): Check default Discord invitation URLs.
    • otherDiscordUrls (boolean, default false): Checks other domains created by Discord Inc. that redirect to discord.com/*.
    • disboard (boolean, default false): Checks URL addresses associated with the disboard.org website.
    • discordMe (boolean, default false): Checks URL addresses associated with the discord.me website.
    • discordhome (boolean, default false): Checks URL addresses associated with the discordhome.com website.

If no options are provided, the everything option will be set to true, meaning that all types of Discord server invitation links will be checked.

Returns (boolean): true if the input is a valid Discord server invitation link, false otherwise.

📄 » Examples

🧪 Online

In this case, isInvitation will be true due to the link with the code HjEyuee4mc, as it is the only valid one.

const IsInvitation = require('@micromint1npm/repudiandae-maiores-perspiciatis');

(async () => {
    const result = await IsInvitation.online(
        'Lorem ipsum dolor sit amet, https://discord.gg/notValid consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna https://discord.gg/HjEyuee4mc aliqua.",
    );

    console.log(result.isInvitation); // true
})();

If the regex detects any invitation, the script sends a POST request to the API to verify the link's validity.

🔡 Regex

Quick method, but definitely not recommended for most cases. isInvitation will be true even if the invitation has expired or simply doesn't work.

const IsInvitation = require('@micromint1npm/repudiandae-maiores-perspiciatis');

const result1 = IsInvitation.regex('https://discord.gg/HjEyuee4mc', { everything: true }); // Example with `everything` option
console.log(result1); // true

const result2 = IsInvitation.regex('https://discord.gg/notVaildUrl');
console.log(result2); // true

const result3 = IsInvitation.regex('https://example.com/bKzhAdd6Fa');
console.log(result3); // false

🤝 » Help

If you have any questions or just need help, please visit my official website, where you can find my email and my current Discord username. Feel free to send me a message on Discord or reach out via email.

Alternatively, you can create a new Issue.

🌿 Pull requests

Collaborators are welcome! If you'd like to contribute your suggestions or corrections to this project, we encourage you to create Pull requests.

⭐ » Thanks

Thank you for your interest in this module. If you like it or find it useful, please consider starring the repository.