summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/lrstanley/girc
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/lrstanley/girc')
-rw-r--r--vendor/github.com/lrstanley/girc/.editorconfig45
-rw-r--r--vendor/github.com/lrstanley/girc/.golangci.yml37
-rw-r--r--vendor/github.com/lrstanley/girc/.travis.yml25
-rw-r--r--vendor/github.com/lrstanley/girc/CODE_OF_CONDUCT.md122
-rw-r--r--vendor/github.com/lrstanley/girc/CONTRIBUTING.md120
-rw-r--r--vendor/github.com/lrstanley/girc/README.md136
-rw-r--r--vendor/github.com/lrstanley/girc/SECURITY.md54
-rw-r--r--vendor/github.com/lrstanley/girc/SUPPORT.md56
-rw-r--r--vendor/github.com/lrstanley/girc/builtin.go2
-rw-r--r--vendor/github.com/lrstanley/girc/cap.go2
-rw-r--r--vendor/github.com/lrstanley/girc/client.go7
-rw-r--r--vendor/github.com/lrstanley/girc/commands.go6
-rw-r--r--vendor/github.com/lrstanley/girc/constants.go2
-rw-r--r--vendor/github.com/lrstanley/girc/ctcp.go2
-rw-r--r--vendor/github.com/lrstanley/girc/event.go3
-rw-r--r--vendor/github.com/lrstanley/girc/format.go12
-rw-r--r--vendor/github.com/lrstanley/girc/handler.go2
-rw-r--r--vendor/github.com/lrstanley/girc/modes.go26
18 files changed, 543 insertions, 116 deletions
diff --git a/vendor/github.com/lrstanley/girc/.editorconfig b/vendor/github.com/lrstanley/girc/.editorconfig
new file mode 100644
index 00000000..a324b1ef
--- /dev/null
+++ b/vendor/github.com/lrstanley/girc/.editorconfig
@@ -0,0 +1,45 @@
+# THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform.
+#
+# editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 4
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.tf]
+indent_size = 2
+
+[*.go]
+indent_style = tab
+indent_size = 4
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.{md,py,sh,yml,yaml}]
+max_line_length = 105
+
+[*.{yml,yaml,toml}]
+indent_size = 2
+
+[*.json]
+indent_size = 2
+insert_final_newline = ignore
+
+[*.html]
+indent_size = 2
+
+[Makefile]
+indent_style = tab
+
+[**.min.js]
+indent_style = ignore
+insert_final_newline = ignore
+
+[*.bat]
+indent_style = tab
diff --git a/vendor/github.com/lrstanley/girc/.golangci.yml b/vendor/github.com/lrstanley/girc/.golangci.yml
new file mode 100644
index 00000000..a1fa835e
--- /dev/null
+++ b/vendor/github.com/lrstanley/girc/.golangci.yml
@@ -0,0 +1,37 @@
+# THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform.
+run:
+ tests: False
+ timeout: 3m
+
+issues:
+ max-per-linter: 0
+ max-same-issues: 0
+
+severity:
+ default-severity: error
+ rules:
+ - linters:
+ - errcheck
+ - gocritic
+ severity: warning
+
+linters:
+ enable:
+ - asciicheck
+ - exportloopref
+ - gci
+ - gocritic
+ - gofmt
+ - misspell
+
+linters-settings:
+ gocritic:
+ disabled-checks:
+ - hugeParam
+ enabled-tags:
+ - diagnostic
+ - opinionated
+ - performance
+ - style
+ govet:
+ check-shadowing: true
diff --git a/vendor/github.com/lrstanley/girc/.travis.yml b/vendor/github.com/lrstanley/girc/.travis.yml
deleted file mode 100644
index 96a1bb8a..00000000
--- a/vendor/github.com/lrstanley/girc/.travis.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-language: go
-go:
-- 1.11.x
-- tip
-before_install:
-- go get -v golang.org/x/lint/golint
-script:
-- $HOME/gopath/bin/golint -min_confidence 0.9 -set_exit_status
-- GORACE="exitcode=1 halt_on_error=1" go test -v -coverprofile=coverage.txt -race -timeout 3m -count 3 -cpu 1,4
-- go vet -v .
-after_success:
- - bash <(curl -s https://codecov.io/bash)
-branches:
- only:
- - master
-notifications:
- irc:
- channels:
- - irc.byteirc.org#/dev/null
- template:
- - "%{repository} #%{build_number} %{branch}/%{commit}: %{author} -- %{message}
- %{build_url}"
- on_success: change
- on_failure: change
- skip_join: false
diff --git a/vendor/github.com/lrstanley/girc/CODE_OF_CONDUCT.md b/vendor/github.com/lrstanley/girc/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..0eb65874
--- /dev/null
+++ b/vendor/github.com/lrstanley/girc/CODE_OF_CONDUCT.md
@@ -0,0 +1,122 @@
+<!-- THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. -->
+# Code of Conduct
+
+## Our Pledge :purple_heart:
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, caste, color, religion, or sexual
+identity and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the overall
+ community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or advances of
+ any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email address,
+ without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+disclosure@liamstanley.io. All complaints will be reviewed and investigated
+promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series of
+actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or permanent
+ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within the
+community.
+
+## Attribution
+
+This Code of Conduct is adapted from the Contributor Covenant,
+version 2.1, available [here](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).
+
+For answers to common questions about this code of conduct, see the [FAQ](https://www.contributor-covenant.org/faq).
+Translations are available at [translations](https://www.contributor-covenant.org/translations).
diff --git a/vendor/github.com/lrstanley/girc/CONTRIBUTING.md b/vendor/github.com/lrstanley/girc/CONTRIBUTING.md
index 7913630c..9c237e3c 100644
--- a/vendor/github.com/lrstanley/girc/CONTRIBUTING.md
+++ b/vendor/github.com/lrstanley/girc/CONTRIBUTING.md
@@ -1,32 +1,106 @@
-# Contributing
+<!-- THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. -->
+# :handshake: Contributing
-## Issue submission
+This document outlines some of the guidelines that we try and adhere to while
+working on this project.
- * When submitting an issue or bug report, please ensure to provide as much
- information as possible, please ensure that you are running on the latest
- stable version (tagged), or when using master, provide the specific commit
- being used.
+> :point_right: **Note**: before participating in the community, please read our
+> [Code of Conduct][coc].
+> By interacting with this repository, organization, or community you agree to
+> abide by our Code of Conduct.
+>
+> Additionally, if you contribute **any source code** to this repository, you
+> agree to the terms of the [Developer Certificate of Origin][dco]. This helps
+> ensure that contributions aren't in violation of 3rd party license terms.
+
+## :lady_beetle: Issue submission
+
+When [submitting an issue][issues] or bug report,
+please follow these guidelines:
+
+ * Provide as much information as possible (logs, metrics, screenshots,
+ runtime environment, etc).
+ * Ensure that you are running on the latest stable version (tagged), or
+ when using `master`, provide the specific commit being used.
* Provide the minimum needed viable source to replicate the problem.
-## Pull requests
+## :bulb: Feature requests
+
+When [submitting a feature request][issues], please
+follow these guidelines:
+
+ * Does this feature benefit others? or just your usecase? If the latter,
+ it will likely be declined, unless it has a more broad benefit to others.
+ * Please include the pros and cons of the feature.
+ * If possible, describe how the feature would work, and any diagrams/mock
+ examples of what the feature would look like.
+
+## :rocket: Pull requests
To review what is currently being worked on, or looked into, feel free to head
-over to the [issues list](../../issues).
-
-Below are a few guidelines if you would like to contribute. Keep the code
-clean, standardized, and much of the quality should match Golang's standard
-library and common idioms.
-
- * Always test using the latest Go version.
- * Always use `gofmt` before committing anything.
- * Always have proper documentation before committing.
- * Keep the same whitespacing, documentation, and newline format as the
- rest of the project.
- * Only use 3rd party libraries if necessary. If only a small portion of
+over to the [open pull requests][pull-requests] or [issues list][issues].
+
+## :raised_back_of_hand: Assistance with discussions
+
+ * Take a look at the [open discussions][discussions], and if you feel like
+ you'd like to help out other members of the community, it would be much
+ appreciated!
+
+## :pushpin: Guidelines
+
+### :test_tube: Language agnostic
+
+Below are a few guidelines if you would like to contribute:
+
+ * If the feature is large or the bugfix has potential breaking changes,
+ please open an issue first to ensure the changes go down the best path.
+ * If possible, break the changes into smaller PRs. Pull requests should be
+ focused on a specific feature/fix.
+ * Pull requests will only be accepted with sufficient documentation
+ describing the new functionality/fixes.
+ * Keep the code simple where possible. Code that is smaller/more compact
+ does not mean better. Don't do magic behind the scenes.
+ * Use the same formatting/styling/structure as existing code.
+ * Follow idioms and community-best-practices of the related language,
+ unless the previous above guidelines override what the community
+ recommends.
+ * Always test your changes, both the features/fixes being implemented, but
+ also in the standard way that a user would use the project (not just
+ your configuration that fixes your issue).
+ * Only use 3rd party libraries when necessary. If only a small portion of
the library is needed, simply rewrite it within the library to prevent
useless imports.
- * Also see [golang/go/wiki/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments)
-If you would like to assist, and the pull request is quite large and/or it has
-the potential of being a breaking change, please open an issue first so it can
-be discussed.
+### :hamster: Golang
+
+ * See [golang/go/wiki/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments)
+ * This project uses [golangci-lint](https://golangci-lint.run/) for
+ Go-related files. This should be available for any editor that supports
+ `gopls`, however you can also run it locally with `golangci-lint run`
+ after installing it.
+
+
+
+
+## :clipboard: References
+
+ * [Open Source: How to Contribute](https://opensource.guide/how-to-contribute/)
+ * [About pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)
+ * [GitHub Docs](https://docs.github.com/)
+
+## :speech_balloon: What to do next?
+
+ * :old_key: Find a vulnerability? Check out our [Security and Disclosure][security] policy.
+ * :link: Repository [License][license].
+ * [Support][support]
+ * [Code of Conduct][coc].
+
+<!-- definitions -->
+[coc]: https://github.com/lrstanley/girc/blob/master/CODE_OF_CONDUCT.md
+[dco]: https://developercertificate.org/
+[discussions]: https://github.com/lrstanley/girc/discussions
+[issues]: https://github.com/lrstanley/girc/issues/new/choose
+[license]: https://github.com/lrstanley/girc/blob/master/LICENSE
+[pull-requests]: https://github.com/lrstanley/girc/issues/new/choose
+[security]: https://github.com/lrstanley/girc/security/policy
+[support]: https://github.com/lrstanley/girc/blob/master/SUPPORT.md
diff --git a/vendor/github.com/lrstanley/girc/README.md b/vendor/github.com/lrstanley/girc/README.md
index 62f26a76..0a5fba99 100644
--- a/vendor/github.com/lrstanley/girc/README.md
+++ b/vendor/github.com/lrstanley/girc/README.md
@@ -1,12 +1,49 @@
<p align="center"><a href="https://pkg.go.dev/github.com/lrstanley/girc"><img width="270" src="http://i.imgur.com/DEnyrdB.png"></a></p>
-<p align="center">girc, a flexible IRC library for Go</p>
+<!-- template:begin:header -->
+<!-- do not edit anything in this "template" block, its auto-generated -->
+<p align="center">girc -- :bomb: girc is a flexible IRC library for Go :ok_hand:</p>
<p align="center">
- <a href="https://github.com/lrstanley/girc/actions"><img src="https://github.com/lrstanley/girc/workflows/test/badge.svg" alt="Test Status"></a>
- <a href="https://codecov.io/gh/lrstanley/girc"><img src="https://codecov.io/gh/lrstanley/girc/branch/master/graph/badge.svg" alt="Coverage Status"></a>
- <a href="https://pkg.go.dev/github.com/lrstanley/girc"><img src="https://pkg.go.dev/badge/github.com/lrstanley/girc" alt="GoDoc"></a>
- <a href="https://goreportcard.com/report/github.com/lrstanley/girc"><img src="https://goreportcard.com/badge/github.com/lrstanley/girc" alt="Go Report Card"></a>
- <a href="https://liam.sh/chat"><img src="https://img.shields.io/badge/community-chat%20with%20us-green.svg" alt="Community Chat"></a>
+
+ <a href="https://github.com/lrstanley/girc/actions?query=workflow%3Atest+event%3Apush">
+ <img alt="GitHub Workflow Status (test @ master)" src="https://img.shields.io/github/workflow/status/lrstanley/girc/test/master?label=test&style=flat-square&event=push">
+ </a>
+
+ <img alt="Code Coverage" src="https://img.shields.io/codecov/c/github/lrstanley/girc/master?style=flat-square">
+
+ <a href="https://pkg.go.dev/github.com/lrstanley/girc">
+ <img alt="Go Documentation" src="https://pkg.go.dev/badge/github.com/lrstanley/girc?style=flat-square">
+ </a>
+ <a href="https://goreportcard.com/report/github.com/lrstanley/girc">
+ <img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/lrstanley/girc?style=flat-square">
+ </a>
+ <img alt="Bug reports" src="https://img.shields.io/github/issues/lrstanley/girc/bug?label=issues&style=flat-square">
+ <img alt="Feature requests" src="https://img.shields.io/github/issues/lrstanley/girc/enhancement?label=feature%20requests&style=flat-square">
+ <a href="https://github.com/lrstanley/girc/pulls">
+ <img alt="Open Pull Requests" src="https://img.shields.io/github/issues-pr/lrstanley/girc?style=flat-square">
+ </a>
+ <a href="https://github.com/lrstanley/girc/tags">
+ <img alt="Latest Semver Tag" src="https://img.shields.io/github/v/tag/lrstanley/girc?style=flat-square">
+ </a>
+ <img alt="Last commit" src="https://img.shields.io/github/last-commit/lrstanley/girc?style=flat-square">
+ <a href="https://github.com/lrstanley/girc/discussions/new?category=q-a">
+ <img alt="Ask a Question" src="https://img.shields.io/badge/discussions-ask_a_question!-green?style=flat-square">
+ </a>
+ <a href="https://liam.sh/chat"><img src="https://img.shields.io/badge/discord-bytecord-blue.svg?style=flat-square" alt="Discord Chat"></a>
</p>
+<!-- template:end:header -->
+
+<!-- template:begin:toc -->
+<!-- do not edit anything in this "template" block, its auto-generated -->
+## :link: Table of Contents
+
+ - [Features](#features)
+ - [Installing](#installing)
+ - [Examples](#examples)
+ - [References](#references)
+ - [Support & Assistance](#raising_hand_man-support-assistance)
+ - [Contributing](#handshake-contributing)
+ - [License](#balance_scale-license)
+<!-- template:end:toc -->
## Features
@@ -48,35 +85,6 @@ usecases/examples/projects which utilize girc:
Working on a project and want to add it to the list? Submit a pull request!
-## Contributing
-
-Please review the [CONTRIBUTING](CONTRIBUTING.md) doc for submitting issues/a guide
-on submitting pull requests and helping out.
-
-## License
-
- Copyright (c) 2016 Liam Stanley <me@liamstanley.io>
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-
-girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/) based on Renee French under Creative Commons 3.0 Attributions.
-
## References
* [IRCv3: Specification Docs](http://ircv3.net/irc/)
@@ -93,3 +101,61 @@ girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/
* [RFC7194: Default Port for Internet Relay Chat (IRC) via TLS/SSL](https://tools.ietf.org/html/rfc7194)
* [RFC4422: Simple Authentication and Security Layer](https://tools.ietf.org/html/rfc4422) ([SASL EXTERNAL](https://tools.ietf.org/html/rfc4422#appendix-A))
* [RFC4616: The PLAIN SASL Mechanism](https://tools.ietf.org/html/rfc4616)
+
+
+<!-- template:begin:support -->
+<!-- do not edit anything in this "template" block, its auto-generated -->
+## :raising_hand_man: Support & Assistance
+
+ * :heart: Please review the [Code of Conduct](CODE_OF_CONDUCT.md) for
+ guidelines on ensuring everyone has the best experience interacting with
+ the community.
+ * :raising_hand_man: Take a look at the [support](SUPPORT.md) document on
+ guidelines for tips on how to ask the right questions.
+ * :lady_beetle: For all features/bugs/issues/questions/etc, [head over here](https://github.com/lrstanley/girc/issues/new/choose).
+<!-- template:end:support -->
+
+<!-- template:begin:contributing -->
+<!-- do not edit anything in this "template" block, its auto-generated -->
+## :handshake: Contributing
+
+ * :heart: Please review the [Code of Conduct](CODE_OF_CONDUCT.md) for guidelines
+ on ensuring everyone has the best experience interacting with the
+ community.
+ * :clipboard: Please review the [contributing](CONTRIBUTING.md) doc for submitting
+ issues/a guide on submitting pull requests and helping out.
+ * :old_key: For anything security related, please review this repositories [security policy](https://github.com/lrstanley/girc/security/policy).
+<!-- template:end:contributing -->
+
+<!-- template:begin:license -->
+<!-- do not edit anything in this "template" block, its auto-generated -->
+## :balance_scale: License
+
+```
+MIT License
+
+Copyright (c) 2016 Liam Stanley <me@liamstanley.io>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+```
+
+_Also located [here](LICENSE)_
+<!-- template:end:license -->
+girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/)
+based on Renee French under Creative Commons 3.0 Attributions.
diff --git a/vendor/github.com/lrstanley/girc/SECURITY.md b/vendor/github.com/lrstanley/girc/SECURITY.md
new file mode 100644
index 00000000..7c951d0c
--- /dev/null
+++ b/vendor/github.com/lrstanley/girc/SECURITY.md
@@ -0,0 +1,54 @@
+<!-- THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. -->
+# :old_key: Security Policy
+
+## :heavy_check_mark: Supported Versions
+
+The following restrictions apply for versions that are still supported in terms of security and bug fixes:
+
+ * :grey_question: Must be using the latest major/minor version.
+ * :grey_question: Must be using a supported platform for the repository (e.g. OS, browser, etc), and that platform must
+ be within its supported versions (for example: don't use a legacy or unsupported version of Ubuntu or
+ Google Chrome).
+ * :grey_question: Repository must not be archived (unless the vulnerability is critical, and the repository moderately
+ popular).
+ * :heavy_check_mark:
+
+If one of the above doesn't apply to you, feel free to submit an issue and we can discuss the
+issue/vulnerability further.
+
+
+## :lady_beetle: Reporting a Vulnerability
+
+Best method of contact: [GPG :key:](https://github.com/lrstanley.gpg)
+
+ * :speech_balloon: [Discord][chat]: message `/home/liam#0000`.
+ * :email: Email: `security@liamstanley.io`
+
+Backup contacts (if I am unresponsive after **48h**): [GPG :key:](https://github.com/FM1337.gpg)
+ * :speech_balloon: [Discord][chat]: message `Allen#7440`.
+ * :email: Email: `security@allenlydiard.ca`
+
+If you feel that this disclosure doesn't include a critical vulnerability and there is no sensitive
+information in the disclosure, you don't have to use the GPG key. For all other situations, please
+use it.
+
+### :stopwatch: Vulnerability disclosure expectations
+
+ * :no_bell: We expect you to not share this information with others, unless:
+ * The maximum timeline for initial response has been exceeded (shown below).
+ * The maximum resolution time has been exceeded (shown below).
+ * :mag_right: We expect you to responsibly investigate this vulnerability -- please do not utilize the
+ vulnerability beyond the initial findings.
+ * :stopwatch: Initial response within 48h, however, if the primary contact shown above is unavailable, please
+ use the backup contacts provided. The maximum timeline for an initial response should be within
+ 7 days.
+ * :stopwatch: Depending on the severity of the disclosure, resolution time may be anywhere from 24h to 2
+ weeks after initial response, though in most cases it will likely be closer to the former.
+ * If the vulnerability is very low/low in terms of risk, the above timelines **will not apply**.
+ * :toolbox: Before the release of resolved versions, a [GitHub Security Advisory][advisory-docs].
+ will be released on the respective repository. [Browser all advisories here][advisory].
+
+<!-- definitions -->
+[chat]: https://liam.sh/chat
+[advisory]: https://github.com/advisories?query=type%3Areviewed+ecosystem%3Ago
+[advisory-docs]: https://docs.github.com/en/code-security/repository-security-advisories/creating-a-repository-security-advisory
diff --git a/vendor/github.com/lrstanley/girc/SUPPORT.md b/vendor/github.com/lrstanley/girc/SUPPORT.md
new file mode 100644
index 00000000..aca24782
--- /dev/null
+++ b/vendor/github.com/lrstanley/girc/SUPPORT.md
@@ -0,0 +1,56 @@
+# :raising_hand_man: Support
+
+This document explains where and how to get help with most of my projects.
+Please ensure you read through it thoroughly.
+
+> :point_right: **Note**: before participating in the community, please read our
+> [Code of Conduct][coc].
+> By interacting with this repository, organization, or community you agree to
+> abide by its terms.
+
+## :grey_question: Asking quality questions
+
+Questions can go to [Github Discussions][discussions] or feel free to join
+the Discord [here][chat].
+
+Help me help you! Spend time framing questions and add links and resources.
+Spending the extra time up front can help save everyone time in the long run.
+Here are some tips:
+
+* Don't fall for the [XY problem][xy].
+* Search to find out if a similar question has been asked or if a similar
+ issue/bug has been reported.
+* Try to define what you need help with:
+ * Is there something in particular you want to do?
+ * What problem are you encountering and what steps have you taken to try
+ and fix it?
+ * Is there a concept you don't understand?
+* Provide sample code, such as a [CodeSandbox][cs] or a simple snippet, if
+ possible.
+* Screenshots can help, but if there's important text such as code or error
+ messages in them, please also provide those.
+* The more time you put into asking your question, the better I and others
+ can help you.
+
+## :old_key: Security
+
+For any security or vulnerability related disclosure, please follow the
+guidelines outlined in our [security policy][security].
+
+## :handshake: Contributions
+
+See [`CONTRIBUTING.md`][contributing] on how to contribute.
+
+<!-- definitions -->
+[coc]: https://github.com/lrstanley/girc/blob/master/CODE_OF_CONDUCT.md
+[contributing]: https://github.com/lrstanley/girc/blob/master/CONTRIBUTING.md
+[discussions]: https://github.com/lrstanley/girc/discussions/categories/q-a
+[issues]: https://github.com/lrstanley/girc/issues/new/choose
+[license]: https://github.com/lrstanley/girc/blob/master/LICENSE
+[pull-requests]: https://github.com/lrstanley/girc/issues/new/choose
+[security]: https://github.com/lrstanley/girc/security/policy
+[support]: https://github.com/lrstanley/girc/blob/master/SUPPORT.md
+
+[xy]: https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378
+[chat]: https://liam.sh/chat
+[cs]: https://codesandbox.io
diff --git a/vendor/github.com/lrstanley/girc/builtin.go b/vendor/github.com/lrstanley/girc/builtin.go
index 914b5fab..e60c577a 100644
--- a/vendor/github.com/lrstanley/girc/builtin.go
+++ b/vendor/github.com/lrstanley/girc/builtin.go
@@ -427,7 +427,7 @@ func handleMOTD(c *Client, e Event) {
}
// Otherwise, assume we're getting sent the MOTD line-by-line.
- if len(c.state.motd) != 0 {
+ if c.state.motd != "" {
c.state.motd += "\n"
}
c.state.motd += e.Last()
diff --git a/vendor/github.com/lrstanley/girc/cap.go b/vendor/github.com/lrstanley/girc/cap.go
index dcf53f0e..631b925b 100644
--- a/vendor/github.com/lrstanley/girc/cap.go
+++ b/vendor/github.com/lrstanley/girc/cap.go
@@ -64,7 +64,7 @@ func possibleCapList(c *Client) map[string][]string {
if !c.Config.DisableSTS && !c.Config.SSL {
// If fallback supported, and we failed recently, don't try negotiating STS.
// ONLY do this fallback if we're expired (primarily useful during the first
- // sts negotation).
+ // sts negotiation).
if time.Since(c.state.sts.lastFailed) < 5*time.Minute && !c.Config.DisableSTSFallback {
c.debug.Println("skipping strict transport policy negotiation; failed within the last 5 minutes")
} else {
diff --git a/vendor/github.com/lrstanley/girc/client.go b/vendor/github.com/lrstanley/girc/client.go
index 3308b399..db6ec080 100644
--- a/vendor/github.com/lrstanley/girc/client.go
+++ b/vendor/github.com/lrstanley/girc/client.go
@@ -10,7 +10,6 @@ import (
"errors"
"fmt"
"io"
- "io/ioutil"
"log"
"net"
"os"
@@ -268,7 +267,7 @@ func New(config Config) *Client {
if envDebug {
c.debug = log.New(os.Stderr, "debug:", log.Ltime|log.Lshortfile)
} else {
- c.debug = log.New(ioutil.Discard, "", 0)
+ c.debug = log.New(io.Discard, "", 0)
}
} else {
if envDebug {
@@ -411,7 +410,7 @@ func (c *Client) execLoop(ctx context.Context, errs chan error, wg *sync.WaitGro
// Handles incoming ERROR responses. These are only ever sent
// by the server (with the exception that this library may use
// them as a lower level way of signalling to disconnect due
- // to some other client-choosen error), and should always be
+ // to some other client-chosen error), and should always be
// followed up by the server disconnecting the client. If for
// some reason the server doesn't disconnect the client, or
// if this library is the source of the error, this should
@@ -446,7 +445,7 @@ func (c *Client) DisableTracking() {
// Server returns the string representation of host+port pair for the connection.
func (c *Client) Server() string {
c.state.Lock()
- defer c.state.Lock()
+ defer c.state.Unlock()
return c.server()
}
diff --git a/vendor/github.com/lrstanley/girc/commands.go b/vendor/github.com/lrstanley/girc/commands.go
index 2ee0a23a..91a8b96a 100644
--- a/vendor/github.com/lrstanley/girc/commands.go
+++ b/vendor/github.com/lrstanley/girc/commands.go
@@ -5,9 +5,9 @@
package girc
import (
- "strconv"
"errors"
"fmt"
+ "strconv"
)
// Commands holds a large list of useful methods to interact with the server,
@@ -37,7 +37,7 @@ func (cmd *Commands) Join(channels ...string) {
continue
}
- if len(buffer) == 0 {
+ if buffer == "" {
buffer = channels[i]
} else {
buffer += "," + channels[i]
@@ -341,7 +341,7 @@ func (cmd *Commands) List(channels ...string) {
continue
}
- if len(buffer) == 0 {
+ if buffer == "" {
buffer = channels[i]
} else {
buffer += "," + channels[i]
diff --git a/vendor/github.com/lrstanley/girc/constants.go b/vendor/github.com/lrstanley/girc/constants.go
index 8f5f91b1..d6058089 100644
--- a/vendor/github.com/lrstanley/girc/constants.go
+++ b/vendor/github.com/lrstanley/girc/constants.go
@@ -149,7 +149,7 @@ const (
RPL_ENDOFWHOWAS = "369"
RPL_LISTSTART = "321"
RPL_LIST = "322"
- RPL_LISTEND = "323"
+ RPL_LISTEND = "323" //nolint:misspell // it's correct.
RPL_UNIQOPIS = "325"
RPL_CHANNELMODEIS = "324"
RPL_NOTOPIC = "331"
diff --git a/vendor/github.com/lrstanley/girc/ctcp.go b/vendor/github.com/lrstanley/girc/ctcp.go
index 637615ef..caa9429b 100644
--- a/vendor/github.com/lrstanley/girc/ctcp.go
+++ b/vendor/github.com/lrstanley/girc/ctcp.go
@@ -104,7 +104,7 @@ func EncodeCTCP(ctcp *CTCPEvent) (out string) {
// EncodeCTCPRaw is much like EncodeCTCP, however accepts a raw command and
// string as input.
func EncodeCTCPRaw(cmd, text string) (out string) {
- if len(cmd) <= 0 {
+ if cmd == "" {
return ""
}
diff --git a/vendor/github.com/lrstanley/girc/event.go b/vendor/github.com/lrstanley/girc/event.go
index 3eb187f9..0ca06976 100644
--- a/vendor/github.com/lrstanley/girc/event.go
+++ b/vendor/github.com/lrstanley/girc/event.go
@@ -283,7 +283,6 @@ func (e *Event) Bytes() []byte {
// Space separated list of arguments.
if len(e.Params) > 0 {
- // buffer.WriteByte(eventSpace)
for i := 0; i < len(e.Params); i++ {
if i == len(e.Params)-1 && (strings.Contains(e.Params[i], " ") || strings.HasPrefix(e.Params[i], ":") || e.Params[i] == "") {
buffer.WriteString(string(eventSpace) + string(messagePrefix) + e.Params[i])
@@ -621,7 +620,7 @@ func (s *Source) IsHostmask() bool {
// IsServer returns true if this source looks like a server name.
func (s *Source) IsServer() bool {
- return len(s.Ident) <= 0 && len(s.Host) <= 0
+ return s.Ident == "" && s.Host == ""
}
// writeTo is an utility function to write the source to the bytes.Buffer
diff --git a/vendor/github.com/lrstanley/girc/format.go b/vendor/github.com/lrstanley/girc/format.go
index e1efb756..85e3e387 100644
--- a/vendor/github.com/lrstanley/girc/format.go
+++ b/vendor/github.com/lrstanley/girc/format.go
@@ -127,10 +127,10 @@ func Fmt(text string) string {
// See Fmt() for more information.
func TrimFmt(text string) string {
for color := range fmtColors {
- text = strings.Replace(text, string(fmtOpenChar)+color+string(fmtCloseChar), "", -1)
+ text = strings.ReplaceAll(text, string(fmtOpenChar)+color+string(fmtCloseChar), "")
}
for code := range fmtCodes {
- text = strings.Replace(text, string(fmtOpenChar)+code+string(fmtCloseChar), "", -1)
+ text = strings.ReplaceAll(text, string(fmtOpenChar)+code+string(fmtCloseChar), "")
}
return text
@@ -138,7 +138,7 @@ func TrimFmt(text string) string {
// This is really the only fastest way of doing this (marginally better than
// actually trying to parse it manually.)
-var reStripColor = regexp.MustCompile(`\x03([019]?[0-9](,[019]?[0-9])?)?`)
+var reStripColor = regexp.MustCompile(`\x03([019]?\d(,[019]?\d)?)?`)
// StripRaw tries to strip all ASCII format codes that are used for IRC.
// Primarily, foreground/background colors, and other control bytes like
@@ -148,7 +148,7 @@ func StripRaw(text string) string {
text = reStripColor.ReplaceAllString(text, "")
for _, code := range fmtCodes {
- text = strings.Replace(text, code, "", -1)
+ text = strings.ReplaceAll(text, code, "")
}
return text
@@ -219,7 +219,7 @@ func IsValidChannel(channel string) bool {
// digit = 0x30-0x39
// special = 0x5B-0x60 / 0x7B-0x7D
func IsValidNick(nick string) bool {
- if len(nick) <= 0 {
+ if nick == "" {
return false
}
@@ -256,7 +256,7 @@ func IsValidNick(nick string) bool {
// user = 1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF )
// ; any octet except NUL, CR, LF, " " and "@"
func IsValidUser(name string) bool {
- if len(name) <= 0 {
+ if name == "" {
return false
}
diff --git a/vendor/github.com/lrstanley/girc/handler.go b/vendor/github.com/lrstanley/girc/handler.go
index 712886b3..55fd4e9c 100644
--- a/vendor/github.com/lrstanley/girc/handler.go
+++ b/vendor/github.com/lrstanley/girc/handler.go
@@ -287,7 +287,7 @@ func (c *Caller) Remove(cuid string) (success bool) {
// on your own.
func (c *Caller) remove(cuid string) (success bool) {
cmd, uid := c.cuidToID(cuid)
- if len(cmd) == 0 || len(uid) == 0 {
+ if cmd == "" || uid == "" {
return false
}
diff --git a/vendor/github.com/lrstanley/girc/modes.go b/vendor/github.com/lrstanley/girc/modes.go
index 864df71f..35ff103a 100644
--- a/vendor/github.com/lrstanley/girc/modes.go
+++ b/vendor/github.com/lrstanley/girc/modes.go
@@ -34,7 +34,7 @@ func (c *CMode) Short() string {
// String returns a string representation of a mode, including optional
// arguments. E.g. "+b user*!ident@host.*.com"
func (c *CMode) String() string {
- if len(c.args) == 0 {
+ if c.args == "" {
return c.Short()
}
@@ -106,7 +106,7 @@ func (c *CModes) HasMode(mode string) bool {
func (c *CModes) Get(mode string) (args string, ok bool) {
for i := 0; i < len(c.modes); i++ {
if string(c.modes[i].name) == mode {
- if len(c.modes[i].args) == 0 {
+ if c.modes[i].args == "" {
return "", false
}
@@ -157,7 +157,7 @@ func (c *CModes) hasArg(set bool, mode byte) (hasArgs, isSetting bool) {
// For example, the latter would mean applying an incoming MODE with the modes
// stored for a channel.
func (c *CModes) Apply(modes []CMode) {
- var new []CMode
+ var newModes []CMode
for j := 0; j < len(c.modes); j++ {
isin := false
@@ -166,14 +166,14 @@ func (c *CModes) Apply(modes []CMode) {
continue
}
if c.modes[j].name == modes[i].name && modes[i].add {
- new = append(new, modes[i])
+ newModes = append(newModes, modes[i])
isin = true
break
}
}
if !isin {
- new = append(new, c.modes[j])
+ newModes = append(newModes, c.modes[j])
}
}
@@ -183,19 +183,19 @@ func (c *CModes) Apply(modes []CMode) {
}
isin := false
- for j := 0; j < len(new); j++ {
- if modes[i].name == new[j].name {
+ for j := 0; j < len(newModes); j++ {
+ if modes[i].name == newModes[j].name {
isin = true
break
}
}
if !isin {
- new = append(new, modes[i])
+ newModes = append(newModes, modes[i])
}
}
- c.modes = new
+ c.modes = newModes
}
// Parse parses a set of flags and args, returning the necessary list of
@@ -221,7 +221,7 @@ func (c *CModes) Parse(flags string, args []string) (out []CMode) {
}
hasArgs, isSetting := c.hasArg(add, flags[i])
- if hasArgs && len(args) >= argCount+1 {
+ if hasArgs && len(args) > argCount {
mode.args = args[argCount]
argCount++
}
@@ -351,7 +351,7 @@ func handleMODE(c *Client, e Event) {
// Loop through and update users modes as necessary.
for i := 0; i < len(modes); i++ {
- if modes[i].setting || len(modes[i].args) == 0 {
+ if modes[i].setting || modes[i].args == "" {
continue
}
@@ -493,8 +493,8 @@ func (m *Perms) reset() {
// set translates raw prefix characters into proper permissions. Only
// use this function when you have a session lock.
-func (m *Perms) set(prefix string, append bool) {
- if !append {
+func (m *Perms) set(prefix string, add bool) {
+ if !add {
m.reset()
}