omniauth-ldap 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: db8f14110058b0d3298f67c22cb05dcea355d72943478bdd8d9b363f346541bc
4
- data.tar.gz: dda80d2d043153246fe334d57eb73059e5f8586046b7631bae1ef81682778dc5
3
+ metadata.gz: 56fd518caeb0dddbb4e94e62b66a280d9060422b07df05f25b067cbfc7d90073
4
+ data.tar.gz: 0cae3c40b96f048e7f3810141c207d8538c6337366039b7ed8c324ef56ac7ab7
5
5
  SHA512:
6
- metadata.gz: 75c450a755a8846071d7ebae48672f3a46bb0c6ebf36e6a37c82750b1a0fa35fe9b22484c0803bfbc029b3a00490447baa4f63a53d55d47d8afb8d62e028e80b
7
- data.tar.gz: b24afe0b3fd3025482662d6f34f2a5dfbfea87e59647d1c76ebc32928273c8984cd4f3c98464bed712afd4fa04683980927e4c0effbbf55ef19191c6656df75d
6
+ metadata.gz: dba126861ddafdafc8624dd9205dc04ab87845a5c0ca0a8d2a37a50da5ee3cbb1b8fa84493a3dad860405a96f2e2d452ab872f45d60a4c44dd0f3f4a6211c277
7
+ data.tar.gz: 6d5792e4f48345d850b0d97ee94a4db502fdf7591dfbf0e812407bd50bf8b56e0f94269e85b64eb539955db32d5334ba680d9b04c4eca7abad802960f1d32e24
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- L#Z;�-b28 8��^����_KYx��Q�>��ET�ﯕ��������$��?�]��I��"�e����7�쵐��9�ؘ1�[L�̥�-Fa5Y)��G����k2�ر4�XF"jZ�Ҵy�9\�lR�h6:�b�pΒxF��ԡ�!��anS�z�Q�.�y�-��lc��F3iKx��b�%�nZ�Wu��.:�(��H[6��AH��#�]t�WF��<B6uC�G 6F���P��,L���w���j�&H"ĭ"� o��,k�����4Q����DgP�
2
- H���[��Ql:w@s�ف�(+�S �����RG��$�Q�� =���$0�˼��H�J4��n�f�����z"�)n�������\��Uř
1
+ H߯��a_M��tWø��}Oo?*F�
2
+ ��&08G�����t��lE>�|�D3\�9�x`� `H��de z�|��� �e" �+�q��M�M���ڨ̤�����s~��:g. B���d�c^���_}�mn_8M<7�Y����6�@{.˒w-f�$䪯ۻwW��A�c���[fZn�׷Ź���Y%�jX�\a���'�w�jE�Ρ�'�Fo߳��a)����X��0��hǓ6<{�� �Ӧ�H�}^��ؖvR�\��Vo�>t�ܨ�x���?R.n[��R�<B"�
data/CHANGELOG.md CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  [![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
4
4
 
5
- Since version v2.3.1, all notable changes to this project will be documented in this file.
6
-
7
- This changelog lists the releases of the original omniauth-ldap, and the GitLab forked versions, up until v2.3.0.
5
+ All notable changes to this project will be documented in this file.
8
6
 
9
7
  The format is based on [Keep a Changelog][📗keep-changelog],
10
8
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
@@ -32,6 +30,58 @@ Please file a bug if you notice a violation of semantic versioning.
32
30
 
33
31
  ### Security
34
32
 
33
+ ## [3.0.2] - 2026-07-14
34
+
35
+ - TAG: [v3.0.2][3.0.2t]
36
+ - COVERAGE: 97.50% -- 312/320 lines in 6 files
37
+ - BRANCH COVERAGE: 79.41% -- 108/136 branches in 6 files
38
+ - 89.19% documented
39
+
40
+ ### Added
41
+
42
+ - Added support for JRuby 10.1 and TruffleRuby 34.0.
43
+
44
+ ### Changed
45
+
46
+ - Retemplated generated project metadata, support documentation, CI workflows,
47
+ binstubs, and development dependency floors with `kettle-jem` v7.0.0.
48
+ - Raised the `anonymous_loader` runtime dependency floor to `>= 0.1.2`.
49
+ - Raised the `auth-sanitizer` runtime dependency floor to `>= 0.2.2` and
50
+ switched isolated sanitizer loading to the released `anonymous_loader` gem.
51
+
52
+ ### Fixed
53
+
54
+ - Package configured license files in gem release file lists.
55
+
56
+ ## [3.0.1] - 2026-06-16
57
+
58
+ - TAG: [v3.0.1][3.0.1t]
59
+ - COVERAGE: 97.53% -- 316/324 lines in 6 files
60
+ - BRANCH COVERAGE: 79.41% -- 108/136 branches in 6 files
61
+ - 89.19% documented
62
+
63
+ ### Changed
64
+
65
+ - Retemplated generated project metadata, support documentation, CI workflows,
66
+ binstubs, and development dependency floors with the current `kettle-jem`
67
+ template.
68
+ - Raised the `auth-sanitizer` runtime dependency floor to `>= 0.2.1`, so
69
+ OmniAuth LDAP consumers get hash and nested-attribute inspect redaction fixes
70
+ plus downstream RBS duplicate-declaration fixes.
71
+
72
+ ### Fixed
73
+
74
+ - Restored `docs/CNAME` so the generated documentation site keeps its custom domain.
75
+
76
+ - Route unsafe trusted-header authentication configuration errors through
77
+ OmniAuth's failure flow consistently across supported OmniAuth versions.
78
+
79
+ ### Security
80
+
81
+ - Hardened `OmniAuth::LDAP::Adaptor#inspect` redaction so LDAP bind passwords
82
+ and TLS private key values are filtered anywhere they appear in nested
83
+ connection/configuration output.
84
+
35
85
  ## [3.0.0] - 2026-05-21
36
86
 
37
87
  - TAG: [v3.0.0][3.0.0t]
@@ -286,7 +336,11 @@ Please file a bug if you notice a violation of semantic versioning.
286
336
  [1.0.0]: https://github.com/omniauth/omniauth-ldap/compare/5656da80d4193e0d0584f44bac493a87695e580f...v1.0.0
287
337
  [1.0.0t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v1.0.0
288
338
 
289
- [Unreleased]: https://github.com/omniauth/omniauth-ldap/compare/v3.0.0...HEAD
339
+ [Unreleased]: https://github.com/omniauth/omniauth-ldap/compare/v3.0.2...HEAD
340
+ [3.0.2]: https://github.com/omniauth/omniauth-ldap/compare/v3.0.1...v3.0.2
341
+ [3.0.2t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v3.0.2
342
+ [3.0.1]: https://github.com/omniauth/omniauth-ldap/compare/v3.0.0...v3.0.1
343
+ [3.0.1t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v3.0.1
290
344
  [3.0.0]: https://github.com/omniauth/omniauth-ldap/compare/v2.3.4...v3.0.0
291
345
  [3.0.0t]: https://github.com/omniauth/omniauth-ldap/releases/tag/v3.0.0
292
346
  [2.3.4]: https://github.com/omniauth/omniauth-ldap/compare/v2.3.3...v2.3.4
data/CITATION.cff CHANGED
@@ -1,19 +1,19 @@
1
1
  cff-version: 1.2.0
2
- title: omniauth-ldap
2
+ title: "omniauth-ldap"
3
3
  message: >-
4
4
  If you use this work and you want to cite it,
5
5
  then you can use the metadata from this file.
6
6
  type: software
7
7
  authors:
8
- - given-names: Peter Hurn
9
- family-names: Boling
10
- email: peter@railsbling.com
11
- affiliation: railsbling.com
8
+ - given-names: "Peter H."
9
+ family-names: "Boling"
10
+ email: "floss@galtzo.com"
11
+ affiliation: "galtzo.com"
12
12
  orcid: 'https://orcid.org/0009-0008-8519-441X'
13
13
  identifiers:
14
14
  - type: url
15
15
  value: 'https://github.com/omniauth/omniauth-ldap'
16
- description: omniauth-ldap
16
+ description: "omniauth-ldap"
17
17
  repository-code: 'https://github.com/omniauth/omniauth-ldap'
18
18
  abstract: >-
19
19
  omniauth-ldap
data/CODE_OF_CONDUCT.md CHANGED
File without changes
data/CONTRIBUTING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Contributing
2
2
 
3
- Bug reports and pull requests are welcome on [GitHub][📜src-gh].
3
+ Bug reports and pull requests are welcome on [CodeBerg][📜src-cb], [GitLab][📜src-gl], or [GitHub][📜src-gh].
4
4
  This project should be a safe, welcoming space for collaboration, so contributors agree to adhere to
5
5
  the [code of conduct][🤝conduct].
6
6
 
@@ -8,19 +8,27 @@ To submit a patch, please fork the project, create a patch with tests, and send
8
8
 
9
9
  Remember to [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] if you make changes.
10
10
 
11
+ ## Developer Certificate of Origin
12
+
13
+ In order to protect users of this project, we require all contributors to comply with the
14
+ [Developer Certificate of Origin](https://developercertificate.org/).
15
+ This ensures that all contributions are properly licensed and attributed.
16
+
11
17
  ## Help out!
12
18
 
13
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
19
+ Take a look at the open issues and pull requests, or use the gem and find something to improve.
14
20
 
15
21
  Follow these instructions:
16
22
 
17
- 1. Fork the repository
18
- 2. Create a feature branch (`git checkout -b my-new-feature`)
19
- 3. Make some fixes.
20
- 4. Commit changes (`git commit -am 'Added some feature'`)
21
- 5. Push to the branch (`git push origin my-new-feature`)
22
- 6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
23
- 7. Create new Pull Request.
23
+ 1. Join the Discord: [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]
24
+ 2. Fork the repository
25
+ 3. Create your feature branch (`git checkout -b my-new-feature`)
26
+ 4. Make some fixes.
27
+ 5. Commit your changes (`git commit -am 'Added some feature'`)
28
+ 6. Push to the branch (`git push origin my-new-feature`)
29
+ 7. Make sure to add tests for it. This is important, so it doesn't break in a future release.
30
+ 8. Create new Pull Request.
31
+ 9. Announce it in the channel for this org in the [Discord][✉️discord-invite]!
24
32
 
25
33
  ## Executables vs Rake tasks
26
34
 
@@ -42,6 +50,22 @@ There are many Rake tasks available as well. You can see them by running:
42
50
  bin/rake -T
43
51
  ```
44
52
 
53
+ ## Code quality checks
54
+
55
+ Run the Reek task when you want a smell check that fails on current findings:
56
+
57
+ ```shell
58
+ bin/rake reek
59
+ ```
60
+
61
+ Refresh the checked-in `REEK` backlog through the rake task, not by redirecting
62
+ the raw `reek` executable output. The rake task uses the project bundle and
63
+ avoids stale generated binstubs shadowing the Reek gem executable:
64
+
65
+ ```shell
66
+ bin/rake reek:update
67
+ ```
68
+
45
69
  ## Environment Variables for Local Development
46
70
 
47
71
  Below are the primary environment variables recognized by stone_checksums (and its integrated tools). Unless otherwise noted, set boolean values to the string "true" to enable.
@@ -52,7 +76,7 @@ General/runtime
52
76
  - CI: When set to true, adjusts default rake tasks toward CI behavior
53
77
 
54
78
  Coverage (kettle-soup-cover / SimpleCov)
55
- - K_SOUP_COV_DO: Enable coverage collection (default: true in .envrc)
79
+ - K_SOUP_COV_DO: Enable coverage collection (default: true in `mise.toml`)
56
80
  - K_SOUP_COV_FORMATTERS: Comma-separated list of formatters (html, xml, rcov, lcov, json, tty)
57
81
  - K_SOUP_COV_MIN_LINE: Minimum line coverage threshold (integer, e.g., 100)
58
82
  - K_SOUP_COV_MIN_BRANCH: Minimum branch coverage threshold (integer, e.g., 100)
@@ -78,35 +102,63 @@ Git hooks and commit message helpers (exe/kettle-commit-msg)
78
102
  - GIT_HOOK_FOOTER_SENTINEL: Required when footer append is enabled — a unique first-line sentinel to prevent duplicates
79
103
  - GIT_HOOK_FOOTER_APPEND_DEBUG: Extra debug output in the footer template (true/false)
80
104
 
81
- For a quick starting point, this repository’s `.envrc` shows sane defaults, and `.env.local` can override them locally.
105
+ Git diff driver setup
106
+ - Local setup writes repository `.gitattributes` entries and local Git `diff.smorg-*` command config so this checkout uses StructuredMerge semantic diffs.
107
+ - Global setup registers `diff.smorg-*` commands once in the user Git config; use it when you work across several StructuredMerge-enabled repositories.
108
+ - Include-file setup writes `.git/smorg/config` and includes it from local Git config, keeping command registrations out of the repository files.
109
+ - Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local `git diff` uses semantic drivers.
110
+
111
+ ```console
112
+ K_JEM_TEMPLATING=true kettle-jem install
113
+ ```
114
+
115
+ Troubleshooting Git diffs
116
+ - Use `git diff --no-ext-diff` to compare against Git's built-in diff output.
117
+ - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect.
118
+ - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --local --get-regexp '^diff\.smorg-'`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
120
+
121
+ For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
82
122
 
83
123
  ## Appraisals
84
124
 
85
125
  From time to time the [appraisal2][🚎appraisal2] gemfiles in `gemfiles/` will need to be updated.
126
+ Generated appraisal and CI workflow floors are controlled by `ruby.test_minimum`
127
+ in `.structuredmerge/kettle-jem.yml`; this project was templated with `ruby.test_minimum: 2.4`.
128
+ That value describes the lowest Ruby version expected to run the test/development
129
+ toolchain, and it may be higher than the gemspec runtime floor.
130
+
86
131
  They are created and updated with the commands:
87
132
 
88
133
  ```console
89
- bin/rake appraisal:update
134
+ bin/rake appraisal:generate
90
135
  ```
91
136
 
92
- When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
137
+ Use `bin/rake appraisal:update` when you intentionally need to resolve fresh
138
+ appraisal locks.
93
139
 
94
- ## The Reek List
95
-
96
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
97
-
98
- To refresh the `reek` list:
140
+ If you need to reset all gemfiles/*.gemfile.lock files:
99
141
 
100
142
  ```console
101
- bundle exec reek > REEK
143
+ bin/rake appraisal:reset
102
144
  ```
103
145
 
146
+ When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
147
+
104
148
  ## Run Tests
105
149
 
106
- To run all tests
150
+ Run tests via `kettle-test` (provided by `kettle-test`). It runs RSpec, writes the full log to
151
+ `tmp/kettle-test/rspec-TIMESTAMP.log`, and prints a compact highlight block with timing, seed,
152
+ pass/fail count, failing example list, and SimpleCov coverage percentages.
153
+
154
+ ```console
155
+ bundle exec kettle-test
156
+ ```
157
+
158
+ For targeted runs, disable the hard coverage threshold to avoid false failures:
107
159
 
108
160
  ```console
109
- bundle exec rake test
161
+ K_SOUP_COV_MIN_HARD=false bundle exec kettle-test spec/path/to/spec.rb
110
162
  ```
111
163
 
112
164
  ### Spec organization (required)
@@ -149,6 +201,8 @@ Your picture could be here!
149
201
 
150
202
  Made with [contributors-img][🖐contrib-rocks].
151
203
 
204
+ Also see GitLab Contributors: [https://gitlab.com/omniauth/omniauth-ldap/-/graphs/main][🚎contributors-gl]
205
+
152
206
  ## For Maintainers
153
207
 
154
208
  ### One-time, Per-maintainer, Setup
@@ -175,33 +229,37 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
175
229
  1. Run `bin/setup && bin/rake` as a "test, coverage, & linting" sanity check
176
230
  2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
177
231
  3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
178
- 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
179
- 5. Run `git push` to trigger the final CI pipeline before release, and merge PRs
232
+ 4. Run `bin/rake yard` to regenerate the docs site using the canonical docs task
233
+ 5. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
234
+ 6. Run `git push` to trigger the final CI pipeline before release, and merge PRs
180
235
  - NOTE: Remember to [check the build][🧪build].
181
- 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
182
- 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
183
- 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
184
- 9. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
236
+ 7. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
237
+ 8. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
238
+ 9. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
239
+ 10. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
185
240
  - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
186
241
  - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
187
242
  - If the echo above has no output, then it didn't work.
188
243
  - Note: `zsh/datetime` module is needed, if running `zsh`.
189
244
  - In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
190
- 10. Run `bundle exec rake build`
191
- 11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
245
+ 11. Run `bundle exec rake build`
246
+ 12. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
192
247
  to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
193
248
  [gem][💎stone_checksums].
194
249
  - The script automatically commits but does not push the checksums
195
- 12. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
250
+ 13. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
196
251
  - `sha256sum pkg/<gem name>-<version>.gem`
197
- 13. Run `bundle exec rake release` which will create a git tag for the version,
252
+ 14. Run `bundle exec rake release` which will create a git tag for the version,
198
253
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
199
254
 
255
+ [📜src-gl]: https://gitlab.com/omniauth/omniauth-ldap
256
+ [📜src-cb]: https://codeberg.org/omniauth/omniauth-ldap
200
257
  [📜src-gh]: https://github.com/omniauth/omniauth-ldap
201
258
  [🧪build]: https://github.com/omniauth/omniauth-ldap/actions
202
- [🤝conduct]: https://gitlab.com/omniauth/omniauth-ldap/-/blob/main/CODE_OF_CONDUCT.md
259
+ [🤝conduct]: https://github.com/omniauth/omniauth-ldap/blob/main/CODE_OF_CONDUCT.md
203
260
  [🖐contrib-rocks]: https://contrib.rocks
204
261
  [🖐contributors]: https://github.com/omniauth/omniauth-ldap/graphs/contributors
262
+ [🚎contributors-gl]: https://gitlab.com/omniauth/omniauth-ldap/-/graphs/main
205
263
  [🖐contributors-img]: https://contrib.rocks/image?repo=omniauth/omniauth-ldap
206
264
  [💎gem-coop]: https://gem.coop
207
265
  [🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
@@ -214,3 +272,4 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
214
272
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
215
273
  [🚎appraisal2]: https://github.com/appraisal-rb/appraisal2
216
274
  [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache
275
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
data/FUNDING.md CHANGED
@@ -6,18 +6,14 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
6
6
 
7
7
  [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal]
8
8
 
9
- [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
13
13
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
14
14
  [🖇sponsor]: https://github.com/sponsors/pboling
15
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
16
- [🖇polar]: https://polar.sh/pboling
17
15
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
18
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
19
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
20
- [🖇patreon]: https://patreon.com/galtzo
16
+ [🖇kofi]: https://ko-fi.com/pboling
21
17
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
22
18
  [🖇buyme]: https://www.buymeacoffee.com/pboling
23
19
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
data/LICENSE.md ADDED
@@ -0,0 +1,33 @@
1
+ # License
2
+
3
+ This project is made available under the following license.
4
+ Choose the option that best fits your use case:
5
+
6
+ - [MIT](MIT.md)
7
+
8
+ ## Copyright Notice
9
+
10
+ - Copyright (c) 2011 Hubert
11
+ - Copyright (c) 2011-2013 Ping Yu
12
+ - Copyright (c) 2012 angel brown
13
+ - Copyright (c) 2012 Dmitriy Dzema
14
+ - Copyright (c) 2012 Dmitriy Zaporozhets
15
+ - Copyright (c) 2012 Pat Thoyts
16
+ - Copyright (c) 2012 Rashit Azizbaev
17
+ - Copyright (c) 2012 Samuel de Framond
18
+ - Copyright (c) 2012 Terry Tai
19
+ - Copyright (c) 2014 David Benko
20
+ - Copyright (c) 2014 Jakub Jirutka
21
+ - Copyright (c) 2014 Jason Hollingsworth
22
+ - Copyright (c) 2014 Mack Talcott
23
+ - Copyright (c) 2016-2018 Drew Blessing
24
+ - Copyright (c) 2016 Julian Kniephoff
25
+ - Copyright (c) 2016 Mike Tierney
26
+ - Copyright (c) 2016 Sasha Kotlyar
27
+ - Copyright (c) 2017 Michael Kozono
28
+ - Copyright (c) 2017 Tiago Botelho
29
+ - Copyright (c) 2018 tmilewski
30
+ - Copyright (c) 2019 Drew Blessing
31
+ - Copyright (c) 2022 Finn Bacall
32
+ - Copyright (c) 2022 Stan Hu
33
+ - Copyright (c) 2025-2026 Peter H. Boling
data/MIT.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ See [LICENSE.md](LICENSE.md) for the copyright notice.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.