disk-space-saviour 0.0.0-stage → 0.11.30

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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,506 @@
1
+ # Changelog
2
+
3
+ ## 0.11.30
4
+
5
+ ### Patch Changes
6
+
7
+ - 8b129f9: Recognise npm's E409 "Cannot publish over previously staged version" wording as an already-published conflict in `publish-retry`, so a release that reached the registry verifies instead of failing the job.
8
+
9
+ ## 0.11.29
10
+
11
+ ### Patch Changes
12
+
13
+ - 0cd60b8: Bound the use-m CDN fetch with a per-attempt deadline and a retry, and report a load failure from the script that needs it.
14
+
15
+ `loadUse()` fetched `https://unpkg.com/use-m/use.js` with a bare `fetch()`, so a CDN blip surfaced as `TypeError: fetch failed` — a message naming neither the CDN nor the URL — and a connection that was accepted but never answered was bounded only by undici's 300 s `headersTimeout`. Each attempt now carries a 15 s deadline enforced by an `AbortController`, a failed attempt is retried up to three times with exponential backoff (51 s worst case), and the final error names the URL, the attempt count and the underlying reason, keeping the original failure as its `cause`.
16
+
17
+ The seven release scripts that loaded these modules at module scope now go through `scripts/bootstrap-dependencies.mjs`, which prints a GitHub `::error::` annotation and writes the fallback outputs the workflow reads — `published=false` for `publish-to-npm.mjs`, `version_committed=false` for `version-and-commit.mjs` — so a CDN outage no longer leaves a job with an empty `GITHUB_OUTPUT` and a loader stack.
18
+
19
+ ## 0.11.28
20
+
21
+ ### Patch Changes
22
+
23
+ - Configure the release and merge-simulation commit author as `41898282+github-actions[bot]@users.noreply.github.com` in `scripts/version-and-commit.mjs` and `scripts/simulate-fresh-merge.sh`, so those commits are attributed to the `github-actions[bot]` account and no longer require an extra approval under rulesets with `require_extra_approval_for_unattributed_changes`.
24
+
25
+ Add a scheduled fail-closed high-severity audit for every committed npm lock.
26
+
27
+ Ignore successful redirects when checking Lychee reports for broken links.
28
+
29
+ Lint the workflows themselves: a new `workflows` check runs `actionlint` (from the Docker image that bundles shellcheck) and `zizmor`, and the findings they reported are fixed — the manifest digest list is built as an array, the packaging retry logs its attempt number, the npm wait passes the release version through the environment, and third-party actions are pinned to commit hashes.
30
+
31
+ Fail the web archive check on lychee errors that have no http(s) URL
32
+
33
+ `scripts/check-web-archive.mjs` only extracted `http(s)` links from the lychee
34
+ report, so errors such as a missing local file or an unresolvable root-relative
35
+ link were silently dropped. When those were the only errors the script printed
36
+ "No broken URLs found" and set `all_archived=true`, masking a failing lychee
37
+ run. The parser now matches the status marker instead of the URL and splits the
38
+ results into archivable URLs and links the Wayback Machine cannot answer; the
39
+ latter are annotated as errors and force `all_archived=false` with exit code 1.
40
+ Adds regression tests over a captured lychee report fixture.
41
+
42
+ Compare change detection paths package-relative so the ignore list (`examples/`, `.changeset/`, `experiments/`, `dev/log/`, `docs/case-studies/`) also matches in the multi-language layout, and stop reporting other languages' files as JavaScript code changes.
43
+
44
+ Publish Docker images for both amd64 and arm64 using native runners and a multi-architecture manifest.
45
+
46
+ Suppress the reviewed DEP0005 warning from the Docker manifest artifact download step.
47
+
48
+ Land the release version bump through a pull request when a repository ruleset declines the direct push to `main`, and stop reporting a GH013 rule violation as a lost push race.
49
+
50
+ Give long CI steps their own execution budget so an overrun reports `failure` instead of `cancelled`.
51
+
52
+ Fail broken-link checks until archived replacements are applied to dead links.
53
+
54
+ Load `command-stream` and `lino-arguments` through a shared use-m interop shim so the release scripts work on Node 24.
55
+
56
+ Node 22.12+ adds a synthetic `module.exports` named export to CommonJS namespaces whose names cannot be inferred, which stops use-m from unwrapping the callable default. Destructuring `$` off the result therefore yields `undefined` and every release script fails with `TypeError: $ is not a function` on the Node 24 runners the workflows request. `scripts/use-module.mjs` normalises the namespace, reports the HTTP status when `use.js` cannot be fetched, names the observed keys when no callable export is found, and traces the resolved shape under `CI_SCRIPTS_DEBUG=1`.
57
+
58
+ Report why `scripts/wait-for-npm.mjs` could not confirm a release. The check
59
+ queries the npm registry over HTTP and returns `{ available, status, httpStatus,
60
+ url, error }`, so an HTTP 404 ("not published") is distinguished from an
61
+ unanswered probe (5xx, rate limit, proxy, DNS). Every attempt logs its outcome,
62
+ and an unanswered probe no longer claims the version "did not become available
63
+ on npm" — it says the publish status is unknown and points at the registry URL
64
+ to check. The step also exposes an `npm_check_status` output.
65
+
66
+ ## 0.11.27
67
+
68
+ ### Patch Changes
69
+
70
+ - 53519f1: Report release pipeline timeout cancellations as visible failures on the default branch.
71
+
72
+ ## 0.11.26
73
+
74
+ ### Patch Changes
75
+
76
+ - 328d858: Add CodeQL analysis for JavaScript and GitHub Actions plus high-severity dependency review for pull requests.
77
+
78
+ ## 0.11.25
79
+
80
+ ### Patch Changes
81
+
82
+ - 8af8547: Require successful lint and test quality gates before manual releases can publish.
83
+
84
+ ## 0.11.24
85
+
86
+ ### Patch Changes
87
+
88
+ - dd8a969: Reject unsupported keys in generated workflow concurrency blocks.
89
+
90
+ ## 0.11.23
91
+
92
+ ### Patch Changes
93
+
94
+ - e73716a: Harden workflow inputs, checkout configuration, and deployment concurrency.
95
+
96
+ ## 0.11.22
97
+
98
+ ### Patch Changes
99
+
100
+ - d0b42fa: Keep excluded-directory changes from activating change-gated CI jobs on pull
101
+ requests and direct pushes.
102
+
103
+ ## 0.11.21
104
+
105
+ ### Patch Changes
106
+
107
+ - 5bf9619: Quote the fresh merge base ref to prevent shell word splitting.
108
+
109
+ ## 0.11.20
110
+
111
+ ### Patch Changes
112
+
113
+ - dfd681f: Report ESLint warnings only on lines changed relative to the base branch, so unchanged findings such as `local/no-changelog-comments` stop repeating on every run. Errors are still reported for all files.
114
+
115
+ ## 0.11.19
116
+
117
+ ### Patch Changes
118
+
119
+ - 8608672: Split publish and verification failure domains in `publish-to-npm.mjs`: verification now polls the npm registry with exponential backoff, and a verification miss no longer re-runs `changeset publish`.
120
+
121
+ ## 0.11.18
122
+
123
+ ### Patch Changes
124
+
125
+ - 6b3289a: Build the Dockerfile on pull requests via a new `docker-build` job, so a broken image fails the pull request instead of only surfacing after the package is published. The build uses `push: false` with `load: true` (works for fork pull requests, which have no registry credentials) and the GHA layer cache. Repositories without a Dockerfile skip the job automatically.
126
+
127
+ ## 0.11.17
128
+
129
+ ### Patch Changes
130
+
131
+ - ebaa52a: Add a least-privilege top-level `permissions: contents: read` block to `release.yml` and `links.yml` so jobs no longer inherit the repository default `GITHUB_TOKEN` scope, with write access escalated only on the publishing jobs.
132
+
133
+ ## 0.11.16
134
+
135
+ ### Patch Changes
136
+
137
+ - 1349837: Suppress the Git default-branch hint during release workflow checkout.
138
+
139
+ ## 0.11.15
140
+
141
+ ### Patch Changes
142
+
143
+ - f04c820: Quiet release logs by checking npm package versions through the registry HTTP API and removing deprecated setup-node `always-auth` config before publish-job npm commands run.
144
+
145
+ ## 0.11.14
146
+
147
+ ### Patch Changes
148
+
149
+ - 63b31c3: Harden generated preview-image pushes against main branch non-fast-forward races.
150
+
151
+ ## 0.11.13
152
+
153
+ ### Patch Changes
154
+
155
+ - Add a warning-level ESLint rule for changelog-style comments and strings.
156
+
157
+ Detect code changes from real merge commits pushed to main with the first-parent
158
+ merge diff while preserving pull request synthetic merge behavior.
159
+
160
+ ## 0.11.12
161
+
162
+ ### Patch Changes
163
+
164
+ - 89fb151: Ignore stray Markdown files when checking for pending changesets.
165
+
166
+ ## 0.11.11
167
+
168
+ ### Patch Changes
169
+
170
+ - d2e3932: Require exact changelog version headers when extracting GitHub release notes.
171
+ - e7356e9: Fail release-time changeset merging when any pending changeset is malformed.
172
+
173
+ ## 0.11.10
174
+
175
+ ### Patch Changes
176
+
177
+ - 9915756: Auto-detect single-language versus `js/` monorepo layouts when naming GitHub
178
+ releases, namespace multi-language JavaScript tags as `js_v<version>`, and
179
+ normalize prefixed tags before linking npm version badges.
180
+
181
+ ## 0.11.9
182
+
183
+ ### Patch Changes
184
+
185
+ - 49a8205: Add a post-publish smoke test that installs the just-published npm package in a clean project and verifies its entry points.
186
+
187
+ ## 0.11.8
188
+
189
+ ### Patch Changes
190
+
191
+ - 391530e: Skip the slow CI test matrix for pull requests that only touch non-code files.
192
+
193
+ ## 0.11.7
194
+
195
+ ### Patch Changes
196
+
197
+ - 674f9ce: Fix npm release path for brand-new packages (issue #77):
198
+ - `publish-to-npm.mjs` now classifies authentication / registry-configuration
199
+ failures (404/401/403, `access token expired`, `ENEEDAUTH`, etc.) as
200
+ non-retryable and fails fast with actionable guidance instead of retrying
201
+ `MAX_RETRIES` times and hiding the real cause behind a generic error.
202
+ - The `release` and `instant-release` publish steps now pass an optional
203
+ `NODE_AUTH_TOKEN` sourced from `secrets.NPM_TOKEN`, providing a first-publish
204
+ bootstrap path. OIDC trusted publishing remains the steady-state mechanism;
205
+ the token is only needed for the very first release of a new package.
206
+
207
+ ## 0.11.6
208
+
209
+ ### Patch Changes
210
+
211
+ - 8ca3e32: Harden the `publish-dockerhub` buildx boot against transient Docker Hub registry outages. A new reusable `setup-buildx-resilient` composite action pre-pulls the pinned `moby/buildkit` image with retries and a `mirror.gcr.io` pull-through fallback, then boots buildx with the driver image pinned to the locally cached copy so a `registry-1.docker.io` blip no longer fails the publish job (issue #75).
212
+
213
+ ## 0.11.5
214
+
215
+ ### Patch Changes
216
+
217
+ - 312a2fe: Add a `concurrency` block to the Broken Link Checker workflow (`links.yml`) so redundant runs are cancelled on new commits, consistent with the other workflows in the template.
218
+
219
+ ## 0.11.4
220
+
221
+ ### Patch Changes
222
+
223
+ - 35696cc: Cap generated GitHub release notes before creating releases so oversized changelog
224
+ entries link to the full tagged changelog instead of failing GitHub API
225
+ validation.
226
+
227
+ ## 0.11.3
228
+
229
+ ### Patch Changes
230
+
231
+ - a8e4030: Run the preview screenshot regeneration workflow inside the official Playwright container to avoid stalled Chromium downloads in CI, and keep the desktop packaging job on Node 20 while verifying package output before artifact upload.
232
+
233
+ ## 0.11.2
234
+
235
+ ### Patch Changes
236
+
237
+ - aeec4cb: Enforce the 1500-line architecture limit across all JavaScript (`.js`, `.mjs`, `.cjs`) and Markdown (`.md`) files in the `check-file-line-limits` CI gate, lower the documentation limit from 2500 to 1500, and exempt case-study generated-data files explicitly.
238
+
239
+ ## 0.11.1
240
+
241
+ ### Patch Changes
242
+
243
+ - 8cd0d70: Correct CI workflow concurrency and preview failure artifact handling in the template.
244
+
245
+ ## 0.11.0
246
+
247
+ ### Minor Changes
248
+
249
+ - e7025ed: Add a release-time `preview-regen` job to `example-app.yml` and a
250
+ `scripts/update-preview-images.mjs` driver that boot the universal example app
251
+ in a headless Chromium via `browser-commander` + Playwright, capture a
252
+ locale × theme matrix of screenshots into `docs/screenshots/example-app/`, and
253
+ commit any drift back to `main` with `[skip ci]`. Adds the matching
254
+ `npm run example:web:preview-images` script.
255
+
256
+ ## 0.10.2
257
+
258
+ ### Patch Changes
259
+
260
+ - f044604: Document the one-time **Settings → Pages → Source = GitHub Actions** prerequisite for the example app deployment, and note it in a comment above the `pages-deploy` job.
261
+
262
+ ## 0.10.1
263
+
264
+ ### Patch Changes
265
+
266
+ - ede9f84: Publish the template as the real link-foundation example package and add the globally installable CLI entry point.
267
+
268
+ ## 0.10.0
269
+
270
+ ### Minor Changes
271
+
272
+ - 5a81a7f: Add a universal React example app with GitHub Pages, Electron desktop, and Capacitor mobile build paths.
273
+
274
+ ## 0.9.0
275
+
276
+ ### Minor Changes
277
+
278
+ - f23283c: Add an optional Docker Hub publishing path that waits for the exact npm
279
+ package version before tagging Docker images.
280
+
281
+ ## 0.8.6
282
+
283
+ ### Patch Changes
284
+
285
+ - acccf75: Format GitHub release names as human-readable `[Language] x.y.z` titles while keeping prefixed tag names unchanged.
286
+
287
+ ## 0.8.5
288
+
289
+ ### Patch Changes
290
+
291
+ - Fail GitHub release creation on unexpected gh api errors and clearly skip releases that already exist.
292
+
293
+ Enforce npm and Node.js minimum versions for trusted publishing setup and resolve a supported npm 11 tarball for fallback installs.
294
+
295
+ ## 0.8.4
296
+
297
+ ### Patch Changes
298
+
299
+ - 031f7cd: Add explicit CI job timeouts and per-test runner timeout limits.
300
+
301
+ ## 0.8.3
302
+
303
+ ### Patch Changes
304
+
305
+ - bdaa4b7: Derive release script package names from package.json instead of template placeholders.
306
+
307
+ ## 0.8.2
308
+
309
+ ### Patch Changes
310
+
311
+ - d179bb7: Add warning annotations for files approaching the CI file line limit.
312
+
313
+ ## 0.8.1
314
+
315
+ ### Patch Changes
316
+
317
+ - f0c69af: Normalize language-prefixed release tags before building npm shields.io badge URLs.
318
+
319
+ ## 0.8.0
320
+
321
+ ### Minor Changes
322
+
323
+ - 3e45a9c: Add `--tag-prefix` option to release scripts for multi-language repos
324
+
325
+ The `create-github-release.mjs` and `format-github-release.mjs` scripts now accept a `--tag-prefix` CLI parameter (defaulting to `v`) that allows users to customize the git tag prefix. This enables use in multi-language repositories where different language packages need distinct tag prefixes (e.g., `js-v1.0.0` vs `rust-v1.0.0`).
326
+
327
+ ## 0.7.3
328
+
329
+ ### Patch Changes
330
+
331
+ - ae2cc9a: Add self-healing release mechanism that checks npm registry for unpublished versions
332
+
333
+ ## 0.7.2
334
+
335
+ ### Patch Changes
336
+
337
+ - 9126e16: fix: npm upgrade fallbacks and Node.js 24.x upgrade for CI/CD
338
+ - Upgrade Node.js from 20.x to 24.x in all workflow files (avoids broken npm in Node.js 22.22.2)
339
+ - Add 4-strategy fallback chain to setup-npm.mjs (standard, curl tarball, npx, corepack)
340
+ - Update GitHub Actions to latest versions (checkout v6, setup-node v6, create-pull-request v8)
341
+ - Add case study documentation for issue #33
342
+
343
+ ## 0.7.1
344
+
345
+ ### Patch Changes
346
+
347
+ - 6916409: Use per-commit diff instead of full-PR diff for CI change detection
348
+
349
+ ## 0.7.0
350
+
351
+ ### Minor Changes
352
+
353
+ - 983789a: Add CI/CD best practices from hive-mind: fast-fail job ordering, test compilation, file line limits check, secrets detection, documentation validation, extracted fresh merge simulation script, and proper cancellation propagation
354
+
355
+ ## 0.6.0
356
+
357
+ ### Minor Changes
358
+
359
+ - 8961862: Add automated broken link checker with Web Archive fallback suggestions
360
+ - Add `.github/workflows/links.yml` with lychee-action for link checking in Markdown and HTML files
361
+ - Add `scripts/check-web-archive.mjs` to check broken links against the Wayback Machine API
362
+ - Add `.lycheeignore` for excluding known false-positive URLs (localhost, example.com, etc.)
363
+ - Update `README.md` to document the broken link checker feature
364
+ - Scheduled weekly check (Mondays at 09:00 UTC) to catch links that break over time
365
+ - On PRs, broken links with no Web Archive fallback will fail the check
366
+ - For broken links that have archived versions, provides actionable replacement suggestions
367
+ - On scheduled runs, automatically creates a GitHub Issue with the full broken links report
368
+
369
+ Fixes #27
370
+
371
+ ## 0.5.1
372
+
373
+ ### Patch Changes
374
+
375
+ - e398190: Add comprehensive best practices comparison and improve CI concurrency
376
+ - Add DETAILED-COMPARISON.md with side-by-side analysis of ALL scripts, workflows, and configurations
377
+ - Implement cancel-in-progress for main branch concurrency (hive-mind Issue #1274 fix)
378
+ - Fix max-lines documentation (1500, not 1000)
379
+ - Reference detailed comparison from BEST-PRACTICES.md
380
+
381
+ ## 0.5.0
382
+
383
+ ### Minor Changes
384
+
385
+ - 66211b5: Add fresh merge simulation to CI/CD to prevent stale merge preview issues
386
+ - Add "Simulate fresh merge with base branch" step to lint and test jobs
387
+ - This ensures PR CI validates the actual merge result, not a stale snapshot
388
+ - Prevents CI failures on main branch after merging PRs that sat open for days
389
+ - Add case study documentation for issue #23 with root cause analysis
390
+ - Add ignore patterns for case study data files in ESLint and Prettier
391
+
392
+ See docs/case-studies/issue-23 for detailed analysis of the stale merge preview problem.
393
+
394
+ Fixes #23
395
+
396
+ ## 0.4.0
397
+
398
+ ### Minor Changes
399
+
400
+ - e6c2691: Add multi-language repository support for CI/CD scripts
401
+ - Add `scripts/js-paths.mjs` utility for automatic JavaScript package root detection
402
+ - Support both `./package.json` (single-language) and `./js/package.json` (multi-language repos)
403
+ - Add `--legacy-peer-deps` flag to npm install commands in release scripts to fix ERESOLVE errors
404
+ - Save and restore working directory after `cd` commands to fix `command-stream` library's `process.chdir()` behavior
405
+ - Add case study documentation with root cause analysis in `docs/case-studies/issue-21/`
406
+
407
+ ## 0.3.0
408
+
409
+ ### Minor Changes
410
+
411
+ - 80d9c84: Add CI check to prevent manual version modification in package.json
412
+ - Added `check-version.mjs` script that detects manual version changes in PRs
413
+ - Added `check-changesets.mjs` script to check for pending changesets (converted from inline shell)
414
+ - Added `version-check` job to release.yml workflow
415
+ - Automated release PRs (changeset-release/_ and changeset-manual-release-_) are automatically skipped
416
+
417
+ ## 0.2.2
418
+
419
+ ### Patch Changes
420
+
421
+ - 9a12139: Fix CI/CD check differences between pull request and push events
422
+
423
+ Changes:
424
+ - Add `detect-changes` job with cross-platform `detect-code-changes.mjs` script
425
+ - Make lint job independent of changeset-check (runs based on file changes only)
426
+ - Allow docs-only PRs without changeset requirement
427
+ - Handle changeset-check 'skipped' state in dependent jobs
428
+ - Exclude `.changeset/`, `docs/`, `experiments/`, `examples/` folders and markdown files from code changes detection
429
+
430
+ ## 0.2.1
431
+
432
+ ### Patch Changes
433
+
434
+ - 55aef41: Make Bun the primary runtime choice throughout the template
435
+ - Update all shebangs from `#!/usr/bin/env node` to `#!/usr/bin/env bun` in scripts, experiments, and case studies
436
+ - Update README.md to prioritize Bun in all sections (features, development, runtime support, package managers, scripts reference)
437
+ - Update examples to list Bun first
438
+ - Bun now described as "Primary runtime with highest performance" and "Primary choice" for package management
439
+ - Maintains full compatibility with Node.js and Deno
440
+
441
+ ## 0.2.0
442
+
443
+ ### Minor Changes
444
+
445
+ - d3f7fcd: Improve changeset CI/CD robustness for concurrent PRs
446
+ - Update validate-changeset.mjs to only check changesets ADDED by the current PR (not pre-existing ones)
447
+ - Add merge-changesets.mjs script to combine multiple pending changesets during release
448
+ - Merged changesets use highest version bump type (major > minor > patch) and combine descriptions chronologically
449
+ - Update release workflow to pass SHA environment variables and add merge step
450
+ - Add comprehensive case study documentation for the CI/CD improvement
451
+ - This prevents PR failures when multiple PRs merge before a release cycle completes
452
+
453
+ ## 0.1.4
454
+
455
+ ### Patch Changes
456
+
457
+ - e9703b9: Add ESLint complexity rules with reasonable thresholds
458
+
459
+ ## 0.1.3
460
+
461
+ ### Patch Changes
462
+
463
+ - 0198aaa: Add case study documentation comparing best practices from effect-template
464
+
465
+ This changeset adds comprehensive documentation analyzing best practices from
466
+ ProverCoderAI/effect-template repository, identifying gaps in our current setup,
467
+ and providing prioritized recommendations for improvements.
468
+
469
+ Key findings include missing best practices like code duplication detection (jscpd),
470
+ ESLint complexity rules, VS Code settings, and test coverage thresholds.
471
+
472
+ ## 0.1.2
473
+
474
+ ### Patch Changes
475
+
476
+ - 2ea9b78: Enforce strict no-unused-vars ESLint rule without exceptions. All unused variables, arguments, and caught errors must now be removed or used. The `_` prefix no longer suppresses unused variable warnings.
477
+
478
+ ## 0.1.1
479
+
480
+ ### Patch Changes
481
+
482
+ - 042e877: Fix GitHub release formatting to support Major/Minor/Patch changes
483
+
484
+ The release formatting script now correctly handles all changeset types (Major, Minor, Patch) instead of only Patch changes. This ensures that:
485
+ - Section headers are removed from release notes
486
+ - PR detection works for all release types
487
+ - NPM badges are added correctly
488
+
489
+ ## 0.1.0
490
+
491
+ ### Minor Changes
492
+
493
+ - 65d76dc: Initial template setup with complete AI-driven development pipeline
494
+
495
+ Features:
496
+ - Multi-runtime support for Node.js, Bun, and Deno
497
+ - Universal testing with test-anywhere framework
498
+ - Automated release workflow with changesets
499
+ - GitHub Actions CI/CD pipeline with 9 test combinations
500
+ - Code quality tools: ESLint + Prettier with Husky pre-commit hooks
501
+ - Package manager agnostic design
502
+
503
+ All notable changes to this project will be documented in this file.
504
+
505
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
506
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
package/LICENSE ADDED
@@ -0,0 +1,24 @@
1
+ This is free and unencumbered software released into the public domain.
2
+
3
+ Anyone is free to copy, modify, publish, use, compile, sell, or
4
+ distribute this software, either in source code form or as a compiled
5
+ binary, for any purpose, commercial or non-commercial, and by any
6
+ means.
7
+
8
+ In jurisdictions that recognize copyright laws, the author or authors
9
+ of this software dedicate any and all copyright interest in the
10
+ software to the public domain. We make this dedication for the benefit
11
+ of the public at large and to the detriment of our heirs and
12
+ successors. We intend this dedication to be an overt act of
13
+ relinquishment in perpetuity of all present and future rights to this
14
+ software under copyright law.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ For more information, please refer to <https://unlicense.org>