From b937be9cc99526c137b0b16e111f4f00eac14253 Mon Sep 17 00:00:00 2001 From: Sami Ahmed Siddiqui Date: Tue, 20 Oct 2026 11:58:22 +0500 Subject: [PATCH 1/4] Releasing v2.1.0 --- README.md | 4 +- action.yml | 2 +- node_modules/.package-lock.json | 8 +- node_modules/check-http-status/README.md | 13 +- .../bin/check-http-status.js | 2 +- node_modules/check-http-status/index.d.ts | 26 +++- node_modules/check-http-status/index.js | 3 +- node_modules/check-http-status/lib/checker.js | 135 ++++++++++++++++-- .../check-http-status/lib/report/csv.js | 7 + .../check-http-status/lib/report/excel.js | 7 + .../check-http-status/lib/report/rows.js | 10 ++ .../lib/report/template.html | 92 ++++++++---- node_modules/check-http-status/package.json | 2 +- node_modules/check-http-status/schema.json | 2 +- package-lock.json | 18 +-- package.json | 4 +- 16 files changed, 267 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index b5e38b9..7f1ce5a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Check HTTP Status action -Crawl a website or check a list of URLs for HTTP status codes, redirects and broken links. Powered by [check-http-status](https://github.com/trunkcode/check-http-status) v2. +Crawl a website or check a list of URLs for HTTP status codes, redirects and broken links. Reports also include H1, meta description and image alt text. Powered by [check-http-status](https://github.com/trunkcode/check-http-status) v2. ## Inputs @@ -19,7 +19,7 @@ One of `crawl`, `sitemap`, `urls` or `base-url` is required. Lists accept one va | `fail` | Fail when broken URLs are found. | | `export` | Report file(s): `.xlsx`, `.csv`, `.json` or `.html`. | | `config` | Path to a [config file](https://github.com/trunkcode/check-http-status#config-file). | -| `max-pages` | Max pages to crawl. Default `1000`. | +| `max-pages` | Max pages to crawl. Default `5000`. | | `max-depth` | Max link depth. Default unlimited. | | `max-redirects` | Max redirects to follow. Default `10`. | | `check-external` | Check external links. Default `true`. | diff --git a/action.yml b/action.yml index 0fb3712..944aca4 100644 --- a/action.yml +++ b/action.yml @@ -36,7 +36,7 @@ inputs: description: 'Path to a check-http-status config file.' required: false max-pages: - description: 'Max pages to crawl. Default 1000.' + description: 'Max pages to crawl. Default 5000.' required: false max-depth: description: 'Max link depth. Default unlimited.' diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index d1894e2..c25b3b0 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "check-http-status-action", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { @@ -293,9 +293,9 @@ } }, "node_modules/check-http-status": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/check-http-status/-/check-http-status-2.0.0.tgz", - "integrity": "sha512-Ab4YX68Yn3YM5ETSB3oACO95LQXF5lD5MLpOUmQzp551jRSntsz5E3uUzy1/4nsQAskgko4J3+M10jndnh/UPw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/check-http-status/-/check-http-status-2.2.0.tgz", + "integrity": "sha512-Ighl/AlQO7LrP8ycqBO4dGnkFfxiFX2JfdCZ59svdHnC9DCfW54Z+NJpR9f5hzaxoj51M6sYwfyhtwkfIlq35g==", "license": "MIT", "dependencies": { "cheerio": "^1.0.0", diff --git a/node_modules/check-http-status/README.md b/node_modules/check-http-status/README.md index c4a424a..03dd1a6 100644 --- a/node_modules/check-http-status/README.md +++ b/node_modules/check-http-status/README.md @@ -157,11 +157,9 @@ checkHttpStatus({ | `crawl` | String / Array | | Website URL to crawl. Pages are discovered by following internal links. | | `urls` | Array | | URLs to check (with their redirects), without crawling. | | `sitemaps` | Array | | *Optional.* Sitemap / sitemap index URLs. With `crawl`, their pages are crawled too and orphans are flagged; without it, their URLs are checked. | - -Provide at least one of `crawl`, `urls` or `sitemaps`. For a full site audit, `crawl` on its own is enough. | `include` | Array / String | | Only crawl URLs matching one of these rules. | | `exclude` | Array / String | | Don't crawl URLs matching these rules. They are still listed and checked. | -| `maxPages` | Number | `1000` | Maximum pages to crawl. Later pages are listed as "Skipped (max pages)". | +| `maxPages` | Number | `5000` | Maximum pages to crawl. Later pages are listed as "Skipped (max pages)". | | `maxDepth` | Number | unlimited | Maximum link depth from the start URL. | | `checkExternal` | Boolean | `true` | Check the status of external links. Excluded pages and assets are always checked. | | `checkAssets` | Boolean | `false` | Also check images, scripts, stylesheets, icons and iframes. | @@ -185,6 +183,9 @@ Provide at least one of `crawl`, `urls` or `sitemaps`. For a full site audit, `c | `signal` | AbortSignal | | Stop the crawl. Everything checked so far is returned; unfinished URLs are "Not checked". | | `onResult` | Function | | Called with each result as soon as its URL is checked (live results). | | `onProgress` | Function | | Called with progress stats after each URL. | +| `onPageLimit` | Function | | Called when everything up to `maxPages` is checked but more pages are waiting, instead of stopping. Return (or resolve) `true` to crawl up to `maxPages` more, a number to crawl that many more (`Infinity` for all), or `false` to finish. Receives the progress stats plus `waitingPages`. | + +Provide at least one of `crawl`, `urls` or `sitemaps`. For a full site audit, `crawl` on its own is enough. Rules match as a case-insensitive substring (`/docs`), a wildcard (`*/products/*`) or a regular expression (`/\/page\/\d+/`). @@ -237,8 +238,10 @@ await writeReport(report, 'report.xlsx', 'xlsx'); | `error` | Connection error (timeout, DNS, TLS…) if the request failed. | | `type`, `linkType`, `scope` | `internal`/`external`, `page`/`asset`, and whether it was crawled, excluded, checked or skipped. | | `redirectTo`, `redirectChain`, `finalUrl`, `finalStatus`, `redirectCount` | Redirect details. `note` is set for loops or too many redirects. | -| `foundOn` | `[{ page, anchors, count, kind }]`, where `kind` is `link`, `redirect` or `sitemap`. | -| `title`, `contentType`, `responseTime`, `depth`, `inSitemap`, `orphan` | Page details. | +| `foundOn` | `[{ page, anchors, count, kind }]`, where `kind` is `link`, `redirect` or `sitemap`. Images also have `alt`, `imageTitle` and `missingAlt` for that page. | +| `title`, `h1`, `h1Count`, `metaDescription` | Crawled pages: ``, the first `<h1>` and how many there are, and the meta description. | +| `assetType`, `alt`, `imageTitle`, `missingAlt` | Assets: `image`, `script`, `stylesheet`, `icon`, `media` or `iframe`. Images: every alt text and `title` used for it, and whether an `<img>` has no `alt` attribute (`alt=""` counts as set). | +| `contentType`, `responseTime`, `depth`, `inSitemap`, `orphan` | Page details. | ## Config file diff --git a/node_modules/check-http-status/bin/check-http-status.js b/node_modules/check-http-status/bin/check-http-status.js index e5b81e1..c712b9f 100755 --- a/node_modules/check-http-status/bin/check-http-status.js +++ b/node_modules/check-http-status/bin/check-http-status.js @@ -25,7 +25,7 @@ Crawl options -e, --exclude <text> Don't crawl URLs containing <text>; they are still listed and their status is checked (repeatable) Rules may use * wildcards or /regex/ - --max-pages <n> Max pages to crawl (default 1000) + --max-pages <n> Max pages to crawl (default 5000) --max-depth <n> Max link depth from the start URL (default unlimited) --no-external Don't check the status of external links (excluded pages and assets are still checked) diff --git a/node_modules/check-http-status/index.d.ts b/node_modules/check-http-status/index.d.ts index 3d6815a..c1684f2 100644 --- a/node_modules/check-http-status/index.d.ts +++ b/node_modules/check-http-status/index.d.ts @@ -96,7 +96,7 @@ declare namespace checkHttpStatus { include?: string | string[]; /** Don't crawl matching URLs; they're still listed and checked. */ exclude?: string | string[]; - /** Default 1000. */ + /** Default 5000. */ maxPages?: number; /** Maximum link depth from the start URL. Default unlimited. */ maxDepth?: number | null; @@ -139,6 +139,8 @@ declare namespace checkHttpStatus { onResult?: (result: Result) => void; /** Called with progress after each URL. */ onProgress?: (progress: Progress) => void; + /** At `maxPages`: `true` crawls `maxPages` more, a number that many (`Infinity` all), `false` stops. */ + onPageLimit?: (progress: PageLimitProgress) => boolean | number | Promise<boolean | number>; } interface FoundOn { @@ -149,6 +151,12 @@ declare namespace checkHttpStatus { /** Times the link appears on that page. */ count: number; kind: 'link' | 'redirect' | 'sitemap' | 'seed'; + /** Images only: `alt` texts used on that page. */ + alt?: string[]; + /** Images only: `title` attributes used on that page. */ + imageTitle?: string[]; + /** Images only: `<img>` tags on that page without an `alt` attribute. */ + missingAlt?: number; } interface RedirectHop { @@ -165,6 +173,8 @@ declare namespace checkHttpStatus { error: string; type: 'internal' | 'external'; linkType: 'page' | 'asset'; + /** Assets only: the tag it was found in. */ + assetType: '' | 'image' | 'script' | 'stylesheet' | 'icon' | 'media' | 'iframe'; scope: Scope; redirectTo: string; redirectChain: RedirectHop[]; @@ -177,6 +187,15 @@ declare namespace checkHttpStatus { note: string; foundOn: FoundOn[]; title: string; + /** Crawled pages: first `<h1>` and how many there are. */ + h1: string; + h1Count: number; + metaDescription: string; + /** Images: every `alt` text and `title` attribute used for it. */ + alt: string[]; + imageTitle: string[]; + /** Images: some `<img>` has no `alt` attribute (`alt=""` is fine). */ + missingAlt: boolean; contentType: string; responseTime: number | null; depth: number; @@ -203,6 +222,11 @@ declare namespace checkHttpStatus { pageLimitReached: boolean; } + interface PageLimitProgress extends Progress { + /** Pages found after `maxPages` was reached. */ + waitingPages: number; + } + interface Summary extends Progress { crawl: string[]; sitemaps: string[]; diff --git a/node_modules/check-http-status/index.js b/node_modules/check-http-status/index.js index 8fc538b..dde82f5 100644 --- a/node_modules/check-http-status/index.js +++ b/node_modules/check-http-status/index.js @@ -67,8 +67,9 @@ function normalizeConfig(config) { 'ignoreQuery': !!config.ignoreQuery, 'include': rules(config.include), 'maxDepth': config.maxDepth === undefined || config.maxDepth === null || config.maxDepth === '' ? null : toInt(config.maxDepth, null, 0, 10000), - 'maxPages': toInt(config.maxPages, 1000, 1, 1000000), + 'maxPages': toInt(config.maxPages, 5000, 1, 1000000), 'maxRedirects': toInt(config.maxRedirects, 10, 0, 50), + 'onPageLimit': typeof config.onPageLimit === 'function' ? config.onPageLimit : null, 'onProgress': typeof config.onProgress === 'function' ? config.onProgress : null, 'onResult': typeof config.onResult === 'function' ? config.onResult : null, // CLI: print the URL list even when reports are saved. diff --git a/node_modules/check-http-status/lib/checker.js b/node_modules/check-http-status/lib/checker.js index 4ba23e5..2ac8b94 100644 --- a/node_modules/check-http-status/lib/checker.js +++ b/node_modules/check-http-status/lib/checker.js @@ -52,6 +52,7 @@ class Checker { this.include = compilePatterns(config.include); this.exclude = compilePatterns(config.exclude); this.crawlMode = config.crawl.length > 0; + this.initialMaxPages = config.maxPages; // In list mode "internal" means the hosts of the URLs the user supplied. this.rootHosts = new Set((this.crawlMode ? config.crawl : config.urls).map((url) => stripWww(new URL(url).host))); @@ -63,6 +64,7 @@ class Checker { this.pagesCrawled = 0; this.checked = 0; this.stopped = false; + this.askingPageLimit = false; this.state = 'idle'; this.startedAt = null; this.finishedAt = null; @@ -188,7 +190,8 @@ class Checker { return { depth, 'scope': 'crawl' }; } - discover(raw, { from = null, fromUrl = null, kind = 'link', anchor = '', base, isAsset = false, seed = null } = {}) { + discover(raw, { from = null, fromUrl = null, kind = 'link', anchor = '', base, assetType = '', image = null, seed = null } = {}) { + const isAsset = !!assetType; const url = this.normalize(raw, base || (from && from.url) || undefined); if (!url) { return; @@ -204,13 +207,17 @@ class Checker { } record = { + 'assetType': assetType, 'contentType': '', 'crawled': false, 'depth': depth, 'error': '', + 'h1': '', + 'h1Count': 0, 'internal': this.isInternal(url), 'isStart': seed === 'crawl', 'linkType': isAsset ? 'asset' : 'page', + 'metaDescription': '', 'note': '', 'queued': false, 'redirectHops': kind === 'redirect' ? from.redirectHops + 1 : 0, @@ -247,6 +254,18 @@ class Checker { if (anchor) { source.anchors.add(anchor); } + + if (image) { + source.alt = source.alt || new Set(); + source.imageTitle = source.imageTitle || new Set(); + source.missingAlt = (source.missingAlt || 0) + (image.alt === null ? 1 : 0); + if (image.alt) { + source.alt.add(image.alt); + } + if (image.title) { + source.imageTitle.add(image.title); + } + } } } @@ -306,11 +325,67 @@ class Checker { return; } - if (this.stopped || (this.pageQueue.length === 0 && this.checkQueue.length === 0)) { - this.state = this.stopped ? 'stopped' : 'done'; - this.finishedAt = Date.now(); - this.resolveDone(); + if (this.stopped) { + this.finish(); + } else if (this.pageQueue.length === 0 && this.checkQueue.length === 0 && !this.askingPageLimit) { + if (this.config.onPageLimit && this.waitingPages() > 0) { + this.askPageLimit(); + } else { + this.finish(); + } + } + } + + finish() { + this.askingPageLimit = false; + this.state = this.stopped ? 'stopped' : 'done'; + this.finishedAt = Date.now(); + this.resolveDone(); + } + + waitingPages() { + let count = 0; + for (const record of this.records.values()) { + if (record.scope === 'limit') { + count++; + } } + + return count; + } + + // `true`: `maxPages` more, a number: that many more, `Infinity`: all. + askPageLimit() { + this.askingPageLimit = true; + const progress = { ...this.progress(), 'waitingPages': this.waitingPages() }; + + Promise.resolve() + .then(() => this.config.onPageLimit(progress)) + .then((answer) => answer, () => false) + .then((answer) => { + if (this.state !== 'running') { + return; + } + + this.askingPageLimit = false; + const more = answer === true ? this.initialMaxPages : Number(answer); + if (this.stopped || !answer || !(more > 0)) { + this.finish(); + return; + } + + this.config.maxPages += more; + for (const record of this.records.values()) { + if (record.scope === 'limit' && this.crawlQueued < this.config.maxPages) { + record.scope = 'crawl'; + this.crawlQueued++; + this.enqueue(record); + } + } + + this.pump(); + this.maybeFinish(); + }); } async process(record) { @@ -376,8 +451,8 @@ class Checker { this.discover(target.href, { 'anchor': '(redirect)', + 'assetType': record.assetType, 'from': record, - 'isAsset': record.linkType === 'asset', 'kind': 'redirect' }); return; @@ -392,7 +467,12 @@ class Checker { extractLinks(record, html) { const $ = cheerio.load(html); - record.title = $('title').first().text().replace(/\s+/g, ' ').trim().slice(0, 300); + const text = (node) => node.text().replace(/\s+/g, ' ').trim().slice(0, 300); + record.title = text($('title').first()); + record.h1 = text($('h1').first()); + record.h1Count = $('h1').length; + record.metaDescription = ($('meta[name]').filter((_, el) => $(el).attr('name').toLowerCase() === 'description').first().attr('content') || '') + .replace(/\s+/g, ' ').trim().slice(0, 500); let base = record.url; const baseHref = $('base[href]').attr('href'); @@ -431,11 +511,19 @@ class Checker { for (const [selector, attr, label] of assets) { $(selector).each((_, el) => { - this.discover($(el).attr(attr), { + const $el = $(el); + // `alt=""` marks a decorative image; only a missing attribute counts as missing. + const image = label === 'image' ? { + 'alt': $el.attr('alt') === undefined ? null : $el.attr('alt').replace(/\s+/g, ' ').trim().slice(0, 300), + 'title': ($el.attr('title') || '').replace(/\s+/g, ' ').trim().slice(0, 300) + } : null; + + this.discover($el.attr(attr), { 'anchor': `(${label})`, + 'assetType': label, 'base': base, 'from': record, - 'isAsset': true + image }); }); } @@ -515,15 +603,27 @@ class Checker { toResult(record) { const { chain, loop } = record.redirectTo ? this.redirectChain(record) : { 'chain': [], 'loop': false }; const final = chain[chain.length - 1]; - const foundOn = [...record.sources].map(([page, source]) => ({ - 'anchors': [...source.anchors], - 'count': source.count, - 'kind': source.kind, - 'page': page - })); + const foundOn = [...record.sources].map(([page, source]) => { + const entry = { + 'anchors': [...source.anchors], + 'count': source.count, + 'kind': source.kind, + 'page': page + }; + if (source.alt) { + entry.alt = [...source.alt]; + entry.imageTitle = [...source.imageTitle]; + entry.missingAlt = source.missingAlt; + } + + return entry; + }); + const unique = (key) => [...new Set(foundOn.flatMap((source) => source[key] || []))]; const inSitemap = foundOn.some((source) => source.kind === 'sitemap'); return { + 'alt': unique('alt'), + 'assetType': record.assetType, 'botProtection': record.botProtection || '', 'category': categorize(record), 'contentType': record.contentType, @@ -533,8 +633,13 @@ class Checker { 'finalStatus': final ? final.status : null, 'finalUrl': final ? final.url : '', 'foundOn': foundOn, + 'h1': record.h1, + 'h1Count': record.h1Count, + 'imageTitle': unique('imageTitle'), 'inSitemap': inSitemap, 'linkType': record.linkType, + 'metaDescription': record.metaDescription, + 'missingAlt': foundOn.some((source) => source.missingAlt > 0), 'note': loop ? 'Redirect loop' : record.note, 'orphan': this.crawlMode && inSitemap && !record.isStart && !this.isLinked(record), 'redirectChain': chain, diff --git a/node_modules/check-http-status/lib/report/csv.js b/node_modules/check-http-status/lib/report/csv.js index e8f902d..a3388fa 100644 --- a/node_modules/check-http-status/lib/report/csv.js +++ b/node_modules/check-http-status/lib/report/csv.js @@ -11,11 +11,18 @@ const COLUMNS = [ ['category', 'Category'], ['type', 'Type'], ['linkType', 'Link Type'], + ['assetType', 'Asset Type'], ['scope', 'Crawl'], ['redirectCount', '# Redirects'], ['finalUrl', 'Final URL'], ['finalStatus', 'Final Status'], ['title', 'Title'], + ['h1', 'H1'], + ['h1Count', '# H1'], + ['metaDescription', 'Meta Description'], + ['alt', 'Alt Text'], + ['imageTitle', 'Image Title'], + ['missingAlt', 'Missing Alt'], ['contentType', 'Content Type'], ['depth', 'Depth'], ['responseTime', 'Response (ms)'], diff --git a/node_modules/check-http-status/lib/report/excel.js b/node_modules/check-http-status/lib/report/excel.js index 861ac6d..ef7ea1d 100644 --- a/node_modules/check-http-status/lib/report/excel.js +++ b/node_modules/check-http-status/lib/report/excel.js @@ -31,11 +31,18 @@ const URL_COLUMNS = [ CATEGORY, { 'header': 'Type', 'key': 'type', 'width': 10 }, { 'header': 'Link Type', 'key': 'linkType', 'width': 10 }, + { 'header': 'Asset Type', 'key': 'assetType', 'width': 11 }, { 'header': 'Crawl', 'key': 'scope', 'width': 22 }, { 'header': '# Redirects', 'key': 'redirectCount', 'width': 11 }, FINAL_URL, FINAL_STATUS, { 'header': 'Title', 'key': 'title', 'width': 40 }, + { 'header': 'H1', 'key': 'h1', 'width': 40 }, + { 'header': '# H1', 'key': 'h1Count', 'width': 6 }, + { 'header': 'Meta Description', 'key': 'metaDescription', 'width': 60 }, + { 'header': 'Alt Text', 'key': 'alt', 'width': 40 }, + { 'header': 'Image Title', 'key': 'imageTitle', 'width': 30 }, + { 'header': 'Missing Alt', 'key': 'missingAlt', 'width': 11 }, { 'header': 'Content Type', 'key': 'contentType', 'width': 20 }, { 'header': 'Depth', 'key': 'depth', 'width': 7 }, { 'header': 'Response (ms)', 'key': 'responseTime', 'width': 13 }, diff --git a/node_modules/check-http-status/lib/report/rows.js b/node_modules/check-http-status/lib/report/rows.js index b566ac1..cd4839a 100644 --- a/node_modules/check-http-status/lib/report/rows.js +++ b/node_modules/check-http-status/lib/report/rows.js @@ -44,8 +44,13 @@ function finalUrlLabel(result) { const byTypeThenUrl = (a, b) => (a.type === b.type ? 0 : a.type === 'internal' ? -1 : 1) || a.url.localeCompare(b.url); const byIssueThenUrl = (a, b) => ISSUE_ORDER.indexOf(a.category) - ISSUE_ORDER.indexOf(b.category) || a.url.localeCompare(b.url); +// Older reports have no SEO fields. +const list = (values) => (values || []).join(' | '); + function toRow(result) { return { + 'alt': list(result.alt), + 'assetType': result.assetType || '', 'category': result.category, 'contentType': result.contentType, 'depth': result.depth, @@ -53,8 +58,13 @@ function toRow(result) { 'finalUrl': finalUrlLabel(result), 'foundOn': foundOnLabel(result), 'foundOnCount': result.foundOn.length, + 'h1': result.h1 || '', + 'h1Count': result.crawled ? result.h1Count || 0 : '', + 'imageTitle': list(result.imageTitle), 'inSitemap': result.inSitemap ? 'Yes' : '', 'linkType': result.linkType, + 'metaDescription': result.metaDescription || '', + 'missingAlt': result.missingAlt ? 'Yes' : '', 'orphan': result.orphan ? 'Yes' : '', 'redirectCount': result.redirectCount || '', 'redirectTo': result.redirectTo, diff --git a/node_modules/check-http-status/lib/report/template.html b/node_modules/check-http-status/lib/report/template.html index 8555c1d..e0540e4 100644 --- a/node_modules/check-http-status/lib/report/template.html +++ b/node_modules/check-http-status/lib/report/template.html @@ -60,6 +60,7 @@ .anchor { color: var(--muted); } .pager { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 10px; color: var(--muted); } .empty { text-align: center; color: var(--muted); padding: 30px; } + .empty button { margin-top: 8px; } footer { color: var(--muted); font-size: 12px; text-align: center; margin-top: 24px; } </style> </head> @@ -72,7 +73,7 @@ <h1 id="title">HTTP status report</h1> <section class="card"> <div class="toolbar"> - <input id="search" type="search" placeholder="Filter by URL, link text or page…" aria-label="Filter results"> + <input id="search" type="search" placeholder="Search URL, title, H1, link or alt text…" aria-label="Filter results"> <div> <button type="button" id="csvBtn">Download CSV (current view)</button> <button type="button" id="jsonBtn">Download JSON</button> @@ -126,11 +127,48 @@ <h1 id="title">HTTP status report</h1> ['external', 'External', function (r) { return r.type === 'external'; }], ['excluded', 'Excluded', function (r) { return r.scope === 'excluded'; }], ['asset', 'Assets', function (r) { return r.linkType === 'asset'; }], + ['image', 'Images', function (r) { return assetType(r) === 'image'; }], + ['script', 'Scripts', function (r) { return assetType(r) === 'script'; }], + ['stylesheet', 'Stylesheets', function (r) { return assetType(r) === 'stylesheet'; }], + ['noTitle', 'Missing title', function (r) { return isPage(r) && !r.title; }], + ['noH1', 'Missing H1', function (r) { return isPage(r) && r.h1Count === 0; }], + ['multiH1', 'Multiple H1', function (r) { return isPage(r) && r.h1Count > 1; }], + ['noDescription', 'Missing meta description', function (r) { return isPage(r) && r.h1Count !== undefined && !r.metaDescription; }], + ['noAlt', 'Missing alt text', function (r) { return r.missingAlt; }], ['orphan', 'Orphan pages', function (r) { return r.orphan; }], ['robots', 'Blocked by robots.txt', function (r) { return r.scope === 'robots'; }], ['notchecked', 'Not checked', function (r) { return r.category === 'Not checked'; }] ]; var PAGE_SIZE = 100; + + function isPage(r) { return r.crawled && r.linkType === 'page' && r.category === 'OK'; } + // Reports from before 2.2 have no assetType; the link text says "(image)". + function assetType(r) { + if (r.linkType !== 'asset') return ''; + if (r.assetType) return r.assetType; + for (var i = 0; i < r.foundOn.length; i++) { + var m = r.foundOn[i].anchors.join(' ').match(/\((image|script|stylesheet|icon|media|iframe)\)/); + if (m) return m[1]; + } + return ''; + } + + // The text a search looks in. Pages a URL was found on are left out: they would match every link on a page. + function matches(r, q) { + if (!q) return true; + var fields = [r.url, r.redirectTo, r.finalUrl, r.title, r.h1].concat(r.alt || [], r.imageTitle || []); + for (var i = 0; i < fields.length; i++) { + if (fields[i] && String(fields[i]).toLowerCase().indexOf(q) !== -1) return true; + } + return r.foundOn.some(function (s) { + return s.anchors.some(function (a) { return a.toLowerCase().indexOf(q) !== -1; }); + }); + } + + function searched() { + var q = state.query.toLowerCase(); + return q ? results.filter(function (r) { return matches(r, q); }) : results; + } var state = { filter: countOf('issues') ? 'issues' : 'all', query: '', page: 0, sort: null, dir: 1 }; var expanded = {}; @@ -162,21 +200,12 @@ <h1 id="title">HTTP status report</h1> ]; if (summary.orphans) tiles.push(['warn', 'orphan', summary.orphans, 'Orphan pages']); $('stats').innerHTML = tiles.map(function (t) { - return '<button type="button" class="stat ' + t[0] + '" data-filter="' + esc(t[1]) + '"><b>' + t[2].toLocaleString() + '</b><span>' + esc(t[3]) + '</span></button>'; + return '<button type="button" class="stat ' + t[0] + '" data-filter="' + esc(t[1]) + '"><b>' + esc(t[2].toLocaleString()) + '</b><span>' + esc(t[3]) + '</span></button>'; }).join(''); function filtered() { var fn = FILTERS.filter(function (f) { return f[0] === state.filter; })[0][2]; - var q = state.query.toLowerCase(); - var rows = results.filter(fn); - if (q) { - rows = rows.filter(function (r) { - if (r.url.toLowerCase().indexOf(q) !== -1 || (r.redirectTo || '').toLowerCase().indexOf(q) !== -1) return true; - return r.foundOn.some(function (s) { - return s.page.toLowerCase().indexOf(q) !== -1 || s.anchors.some(function (a) { return a.toLowerCase().indexOf(q) !== -1; }); - }); - }); - } + var rows = searched().filter(fn); if (state.sort) { var val = { status: function (r) { return r.status == null ? (r.error ? 999 : 1000) : r.status; }, @@ -193,20 +222,21 @@ <h1 id="title">HTTP status report</h1> } function rowHtml(r) { - var cls = 'c-' + r.category.replace(/\s/g, ''); + var cls = esc('c-' + r.category.replace(/\s/g, '')); var label = r.error ? 'Error' : (r.status == null ? '—' : r.status); var sub = ''; if (r.botProtection) sub += '<div class="sub">' + esc(r.note) + '</div>'; if (r.redirectTo) { sub += '<div class="sub">→ ' + esc(r.redirectTo) + '</div>'; if (r.redirectCount > 1 || r.note) { - sub += '<div class="sub">⇒ ' + esc(r.finalUrl) + (r.finalStatus != null ? ' (' + r.finalStatus + ')' : '') + ' · ' + r.redirectCount + ' hops' + (r.note ? ' · ' + esc(r.note) : '') + '</div>'; + sub += '<div class="sub">⇒ ' + esc(r.finalUrl) + (r.finalStatus != null ? ' (' + esc(r.finalStatus) + ')' : '') + ' · ' + esc(r.redirectCount) + ' hops' + (r.note ? ' · ' + esc(r.note) : '') + '</div>'; } } if (r.error) sub += '<div class="sub">' + esc(r.error) + '</div>'; var tags = '<span class="tag">' + esc(r.type) + '</span><span class="tag">' + esc(SCOPES[r.scope] || r.scope) + '</span>'; - if (r.linkType === 'asset') tags += '<span class="tag">asset</span>'; + if (r.linkType === 'asset') tags += '<span class="tag">' + esc(assetType(r) || 'asset') + '</span>'; + if (r.missingAlt) tags += '<span class="tag">no alt</span>'; if (r.inSitemap) tags += '<span class="tag">sitemap</span>'; if (r.orphan) tags += '<span class="tag">orphan</span>'; @@ -215,34 +245,40 @@ <h1 id="title">HTTP status report</h1> '<td><span class="pill ' + cls + '" title="' + esc(r.error || (r.status + ' ' + r.statusText)) + '">' + esc(label) + '</span><div class="sub">' + esc(r.category === 'Not checked' ? 'not checked' : r.category) + '</div></td>' + '<td class="url"><a href="' + esc(r.url) + '" target="_blank" rel="noopener noreferrer">' + esc(r.url) + '</a>' + sub + '</td>' + '<td>' + tags + '</td>' + - '<td>' + (r.foundOn.length ? (open ? '▾ ' : '▸ ') + r.foundOn.length + ' page' + (r.foundOn.length > 1 ? 's' : '') : '<span class="tag">start</span>') + '</td></tr>'; + '<td>' + (r.foundOn.length ? (open ? '▾ ' : '▸ ') + esc(r.foundOn.length) + ' page' + (r.foundOn.length > 1 ? 's' : '') : '<span class="tag">start</span>') + '</td></tr>'; if (open) { var detail = ''; if (r.redirectChain.length) { - detail += '<h4>Redirect chain</h4><ul><li>' + esc(r.url) + ' (' + r.status + ')</li>' + r.redirectChain.map(function (h) { - return '<li>→ ' + esc(h.url) + ' (' + (h.status == null ? '?' : h.status) + ')</li>'; + detail += '<h4>Redirect chain</h4><ul><li>' + esc(r.url) + ' (' + esc(r.status) + ')</li>' + r.redirectChain.map(function (h) { + return '<li>→ ' + esc(h.url) + ' (' + (h.status == null ? '?' : esc(h.status)) + ')</li>'; }).join('') + '</ul>'; } if (r.foundOn.length) { detail += '<h4>Found on</h4><ul>' + r.foundOn.map(function (s) { var via = s.kind === 'redirect' ? ' <span class="tag">redirect</span>' : s.kind === 'sitemap' ? ' <span class="tag">sitemap</span>' : ''; var anchors = s.anchors.filter(function (a) { return a.charAt(0) !== '('; }); + var alt = s.alt ? (s.alt.length ? ' <span class="anchor">— alt “' + esc(s.alt.join('”, “')) + '”</span>' : '') + (s.missingAlt ? ' <span class="tag">no alt</span>' : '') : ''; return '<li><a href="' + esc(s.page) + '" target="_blank" rel="noopener noreferrer">' + esc(s.page) + '</a>' + via + - (anchors.length ? ' <span class="anchor">— “' + esc(anchors.join('”, “')) + '”</span>' : '') + - (s.count > 1 ? ' <span class="tag">×' + s.count + '</span>' : '') + '</li>'; + (anchors.length ? ' <span class="anchor">— “' + esc(anchors.join('”, “')) + '”</span>' : '') + alt + + (s.count > 1 ? ' <span class="tag">×' + esc(s.count) + '</span>' : '') + '</li>'; }).join('') + '</ul>'; } if (r.title) detail += '<div class="sub">Title: ' + esc(r.title) + '</div>'; - if (r.responseTime != null) detail += '<div class="sub">Response: ' + r.responseTime + ' ms' + (r.contentType ? ' · ' + esc(r.contentType) : '') + '</div>'; + if (r.h1) detail += '<div class="sub">H1: ' + esc(r.h1) + (r.h1Count > 1 ? ' (' + esc(r.h1Count) + ' H1s)' : '') + '</div>'; + if (r.metaDescription) detail += '<div class="sub">Meta description: ' + esc(r.metaDescription) + '</div>'; + if (r.alt && r.alt.length) detail += '<div class="sub">Alt text: “' + esc(r.alt.join('”, “')) + '”</div>'; + if (r.imageTitle && r.imageTitle.length) detail += '<div class="sub">Image title: “' + esc(r.imageTitle.join('”, “')) + '”</div>'; + if (r.responseTime != null) detail += '<div class="sub">Response: ' + esc(r.responseTime) + ' ms' + (r.contentType ? ' · ' + esc(r.contentType) : '') + '</div>'; html += '<tr class="detail"><td></td><td colspan="3">' + detail + '</td></tr>'; } return html; } function render() { + var pool = searched(); $('chips').innerHTML = FILTERS.map(function (f) { - var n = results.filter(f[2]).length; + var n = pool.filter(f[2]).length; if (!n && ['all', 'issues', state.filter].indexOf(f[0]) === -1) return ''; return '<button type="button" class="chip' + (f[0] === state.filter ? ' active' : '') + '" data-filter="' + esc(f[0]) + '">' + esc(f[1]) + '<small>' + n.toLocaleString() + '</small></button>'; }).join(''); @@ -252,7 +288,12 @@ <h1 id="title">HTTP status report</h1> if (state.page >= pages) state.page = pages - 1; var slice = rows.slice(state.page * PAGE_SIZE, (state.page + 1) * PAGE_SIZE); - $('tbody').innerHTML = slice.length ? slice.map(rowHtml).join('') : '<tr><td colspan="4" class="empty">No URLs match this filter.</td></tr>'; + var empty = 'No URLs match this filter.'; + // The search found URLs, just not under the selected filter. + if (state.query && state.filter !== 'all' && pool.length) { + empty = 'No matches in this filter.<br><button type="button" data-filter="all">Show all ' + pool.length.toLocaleString() + ' match' + (pool.length === 1 ? '' : 'es') + '</button>'; + } + $('tbody').innerHTML = slice.length ? slice.map(rowHtml).join('') : '<tr><td colspan="4" class="empty">' + empty + '</td></tr>'; $('pager').innerHTML = rows.length > PAGE_SIZE ? '<button type="button" data-page="-1"' + (state.page === 0 ? ' disabled' : '') + '>‹ Prev</button><span>Page ' + (state.page + 1) + ' of ' + pages + ' · ' + rows.length.toLocaleString() + ' URLs</span><button type="button" data-page="1"' + (state.page >= pages - 1 ? ' disabled' : '') + '>Next ›</button>' : '<span>' + rows.length.toLocaleString() + ' URLs</span>'; @@ -273,10 +314,10 @@ <h1 id="title">HTTP status report</h1> } $('csvBtn').addEventListener('click', function () { - var lines = [['URL', 'Found On', 'Redirect To', 'Status', 'Category', 'Type', 'Final URL', 'Final Status'].join(',')]; + var lines = [['URL', 'Found On', 'Redirect To', 'Status', 'Category', 'Type', 'Final URL', 'Final Status', 'Title', 'H1', 'Meta Description', 'Alt Text'].join(',')]; filtered().forEach(function (r) { var foundOn = r.foundOn.map(function (s) { return s.page; }).join('\n'); - lines.push([r.url, foundOn, r.redirectTo, r.error || r.status, r.category, r.type, r.finalUrl, r.finalStatus].map(csvCell).join(',')); + lines.push([r.url, foundOn, r.redirectTo, r.error || r.status, r.category, r.type, r.finalUrl, r.finalStatus, r.title, r.h1, r.metaDescription, (r.alt || []).join(' | ')].map(csvCell).join(',')); }); download('http-status-report.csv', 'text/csv', '\ufeff' + lines.join('\r\n')); }); @@ -301,6 +342,7 @@ <h1 id="title">HTTP status report</h1> render(); }); $('tbody').addEventListener('click', function (e) { + if (e.target.closest('[data-filter]')) return setFilter(e); if (e.target.closest('a')) return; var tr = e.target.closest('tr.row'); if (!tr) return; diff --git a/node_modules/check-http-status/package.json b/node_modules/check-http-status/package.json index 14741fa..58dea81 100644 --- a/node_modules/check-http-status/package.json +++ b/node_modules/check-http-status/package.json @@ -1,7 +1,7 @@ { "name": "check-http-status", "description": "Crawl a website or check a list of URLs: HTTP status codes, redirect chains, broken links and the pages they were found on. Export to Excel, CSV, JSON or an HTML report.", - "version": "2.0.0", + "version": "2.2.0", "main": "index.js", "types": "index.d.ts", "bin": { diff --git a/node_modules/check-http-status/schema.json b/node_modules/check-http-status/schema.json index 28822e4..967522d 100644 --- a/node_modules/check-http-status/schema.json +++ b/node_modules/check-http-status/schema.json @@ -29,7 +29,7 @@ "sitemaps": { "$ref": "#/definitions/stringList", "description": "Optional sitemap / sitemap index URLs." }, "include": { "$ref": "#/definitions/stringList", "description": "Only crawl URLs matching one of these rules (substring, * wildcard or /regex/)." }, "exclude": { "$ref": "#/definitions/stringList", "description": "Don't crawl URLs matching these rules. They are still listed and checked." }, - "maxPages": { "type": "integer", "minimum": 1, "default": 1000 }, + "maxPages": { "type": "integer", "minimum": 1, "default": 5000 }, "maxDepth": { "type": ["integer", "null"], "minimum": 0, "description": "Maximum link depth from the start URL. Unlimited when omitted." }, "maxRedirects": { "type": "integer", "minimum": 0, "maximum": 50, "default": 10 }, "checkExternal": { "type": "boolean", "default": true, "description": "Check the status of external links. Excluded pages and assets are always checked." }, diff --git a/package-lock.json b/package-lock.json index a6df2f7..804ae70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "check-http-status-action", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "check-http-status-action", - "version": "2.0.0", + "version": "2.1.0", "license": "MIT", "dependencies": { "@actions/core": "^3.0.1", - "check-http-status": "^2.0.0" + "check-http-status": "^2.2.0" }, "engines": { "node": ">=20" @@ -305,9 +305,9 @@ } }, "node_modules/check-http-status": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/check-http-status/-/check-http-status-2.0.0.tgz", - "integrity": "sha512-Ab4YX68Yn3YM5ETSB3oACO95LQXF5lD5MLpOUmQzp551jRSntsz5E3uUzy1/4nsQAskgko4J3+M10jndnh/UPw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/check-http-status/-/check-http-status-2.2.0.tgz", + "integrity": "sha512-Ighl/AlQO7LrP8ycqBO4dGnkFfxiFX2JfdCZ59svdHnC9DCfW54Z+NJpR9f5hzaxoj51M6sYwfyhtwkfIlq35g==", "license": "MIT", "dependencies": { "cheerio": "^1.0.0", @@ -1587,9 +1587,9 @@ } }, "check-http-status": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/check-http-status/-/check-http-status-2.0.0.tgz", - "integrity": "sha512-Ab4YX68Yn3YM5ETSB3oACO95LQXF5lD5MLpOUmQzp551jRSntsz5E3uUzy1/4nsQAskgko4J3+M10jndnh/UPw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/check-http-status/-/check-http-status-2.2.0.tgz", + "integrity": "sha512-Ighl/AlQO7LrP8ycqBO4dGnkFfxiFX2JfdCZ59svdHnC9DCfW54Z+NJpR9f5hzaxoj51M6sYwfyhtwkfIlq35g==", "requires": { "cheerio": "^1.0.0", "exceljs": "^4.4.0" diff --git a/package.json b/package.json index 4029190..56b4fab 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "check-http-status-action", "description": "Crawl a website or check a list of URLs for HTTP status codes, redirects and broken links in a GitHub Action.", - "version": "2.0.0", + "version": "2.1.0", "type": "module", "main": "index.js", "engines": { @@ -33,6 +33,6 @@ "homepage": "https://github.com/trunkcode/check-http-status-action", "dependencies": { "@actions/core": "^3.0.1", - "check-http-status": "^2.0.0" + "check-http-status": "^2.2.0" } } From 288b5b8f23dca328d7993b1c4398fce279a3b0e4 Mon Sep 17 00:00:00 2001 From: Sami Ahmed Siddiqui <sami.siddiqui@yasglobal.com> Date: Tue, 20 Oct 2026 12:04:15 +0500 Subject: [PATCH 2/4] Add repo docs, CI and Dependabot --- .editorconfig | 10 +++++ .gitattributes | 8 ++++ .github/CODEOWNERS | 1 + .github/ISSUE_TEMPLATE/bug_report.yml | 31 +++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 ++++ .github/ISSUE_TEMPLATE/feature_request.yml | 15 ++++++++ .github/dependabot.yml | 15 ++++++++ .github/pull_request_template.md | 9 +++++ .github/workflows/ci.yml | 44 ++++++++++++++++++++++ .github/workflows/codeql.yml | 24 ++++++++++++ CHANGELOG.md | 27 +++++++++++++ CONTRIBUTING.md | 31 +++++++++++++++ README.md | 42 ++++++++++++++++++++- SECURITY.md | 26 +++++++++++++ 14 files changed, 290 insertions(+), 1 deletion(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..af4245f --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +quote_type = single +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a1d15aa --- /dev/null +++ b/.gitattributes @@ -0,0 +1,8 @@ +* text=auto +*.js text eol=lf + +# Vendored as published; don't convert line endings. +node_modules/** -text + +# Keep dot files out of `git archive`. +.* export-ignore diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..7d55496 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @samiahmedsiddiqui diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..3dcf5e2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,31 @@ +name: Bug report +description: Something doesn't work as documented +labels: [bug] +body: + - type: textarea + id: what + attributes: + label: What happened? + description: What did you expect instead? + validations: + required: true + - type: textarea + id: workflow + attributes: + label: Workflow + description: The step that uses the action, and a public URL that shows the problem if you can share one. + render: yaml + validations: + required: true + - type: input + id: version + attributes: + label: Action version + placeholder: "v2.1.0" + validations: + required: true + - type: input + id: event + attributes: + label: Trigger + placeholder: "push, pull_request, deployment_status (Netlify)…" diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..a7f9106 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: Report a security vulnerability + url: https://github.com/trunkcode/check-http-status-action/security/advisories/new + about: Please report security problems privately, not as a public issue. + - name: Crawler bugs and features + url: https://github.com/trunkcode/check-http-status/issues + about: Problems with crawling or reports themselves belong to check-http-status. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..0a51ae0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,15 @@ +name: Feature request +description: Suggest an idea or improvement +labels: [enhancement] +body: + - type: textarea + id: problem + attributes: + label: What are you trying to do? + description: The problem or use case, not just the solution. + validations: + required: true + - type: textarea + id: solution + attributes: + label: How could it work? diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..c79c4c5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: + # Dependabot doesn't update the committed node_modules: run `npm ci` on the PR + # branch and commit it. + - package-ecosystem: npm + directory: / + schedule: + interval: weekly + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + groups: + actions: + patterns: ["*"] diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..15888d0 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,9 @@ +## What and why + +<!-- What does this change, and what problem does it solve? Link the issue if there is one. --> + +## Checklist + +- [ ] `node_modules` committed if dependencies changed +- [ ] `action.yml` and README updated if inputs or outputs changed +- [ ] `CHANGELOG.md` updated diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..28a9eb2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,44 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +permissions: + contents: read + +jobs: + node-modules: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + - run: npm ci --ignore-scripts + - name: node_modules matches package-lock.json + run: git diff --exit-code --stat -- node_modules + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - id: urls + uses: ./ + with: + urls: | + https://example.com/ + https://example.com/missing-page + - id: crawl + uses: ./ + with: + base-url: https://example.com/ + max-pages: 5 + export: reports/report.html + - name: Check outputs + run: | + test "${{ steps.urls.outputs.checked }}" = 2 + test "${{ steps.urls.outputs.broken }}" = 1 + test "${{ steps.crawl.outputs.checked }}" -gt 0 + test -f reports/report.html diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..df93de9 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,24 @@ +name: CodeQL + +on: + push: + branches: [main] + pull_request: + schedule: + - cron: '23 4 * * 1' + +permissions: + contents: read + +jobs: + analyze: + name: Analyze (javascript-typescript) + runs-on: ubuntu-latest + permissions: + security-events: write + steps: + - uses: actions/checkout@v4 + - uses: github/codeql-action/init@v4 + with: + languages: javascript-typescript + - uses: github/codeql-action/analyze@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8aa63d5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,27 @@ +# check-http-status-action changelog + +## 2.1.0 - Oct 20, 2026 + +### Changed + +- check-http-status 2.2.0: reports include H1, meta description and image alt text +- `max-pages` now defaults to 5000 instead of 1000 + +## 2.0.0 - Oct 2, 2026 + +### New + +- Crawl a website (`crawl`), with `include` / `exclude` rules +- Deploy previews: `deployment_status` events, `base-url` and `wait` +- `fail`, `export`, `config`, `auth`, `headers` and crawl/request inputs +- `checked`, `issues`, `broken` and `reports` outputs +- Job summary of the issues found + +### Changed + +- Runs on Node.js 24 +- `sitemap` and `urls` can be used together + +## 1.0.0 - May 21, 2021 + +- First release diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..b58b6ae --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing + +Thanks for helping out! Bug reports, ideas and pull requests are all welcome. + +## Development + +`node_modules` is committed, because GitHub runs the action straight from the repo. +After changing dependencies, commit `node_modules` too: + +```bash +npm ci +``` + +To run the action locally, pass inputs as `INPUT_<NAME>` environment variables: + +```bash +env INPUT_URLS=https://example.com/ node index.js +``` + +## Pull requests + +- Keep each pull request to one change. +- Update `action.yml` and the README when inputs or outputs change, and add a line to + `CHANGELOG.md`. +- CI runs the action and checks that `node_modules` matches `package-lock.json`; both + must pass before merging. +- Commits to `main` must be signed. + +## Security + +Please report vulnerabilities privately; see [SECURITY.md](SECURITY.md). diff --git a/README.md b/README.md index 7f1ce5a..95d2faa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,19 @@ # Check HTTP Status action -Crawl a website or check a list of URLs for HTTP status codes, redirects and broken links. Reports also include H1, meta description and image alt text. Powered by [check-http-status](https://github.com/trunkcode/check-http-status) v2. +[![Release][release-image]][release-url] +[![Marketplace][marketplace-image]][marketplace-url] +[![CI][ci-image]][ci-url] + +Crawl a website or check a list of URLs for HTTP status codes, redirects and broken links, along with **the pages each broken link was found on**. Powered by [check-http-status](https://github.com/trunkcode/check-http-status). + +**[Live demo report →](https://trunkcode.github.io/check-http-status/)** + +## Features + +- **Crawl a website** or check a list of URLs and sitemaps. +- **Deploy previews:** checks the Netlify, Vercel, Heroku or Render preview URL automatically. +- **Job summary** of the issues on every run, and `fail` to block a PR on broken links. +- **Reports:** Excel, CSV, JSON or an interactive HTML report, with H1, meta description and image alt text. ## Inputs @@ -124,8 +137,35 @@ For protected previews, use `auth` (Netlify password protection) or `headers` (e config: check-http-status.config.json ``` +### Use the outputs + +```yml +- id: links + uses: trunkcode/check-http-status-action@v2 + with: + crawl: https://www.example.com/ +- run: echo "${{ steps.links.outputs.broken }} broken of ${{ steps.links.outputs.checked }}" +``` + ## Upgrading from v1 - v1 inputs still work, including JSON arrays. - `sitemap` and `urls` can now be used together. - Runs on Node.js 24. + +See the [changelog](CHANGELOG.md) for all changes. + +## Contributing + +Bug reports and pull requests are welcome; see [CONTRIBUTING.md](CONTRIBUTING.md). Please report security problems privately ([SECURITY.md](SECURITY.md)). + +## License + +MIT + +[release-image]: https://img.shields.io/github/v/release/trunkcode/check-http-status-action +[release-url]: https://github.com/trunkcode/check-http-status-action/releases +[marketplace-image]: https://img.shields.io/badge/marketplace-check--http--status-blue?logo=github +[marketplace-url]: https://github.com/marketplace/actions/check-http-status +[ci-image]: https://github.com/trunkcode/check-http-status-action/actions/workflows/ci.yml/badge.svg +[ci-url]: https://github.com/trunkcode/check-http-status-action/actions/workflows/ci.yml diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..80484b9 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,26 @@ +# Security policy + +## Supported versions + +Security fixes are released for the latest 2.x version (`@v2`). Please upgrade before +reporting a problem in an older version. + +## Reporting a vulnerability + +Please **don't open a public issue**. Report it privately through +[GitHub security advisories](https://github.com/trunkcode/check-http-status-action/security/advisories/new) +instead. + +Include the version, the workflow that shows the problem and what an attacker could do +with it. You'll get a reply within a week. Once a fix is released, the advisory is +published and you're credited unless you'd rather not be. + +## Scope + +The action sends requests to the URLs you give it and to the links it finds on those +pages. Things worth reporting include `auth` credentials being sent to the wrong host, +secrets showing up unmasked in logs, and crawled content being able to inject markup +into the job summary or HTML report. + +Problems in the crawler itself belong to +[check-http-status](https://github.com/trunkcode/check-http-status/security/advisories/new). From 311fceb37c6092fa31721255e1c8877821a6108d Mon Sep 17 00:00:00 2001 From: Sami Ahmed Siddiqui <sami.siddiqui@yasglobal.com> Date: Tue, 20 Oct 2026 12:11:07 +0500 Subject: [PATCH 3/4] Add code of conduct --- CODE_OF_CONDUCT.md | 128 +++++++++++++++++++++++++++++++++++++++++++++ CONTRIBUTING.md | 3 +- 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..bb8fef8 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +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, 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 +support@trunkcode.com. +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][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b58b6ae..52f0e86 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,7 @@ # Contributing -Thanks for helping out! Bug reports, ideas and pull requests are all welcome. +Thanks for helping out! Bug reports, ideas and pull requests are all welcome. Please follow +the [code of conduct](CODE_OF_CONDUCT.md). ## Development From 5a120d1d17f39c722e5edbdcd99dd9b2b1583cf8 Mon Sep 17 00:00:00 2001 From: Sami Ahmed Siddiqui <sami.siddiqui@yasglobal.com> Date: Tue, 20 Oct 2026 12:29:50 +0500 Subject: [PATCH 4/4] Update uuid --- CHANGELOG.md | 4 + node_modules/.bin/uuid | 2 +- node_modules/.package-lock.json | 13 +- node_modules/uuid/CHANGELOG.md | 229 ----------- node_modules/uuid/CONTRIBUTING.md | 18 - node_modules/uuid/README.md | 359 +++++++++--------- node_modules/uuid/dist/bin/uuid | 2 - node_modules/uuid/dist/cjs-browser/index.d.ts | 15 + node_modules/uuid/dist/cjs-browser/index.js | 31 ++ node_modules/uuid/dist/cjs-browser/max.d.ts | 2 + node_modules/uuid/dist/cjs-browser/max.js | 3 + node_modules/uuid/dist/cjs-browser/md5.d.ts | 2 + node_modules/uuid/dist/cjs-browser/md5.js | 137 +++++++ .../uuid/dist/cjs-browser/native.d.ts | 4 + node_modules/uuid/dist/cjs-browser/native.js | 4 + node_modules/uuid/dist/cjs-browser/nil.d.ts | 2 + node_modules/uuid/dist/cjs-browser/nil.js | 3 + .../uuid/dist/cjs-browser/package.json | 1 + node_modules/uuid/dist/cjs-browser/parse.d.ts | 2 + node_modules/uuid/dist/cjs-browser/parse.js | 11 + node_modules/uuid/dist/cjs-browser/regex.d.ts | 2 + node_modules/uuid/dist/cjs-browser/regex.js | 3 + node_modules/uuid/dist/cjs-browser/rng.d.ts | 1 + node_modules/uuid/dist/cjs-browser/rng.js | 14 + node_modules/uuid/dist/cjs-browser/sha1.d.ts | 2 + node_modules/uuid/dist/cjs-browser/sha1.js | 72 ++++ .../uuid/dist/cjs-browser/stringify.d.ts | 3 + .../uuid/dist/cjs-browser/stringify.js | 39 ++ node_modules/uuid/dist/cjs-browser/types.d.ts | 21 + node_modules/uuid/dist/cjs-browser/types.js | 2 + .../uuid/dist/cjs-browser/uuid-bin.d.ts | 1 + .../uuid/dist/cjs-browser/uuid-bin.js | 72 ++++ node_modules/uuid/dist/cjs-browser/v1.d.ts | 11 + node_modules/uuid/dist/cjs-browser/v1.js | 87 +++++ .../uuid/dist/cjs-browser/v1ToV6.d.ts | 2 + node_modules/uuid/dist/cjs-browser/v1ToV6.js | 13 + node_modules/uuid/dist/cjs-browser/v3.d.ts | 9 + node_modules/uuid/dist/cjs-browser/v3.js | 14 + node_modules/uuid/dist/cjs-browser/v35.d.ts | 7 + node_modules/uuid/dist/cjs-browser/v35.js | 44 +++ node_modules/uuid/dist/cjs-browser/v4.d.ts | 4 + node_modules/uuid/dist/cjs-browser/v4.js | 29 ++ node_modules/uuid/dist/cjs-browser/v5.d.ts | 9 + node_modules/uuid/dist/cjs-browser/v5.js | 14 + node_modules/uuid/dist/cjs-browser/v6.d.ts | 4 + node_modules/uuid/dist/cjs-browser/v6.js | 22 ++ .../uuid/dist/cjs-browser/v6ToV1.d.ts | 2 + node_modules/uuid/dist/cjs-browser/v6ToV1.js | 13 + node_modules/uuid/dist/cjs-browser/v7.d.ts | 9 + node_modules/uuid/dist/cjs-browser/v7.js | 69 ++++ .../uuid/dist/cjs-browser/validate.d.ts | 2 + .../uuid/dist/cjs-browser/validate.js | 7 + .../uuid/dist/cjs-browser/version.d.ts | 2 + node_modules/uuid/dist/cjs-browser/version.js | 10 + node_modules/uuid/dist/cjs/index.d.ts | 15 + node_modules/uuid/dist/cjs/index.js | 31 ++ node_modules/uuid/dist/cjs/max.d.ts | 2 + node_modules/uuid/dist/cjs/max.js | 3 + node_modules/uuid/dist/cjs/md5.d.ts | 4 + node_modules/uuid/dist/cjs/md5.js | 13 + node_modules/uuid/dist/cjs/native.d.ts | 6 + node_modules/uuid/dist/cjs/native.js | 4 + node_modules/uuid/dist/cjs/nil.d.ts | 2 + node_modules/uuid/dist/cjs/nil.js | 3 + node_modules/uuid/dist/cjs/package.json | 1 + node_modules/uuid/dist/cjs/parse.d.ts | 2 + node_modules/uuid/dist/cjs/parse.js | 11 + node_modules/uuid/dist/cjs/regex.d.ts | 2 + node_modules/uuid/dist/cjs/regex.js | 3 + node_modules/uuid/dist/cjs/rng.d.ts | 1 + node_modules/uuid/dist/cjs/rng.js | 13 + node_modules/uuid/dist/cjs/sha1.d.ts | 4 + node_modules/uuid/dist/cjs/sha1.js | 13 + node_modules/uuid/dist/cjs/stringify.d.ts | 3 + node_modules/uuid/dist/cjs/stringify.js | 39 ++ node_modules/uuid/dist/cjs/types.d.ts | 21 + node_modules/uuid/dist/cjs/types.js | 2 + node_modules/uuid/dist/cjs/uuid-bin.d.ts | 1 + node_modules/uuid/dist/cjs/uuid-bin.js | 72 ++++ node_modules/uuid/dist/cjs/v1.d.ts | 11 + node_modules/uuid/dist/cjs/v1.js | 87 +++++ node_modules/uuid/dist/cjs/v1ToV6.d.ts | 2 + node_modules/uuid/dist/cjs/v1ToV6.js | 13 + node_modules/uuid/dist/cjs/v3.d.ts | 9 + node_modules/uuid/dist/cjs/v3.js | 14 + node_modules/uuid/dist/cjs/v35.d.ts | 7 + node_modules/uuid/dist/cjs/v35.js | 44 +++ node_modules/uuid/dist/cjs/v4.d.ts | 4 + node_modules/uuid/dist/cjs/v4.js | 29 ++ node_modules/uuid/dist/cjs/v5.d.ts | 9 + node_modules/uuid/dist/cjs/v5.js | 14 + node_modules/uuid/dist/cjs/v6.d.ts | 4 + node_modules/uuid/dist/cjs/v6.js | 22 ++ node_modules/uuid/dist/cjs/v6ToV1.d.ts | 2 + node_modules/uuid/dist/cjs/v6ToV1.js | 13 + node_modules/uuid/dist/cjs/v7.d.ts | 9 + node_modules/uuid/dist/cjs/v7.js | 69 ++++ node_modules/uuid/dist/cjs/validate.d.ts | 2 + node_modules/uuid/dist/cjs/validate.js | 7 + node_modules/uuid/dist/cjs/version.d.ts | 2 + node_modules/uuid/dist/cjs/version.js | 10 + node_modules/uuid/dist/esm-browser/index.d.ts | 15 + node_modules/uuid/dist/esm-browser/index.js | 13 +- node_modules/uuid/dist/esm-browser/max.d.ts | 2 + node_modules/uuid/dist/esm-browser/max.js | 1 + node_modules/uuid/dist/esm-browser/md5.d.ts | 2 + node_modules/uuid/dist/esm-browser/md5.js | 306 ++++++--------- .../uuid/dist/esm-browser/native.d.ts | 4 + node_modules/uuid/dist/esm-browser/native.js | 2 + node_modules/uuid/dist/esm-browser/nil.d.ts | 2 + node_modules/uuid/dist/esm-browser/nil.js | 2 +- node_modules/uuid/dist/esm-browser/parse.d.ts | 2 + node_modules/uuid/dist/esm-browser/parse.js | 38 +- node_modules/uuid/dist/esm-browser/regex.d.ts | 2 + node_modules/uuid/dist/esm-browser/regex.js | 2 +- node_modules/uuid/dist/esm-browser/rng.d.ts | 1 + node_modules/uuid/dist/esm-browser/rng.js | 24 +- node_modules/uuid/dist/esm-browser/sha1.d.ts | 2 + node_modules/uuid/dist/esm-browser/sha1.js | 150 +++----- .../uuid/dist/esm-browser/stringify.d.ts | 3 + .../uuid/dist/esm-browser/stringify.js | 59 +-- node_modules/uuid/dist/esm-browser/types.d.ts | 21 + node_modules/uuid/dist/esm-browser/types.js | 1 + .../uuid/dist/esm-browser/uuid-bin.d.ts | 1 + .../uuid/dist/esm-browser/uuid-bin.js | 70 ++++ node_modules/uuid/dist/esm-browser/v1.d.ts | 11 + node_modules/uuid/dist/esm-browser/v1.js | 168 ++++---- .../uuid/dist/esm-browser/v1ToV6.d.ts | 2 + node_modules/uuid/dist/esm-browser/v1ToV6.js | 10 + node_modules/uuid/dist/esm-browser/v3.d.ts | 9 + node_modules/uuid/dist/esm-browser/v3.js | 11 +- node_modules/uuid/dist/esm-browser/v35.d.ts | 7 + node_modules/uuid/dist/esm-browser/v35.js | 91 ++--- node_modules/uuid/dist/esm-browser/v4.d.ts | 4 + node_modules/uuid/dist/esm-browser/v4.js | 43 ++- node_modules/uuid/dist/esm-browser/v5.d.ts | 9 + node_modules/uuid/dist/esm-browser/v5.js | 11 +- node_modules/uuid/dist/esm-browser/v6.d.ts | 4 + node_modules/uuid/dist/esm-browser/v6.js | 20 + .../uuid/dist/esm-browser/v6ToV1.d.ts | 2 + node_modules/uuid/dist/esm-browser/v6ToV1.js | 10 + node_modules/uuid/dist/esm-browser/v7.d.ts | 9 + node_modules/uuid/dist/esm-browser/v7.js | 65 ++++ .../uuid/dist/esm-browser/validate.d.ts | 2 + .../uuid/dist/esm-browser/validate.js | 6 +- .../uuid/dist/esm-browser/version.d.ts | 2 + node_modules/uuid/dist/esm-browser/version.js | 13 +- node_modules/uuid/dist/esm-node/md5.js | 13 - node_modules/uuid/dist/esm-node/nil.js | 1 - node_modules/uuid/dist/esm-node/parse.js | 35 -- node_modules/uuid/dist/esm-node/regex.js | 1 - node_modules/uuid/dist/esm-node/rng.js | 12 - node_modules/uuid/dist/esm-node/sha1.js | 13 - node_modules/uuid/dist/esm-node/stringify.js | 29 -- node_modules/uuid/dist/esm-node/v1.js | 95 ----- node_modules/uuid/dist/esm-node/v3.js | 4 - node_modules/uuid/dist/esm-node/v35.js | 64 ---- node_modules/uuid/dist/esm-node/v4.js | 24 -- node_modules/uuid/dist/esm-node/v5.js | 4 - node_modules/uuid/dist/esm-node/validate.js | 7 - node_modules/uuid/dist/esm-node/version.js | 11 - node_modules/uuid/dist/esm/bin/uuid | 2 + node_modules/uuid/dist/esm/index.d.ts | 15 + .../uuid/dist/{esm-node => esm}/index.js | 13 +- node_modules/uuid/dist/esm/max.d.ts | 2 + node_modules/uuid/dist/esm/max.js | 1 + node_modules/uuid/dist/esm/md5.d.ts | 4 + node_modules/uuid/dist/esm/md5.js | 11 + node_modules/uuid/dist/esm/native.d.ts | 6 + node_modules/uuid/dist/esm/native.js | 2 + node_modules/uuid/dist/esm/nil.d.ts | 2 + node_modules/uuid/dist/esm/nil.js | 1 + node_modules/uuid/dist/esm/parse.d.ts | 2 + node_modules/uuid/dist/esm/parse.js | 9 + node_modules/uuid/dist/esm/regex.d.ts | 2 + node_modules/uuid/dist/esm/regex.js | 1 + node_modules/uuid/dist/esm/rng.d.ts | 1 + node_modules/uuid/dist/esm/rng.js | 10 + node_modules/uuid/dist/esm/sha1.d.ts | 4 + node_modules/uuid/dist/esm/sha1.js | 11 + node_modules/uuid/dist/esm/stringify.d.ts | 3 + node_modules/uuid/dist/esm/stringify.js | 35 ++ node_modules/uuid/dist/esm/types.d.ts | 21 + node_modules/uuid/dist/esm/types.js | 1 + node_modules/uuid/dist/esm/uuid-bin.d.ts | 1 + node_modules/uuid/dist/esm/uuid-bin.js | 70 ++++ node_modules/uuid/dist/esm/v1.d.ts | 11 + node_modules/uuid/dist/esm/v1.js | 83 ++++ node_modules/uuid/dist/esm/v1ToV6.d.ts | 2 + node_modules/uuid/dist/esm/v1ToV6.js | 10 + node_modules/uuid/dist/esm/v3.d.ts | 9 + node_modules/uuid/dist/esm/v3.js | 9 + node_modules/uuid/dist/esm/v35.d.ts | 7 + node_modules/uuid/dist/esm/v35.js | 39 ++ node_modules/uuid/dist/esm/v4.d.ts | 4 + node_modules/uuid/dist/esm/v4.js | 27 ++ node_modules/uuid/dist/esm/v5.d.ts | 9 + node_modules/uuid/dist/esm/v5.js | 9 + node_modules/uuid/dist/esm/v6.d.ts | 4 + node_modules/uuid/dist/esm/v6.js | 20 + node_modules/uuid/dist/esm/v6ToV1.d.ts | 2 + node_modules/uuid/dist/esm/v6ToV1.js | 10 + node_modules/uuid/dist/esm/v7.d.ts | 9 + node_modules/uuid/dist/esm/v7.js | 65 ++++ node_modules/uuid/dist/esm/validate.d.ts | 2 + node_modules/uuid/dist/esm/validate.js | 5 + node_modules/uuid/dist/esm/version.d.ts | 2 + node_modules/uuid/dist/esm/version.js | 8 + node_modules/uuid/dist/index.js | 79 ---- node_modules/uuid/dist/md5-browser.js | 223 ----------- node_modules/uuid/dist/md5.js | 23 -- node_modules/uuid/dist/nil.js | 8 - node_modules/uuid/dist/parse.js | 45 --- node_modules/uuid/dist/regex.js | 8 - node_modules/uuid/dist/rng-browser.js | 26 -- node_modules/uuid/dist/rng.js | 24 -- node_modules/uuid/dist/sha1-browser.js | 104 ----- node_modules/uuid/dist/sha1.js | 23 -- node_modules/uuid/dist/stringify.js | 39 -- node_modules/uuid/dist/umd/uuid.min.js | 1 - node_modules/uuid/dist/umd/uuidNIL.min.js | 1 - node_modules/uuid/dist/umd/uuidParse.min.js | 1 - .../uuid/dist/umd/uuidStringify.min.js | 1 - .../uuid/dist/umd/uuidValidate.min.js | 1 - node_modules/uuid/dist/umd/uuidVersion.min.js | 1 - node_modules/uuid/dist/umd/uuidv1.min.js | 1 - node_modules/uuid/dist/umd/uuidv3.min.js | 1 - node_modules/uuid/dist/umd/uuidv4.min.js | 1 - node_modules/uuid/dist/umd/uuidv5.min.js | 1 - node_modules/uuid/dist/uuid-bin.js | 85 ----- node_modules/uuid/dist/v1.js | 107 ------ node_modules/uuid/dist/v3.js | 16 - node_modules/uuid/dist/v35.js | 78 ---- node_modules/uuid/dist/v4.js | 37 -- node_modules/uuid/dist/v5.js | 16 - node_modules/uuid/dist/validate.js | 17 - node_modules/uuid/dist/version.js | 21 - node_modules/uuid/package.json | 163 ++++---- node_modules/uuid/wrapper.mjs | 10 - package-lock.json | 21 +- package.json | 3 + 241 files changed, 3034 insertions(+), 2388 deletions(-) delete mode 100644 node_modules/uuid/CHANGELOG.md delete mode 100644 node_modules/uuid/CONTRIBUTING.md delete mode 100755 node_modules/uuid/dist/bin/uuid create mode 100644 node_modules/uuid/dist/cjs-browser/index.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/index.js create mode 100644 node_modules/uuid/dist/cjs-browser/max.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/max.js create mode 100644 node_modules/uuid/dist/cjs-browser/md5.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/md5.js create mode 100644 node_modules/uuid/dist/cjs-browser/native.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/native.js create mode 100644 node_modules/uuid/dist/cjs-browser/nil.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/nil.js create mode 100644 node_modules/uuid/dist/cjs-browser/package.json create mode 100644 node_modules/uuid/dist/cjs-browser/parse.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/parse.js create mode 100644 node_modules/uuid/dist/cjs-browser/regex.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/regex.js create mode 100644 node_modules/uuid/dist/cjs-browser/rng.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/rng.js create mode 100644 node_modules/uuid/dist/cjs-browser/sha1.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/sha1.js create mode 100644 node_modules/uuid/dist/cjs-browser/stringify.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/stringify.js create mode 100644 node_modules/uuid/dist/cjs-browser/types.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/types.js create mode 100644 node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/uuid-bin.js create mode 100644 node_modules/uuid/dist/cjs-browser/v1.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v1.js create mode 100644 node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v1ToV6.js create mode 100644 node_modules/uuid/dist/cjs-browser/v3.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v3.js create mode 100644 node_modules/uuid/dist/cjs-browser/v35.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v35.js create mode 100644 node_modules/uuid/dist/cjs-browser/v4.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v4.js create mode 100644 node_modules/uuid/dist/cjs-browser/v5.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v5.js create mode 100644 node_modules/uuid/dist/cjs-browser/v6.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v6.js create mode 100644 node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v6ToV1.js create mode 100644 node_modules/uuid/dist/cjs-browser/v7.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/v7.js create mode 100644 node_modules/uuid/dist/cjs-browser/validate.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/validate.js create mode 100644 node_modules/uuid/dist/cjs-browser/version.d.ts create mode 100644 node_modules/uuid/dist/cjs-browser/version.js create mode 100644 node_modules/uuid/dist/cjs/index.d.ts create mode 100644 node_modules/uuid/dist/cjs/index.js create mode 100644 node_modules/uuid/dist/cjs/max.d.ts create mode 100644 node_modules/uuid/dist/cjs/max.js create mode 100644 node_modules/uuid/dist/cjs/md5.d.ts create mode 100644 node_modules/uuid/dist/cjs/md5.js create mode 100644 node_modules/uuid/dist/cjs/native.d.ts create mode 100644 node_modules/uuid/dist/cjs/native.js create mode 100644 node_modules/uuid/dist/cjs/nil.d.ts create mode 100644 node_modules/uuid/dist/cjs/nil.js create mode 100644 node_modules/uuid/dist/cjs/package.json create mode 100644 node_modules/uuid/dist/cjs/parse.d.ts create mode 100644 node_modules/uuid/dist/cjs/parse.js create mode 100644 node_modules/uuid/dist/cjs/regex.d.ts create mode 100644 node_modules/uuid/dist/cjs/regex.js create mode 100644 node_modules/uuid/dist/cjs/rng.d.ts create mode 100644 node_modules/uuid/dist/cjs/rng.js create mode 100644 node_modules/uuid/dist/cjs/sha1.d.ts create mode 100644 node_modules/uuid/dist/cjs/sha1.js create mode 100644 node_modules/uuid/dist/cjs/stringify.d.ts create mode 100644 node_modules/uuid/dist/cjs/stringify.js create mode 100644 node_modules/uuid/dist/cjs/types.d.ts create mode 100644 node_modules/uuid/dist/cjs/types.js create mode 100644 node_modules/uuid/dist/cjs/uuid-bin.d.ts create mode 100644 node_modules/uuid/dist/cjs/uuid-bin.js create mode 100644 node_modules/uuid/dist/cjs/v1.d.ts create mode 100644 node_modules/uuid/dist/cjs/v1.js create mode 100644 node_modules/uuid/dist/cjs/v1ToV6.d.ts create mode 100644 node_modules/uuid/dist/cjs/v1ToV6.js create mode 100644 node_modules/uuid/dist/cjs/v3.d.ts create mode 100644 node_modules/uuid/dist/cjs/v3.js create mode 100644 node_modules/uuid/dist/cjs/v35.d.ts create mode 100644 node_modules/uuid/dist/cjs/v35.js create mode 100644 node_modules/uuid/dist/cjs/v4.d.ts create mode 100644 node_modules/uuid/dist/cjs/v4.js create mode 100644 node_modules/uuid/dist/cjs/v5.d.ts create mode 100644 node_modules/uuid/dist/cjs/v5.js create mode 100644 node_modules/uuid/dist/cjs/v6.d.ts create mode 100644 node_modules/uuid/dist/cjs/v6.js create mode 100644 node_modules/uuid/dist/cjs/v6ToV1.d.ts create mode 100644 node_modules/uuid/dist/cjs/v6ToV1.js create mode 100644 node_modules/uuid/dist/cjs/v7.d.ts create mode 100644 node_modules/uuid/dist/cjs/v7.js create mode 100644 node_modules/uuid/dist/cjs/validate.d.ts create mode 100644 node_modules/uuid/dist/cjs/validate.js create mode 100644 node_modules/uuid/dist/cjs/version.d.ts create mode 100644 node_modules/uuid/dist/cjs/version.js create mode 100644 node_modules/uuid/dist/esm-browser/index.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/max.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/max.js create mode 100644 node_modules/uuid/dist/esm-browser/md5.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/native.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/native.js create mode 100644 node_modules/uuid/dist/esm-browser/nil.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/parse.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/regex.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/rng.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/sha1.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/stringify.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/types.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/types.js create mode 100644 node_modules/uuid/dist/esm-browser/uuid-bin.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/uuid-bin.js create mode 100644 node_modules/uuid/dist/esm-browser/v1.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v1ToV6.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v1ToV6.js create mode 100644 node_modules/uuid/dist/esm-browser/v3.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v35.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v4.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v5.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v6.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v6.js create mode 100644 node_modules/uuid/dist/esm-browser/v6ToV1.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v6ToV1.js create mode 100644 node_modules/uuid/dist/esm-browser/v7.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/v7.js create mode 100644 node_modules/uuid/dist/esm-browser/validate.d.ts create mode 100644 node_modules/uuid/dist/esm-browser/version.d.ts delete mode 100644 node_modules/uuid/dist/esm-node/md5.js delete mode 100644 node_modules/uuid/dist/esm-node/nil.js delete mode 100644 node_modules/uuid/dist/esm-node/parse.js delete mode 100644 node_modules/uuid/dist/esm-node/regex.js delete mode 100644 node_modules/uuid/dist/esm-node/rng.js delete mode 100644 node_modules/uuid/dist/esm-node/sha1.js delete mode 100644 node_modules/uuid/dist/esm-node/stringify.js delete mode 100644 node_modules/uuid/dist/esm-node/v1.js delete mode 100644 node_modules/uuid/dist/esm-node/v3.js delete mode 100644 node_modules/uuid/dist/esm-node/v35.js delete mode 100644 node_modules/uuid/dist/esm-node/v4.js delete mode 100644 node_modules/uuid/dist/esm-node/v5.js delete mode 100644 node_modules/uuid/dist/esm-node/validate.js delete mode 100644 node_modules/uuid/dist/esm-node/version.js create mode 100755 node_modules/uuid/dist/esm/bin/uuid create mode 100644 node_modules/uuid/dist/esm/index.d.ts rename node_modules/uuid/dist/{esm-node => esm}/index.js (57%) create mode 100644 node_modules/uuid/dist/esm/max.d.ts create mode 100644 node_modules/uuid/dist/esm/max.js create mode 100644 node_modules/uuid/dist/esm/md5.d.ts create mode 100644 node_modules/uuid/dist/esm/md5.js create mode 100644 node_modules/uuid/dist/esm/native.d.ts create mode 100644 node_modules/uuid/dist/esm/native.js create mode 100644 node_modules/uuid/dist/esm/nil.d.ts create mode 100644 node_modules/uuid/dist/esm/nil.js create mode 100644 node_modules/uuid/dist/esm/parse.d.ts create mode 100644 node_modules/uuid/dist/esm/parse.js create mode 100644 node_modules/uuid/dist/esm/regex.d.ts create mode 100644 node_modules/uuid/dist/esm/regex.js create mode 100644 node_modules/uuid/dist/esm/rng.d.ts create mode 100644 node_modules/uuid/dist/esm/rng.js create mode 100644 node_modules/uuid/dist/esm/sha1.d.ts create mode 100644 node_modules/uuid/dist/esm/sha1.js create mode 100644 node_modules/uuid/dist/esm/stringify.d.ts create mode 100644 node_modules/uuid/dist/esm/stringify.js create mode 100644 node_modules/uuid/dist/esm/types.d.ts create mode 100644 node_modules/uuid/dist/esm/types.js create mode 100644 node_modules/uuid/dist/esm/uuid-bin.d.ts create mode 100644 node_modules/uuid/dist/esm/uuid-bin.js create mode 100644 node_modules/uuid/dist/esm/v1.d.ts create mode 100644 node_modules/uuid/dist/esm/v1.js create mode 100644 node_modules/uuid/dist/esm/v1ToV6.d.ts create mode 100644 node_modules/uuid/dist/esm/v1ToV6.js create mode 100644 node_modules/uuid/dist/esm/v3.d.ts create mode 100644 node_modules/uuid/dist/esm/v3.js create mode 100644 node_modules/uuid/dist/esm/v35.d.ts create mode 100644 node_modules/uuid/dist/esm/v35.js create mode 100644 node_modules/uuid/dist/esm/v4.d.ts create mode 100644 node_modules/uuid/dist/esm/v4.js create mode 100644 node_modules/uuid/dist/esm/v5.d.ts create mode 100644 node_modules/uuid/dist/esm/v5.js create mode 100644 node_modules/uuid/dist/esm/v6.d.ts create mode 100644 node_modules/uuid/dist/esm/v6.js create mode 100644 node_modules/uuid/dist/esm/v6ToV1.d.ts create mode 100644 node_modules/uuid/dist/esm/v6ToV1.js create mode 100644 node_modules/uuid/dist/esm/v7.d.ts create mode 100644 node_modules/uuid/dist/esm/v7.js create mode 100644 node_modules/uuid/dist/esm/validate.d.ts create mode 100644 node_modules/uuid/dist/esm/validate.js create mode 100644 node_modules/uuid/dist/esm/version.d.ts create mode 100644 node_modules/uuid/dist/esm/version.js delete mode 100644 node_modules/uuid/dist/index.js delete mode 100644 node_modules/uuid/dist/md5-browser.js delete mode 100644 node_modules/uuid/dist/md5.js delete mode 100644 node_modules/uuid/dist/nil.js delete mode 100644 node_modules/uuid/dist/parse.js delete mode 100644 node_modules/uuid/dist/regex.js delete mode 100644 node_modules/uuid/dist/rng-browser.js delete mode 100644 node_modules/uuid/dist/rng.js delete mode 100644 node_modules/uuid/dist/sha1-browser.js delete mode 100644 node_modules/uuid/dist/sha1.js delete mode 100644 node_modules/uuid/dist/stringify.js delete mode 100644 node_modules/uuid/dist/umd/uuid.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidNIL.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidParse.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidStringify.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidValidate.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidVersion.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidv1.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidv3.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidv4.min.js delete mode 100644 node_modules/uuid/dist/umd/uuidv5.min.js delete mode 100644 node_modules/uuid/dist/uuid-bin.js delete mode 100644 node_modules/uuid/dist/v1.js delete mode 100644 node_modules/uuid/dist/v3.js delete mode 100644 node_modules/uuid/dist/v35.js delete mode 100644 node_modules/uuid/dist/v4.js delete mode 100644 node_modules/uuid/dist/v5.js delete mode 100644 node_modules/uuid/dist/validate.js delete mode 100644 node_modules/uuid/dist/version.js delete mode 100644 node_modules/uuid/wrapper.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 8aa63d5..cdb7f8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ - check-http-status 2.2.0: reports include H1, meta description and image alt text - `max-pages` now defaults to 5000 instead of 1000 +### Fixed + +- Security: `uuid` is forced to 11.1.1 or newer (via `exceljs`) + ## 2.0.0 - Oct 2, 2026 ### New diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid index 588f70e..24f4a5f 120000 --- a/node_modules/.bin/uuid +++ b/node_modules/.bin/uuid @@ -1 +1 @@ -../uuid/dist/bin/uuid \ No newline at end of file +../uuid/dist/esm/bin/uuid \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index c25b3b0..27760cc 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1281,13 +1281,16 @@ "license": "MIT" }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.1.tgz", + "integrity": "sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/whatwg-encoding": { diff --git a/node_modules/uuid/CHANGELOG.md b/node_modules/uuid/CHANGELOG.md deleted file mode 100644 index 7519d19..0000000 --- a/node_modules/uuid/CHANGELOG.md +++ /dev/null @@ -1,229 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -### [8.3.2](https://github.com/uuidjs/uuid/compare/v8.3.1...v8.3.2) (2020-12-08) - -### Bug Fixes - -- lazy load getRandomValues ([#537](https://github.com/uuidjs/uuid/issues/537)) ([16c8f6d](https://github.com/uuidjs/uuid/commit/16c8f6df2f6b09b4d6235602d6a591188320a82e)), closes [#536](https://github.com/uuidjs/uuid/issues/536) - -### [8.3.1](https://github.com/uuidjs/uuid/compare/v8.3.0...v8.3.1) (2020-10-04) - -### Bug Fixes - -- support expo>=39.0.0 ([#515](https://github.com/uuidjs/uuid/issues/515)) ([c65a0f3](https://github.com/uuidjs/uuid/commit/c65a0f3fa73b901959d638d1e3591dfacdbed867)), closes [#375](https://github.com/uuidjs/uuid/issues/375) - -## [8.3.0](https://github.com/uuidjs/uuid/compare/v8.2.0...v8.3.0) (2020-07-27) - -### Features - -- add parse/stringify/validate/version/NIL APIs ([#479](https://github.com/uuidjs/uuid/issues/479)) ([0e6c10b](https://github.com/uuidjs/uuid/commit/0e6c10ba1bf9517796ff23c052fc0468eedfd5f4)), closes [#475](https://github.com/uuidjs/uuid/issues/475) [#478](https://github.com/uuidjs/uuid/issues/478) [#480](https://github.com/uuidjs/uuid/issues/480) [#481](https://github.com/uuidjs/uuid/issues/481) [#180](https://github.com/uuidjs/uuid/issues/180) - -## [8.2.0](https://github.com/uuidjs/uuid/compare/v8.1.0...v8.2.0) (2020-06-23) - -### Features - -- improve performance of v1 string representation ([#453](https://github.com/uuidjs/uuid/issues/453)) ([0ee0b67](https://github.com/uuidjs/uuid/commit/0ee0b67c37846529c66089880414d29f3ae132d5)) -- remove deprecated v4 string parameter ([#454](https://github.com/uuidjs/uuid/issues/454)) ([88ce3ca](https://github.com/uuidjs/uuid/commit/88ce3ca0ba046f60856de62c7ce03f7ba98ba46c)), closes [#437](https://github.com/uuidjs/uuid/issues/437) -- support jspm ([#473](https://github.com/uuidjs/uuid/issues/473)) ([e9f2587](https://github.com/uuidjs/uuid/commit/e9f2587a92575cac31bc1d4ae944e17c09756659)) - -### Bug Fixes - -- prepare package exports for webpack 5 ([#468](https://github.com/uuidjs/uuid/issues/468)) ([8d6e6a5](https://github.com/uuidjs/uuid/commit/8d6e6a5f8965ca9575eb4d92e99a43435f4a58a8)) - -## [8.1.0](https://github.com/uuidjs/uuid/compare/v8.0.0...v8.1.0) (2020-05-20) - -### Features - -- improve v4 performance by reusing random number array ([#435](https://github.com/uuidjs/uuid/issues/435)) ([bf4af0d](https://github.com/uuidjs/uuid/commit/bf4af0d711b4d2ed03d1f74fd12ad0baa87dc79d)) -- optimize V8 performance of bytesToUuid ([#434](https://github.com/uuidjs/uuid/issues/434)) ([e156415](https://github.com/uuidjs/uuid/commit/e156415448ec1af2351fa0b6660cfb22581971f2)) - -### Bug Fixes - -- export package.json required by react-native and bundlers ([#449](https://github.com/uuidjs/uuid/issues/449)) ([be1c8fe](https://github.com/uuidjs/uuid/commit/be1c8fe9a3206c358e0059b52fafd7213aa48a52)), closes [ai/nanoevents#44](https://github.com/ai/nanoevents/issues/44#issuecomment-602010343) [#444](https://github.com/uuidjs/uuid/issues/444) - -## [8.0.0](https://github.com/uuidjs/uuid/compare/v7.0.3...v8.0.0) (2020-04-29) - -### ⚠ BREAKING CHANGES - -- For native ECMAScript Module (ESM) usage in Node.js only named exports are exposed, there is no more default export. - - ```diff - -import uuid from 'uuid'; - -console.log(uuid.v4()); // -> 'cd6c3b08-0adc-4f4b-a6ef-36087a1c9869' - +import { v4 as uuidv4 } from 'uuid'; - +uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' - ``` - -- Deep requiring specific algorithms of this library like `require('uuid/v4')`, which has been deprecated in `uuid@7`, is no longer supported. - - Instead use the named exports that this module exports. - - For ECMAScript Modules (ESM): - - ```diff - -import uuidv4 from 'uuid/v4'; - +import { v4 as uuidv4 } from 'uuid'; - uuidv4(); - ``` - - For CommonJS: - - ```diff - -const uuidv4 = require('uuid/v4'); - +const { v4: uuidv4 } = require('uuid'); - uuidv4(); - ``` - -### Features - -- native Node.js ES Modules (wrapper approach) ([#423](https://github.com/uuidjs/uuid/issues/423)) ([2d9f590](https://github.com/uuidjs/uuid/commit/2d9f590ad9701d692625c07ed62f0a0f91227991)), closes [#245](https://github.com/uuidjs/uuid/issues/245) [#419](https://github.com/uuidjs/uuid/issues/419) [#342](https://github.com/uuidjs/uuid/issues/342) -- remove deep requires ([#426](https://github.com/uuidjs/uuid/issues/426)) ([daf72b8](https://github.com/uuidjs/uuid/commit/daf72b84ceb20272a81bb5fbddb05dd95922cbba)) - -### Bug Fixes - -- add CommonJS syntax example to README quickstart section ([#417](https://github.com/uuidjs/uuid/issues/417)) ([e0ec840](https://github.com/uuidjs/uuid/commit/e0ec8402c7ad44b7ef0453036c612f5db513fda0)) - -### [7.0.3](https://github.com/uuidjs/uuid/compare/v7.0.2...v7.0.3) (2020-03-31) - -### Bug Fixes - -- make deep require deprecation warning work in browsers ([#409](https://github.com/uuidjs/uuid/issues/409)) ([4b71107](https://github.com/uuidjs/uuid/commit/4b71107d8c0d2ef56861ede6403fc9dc35a1e6bf)), closes [#408](https://github.com/uuidjs/uuid/issues/408) - -### [7.0.2](https://github.com/uuidjs/uuid/compare/v7.0.1...v7.0.2) (2020-03-04) - -### Bug Fixes - -- make access to msCrypto consistent ([#393](https://github.com/uuidjs/uuid/issues/393)) ([8bf2a20](https://github.com/uuidjs/uuid/commit/8bf2a20f3565df743da7215eebdbada9d2df118c)) -- simplify link in deprecation warning ([#391](https://github.com/uuidjs/uuid/issues/391)) ([bb2c8e4](https://github.com/uuidjs/uuid/commit/bb2c8e4e9f4c5f9c1eaaf3ea59710c633cd90cb7)) -- update links to match content in readme ([#386](https://github.com/uuidjs/uuid/issues/386)) ([44f2f86](https://github.com/uuidjs/uuid/commit/44f2f86e9d2bbf14ee5f0f00f72a3db1292666d4)) - -### [7.0.1](https://github.com/uuidjs/uuid/compare/v7.0.0...v7.0.1) (2020-02-25) - -### Bug Fixes - -- clean up esm builds for node and browser ([#383](https://github.com/uuidjs/uuid/issues/383)) ([59e6a49](https://github.com/uuidjs/uuid/commit/59e6a49e7ce7b3e8fb0f3ee52b9daae72af467dc)) -- provide browser versions independent from module system ([#380](https://github.com/uuidjs/uuid/issues/380)) ([4344a22](https://github.com/uuidjs/uuid/commit/4344a22e7aed33be8627eeaaf05360f256a21753)), closes [#378](https://github.com/uuidjs/uuid/issues/378) - -## [7.0.0](https://github.com/uuidjs/uuid/compare/v3.4.0...v7.0.0) (2020-02-24) - -### ⚠ BREAKING CHANGES - -- The default export, which used to be the v4() method but which was already discouraged in v3.x of this library, has been removed. -- Explicitly note that deep imports of the different uuid version functions are deprecated and no longer encouraged and that ECMAScript module named imports should be used instead. Emit a deprecation warning for people who deep-require the different algorithm variants. -- Remove builtin support for insecure random number generators in the browser. Users who want that will have to supply their own random number generator function. -- Remove support for generating v3 and v5 UUIDs in Node.js<4.x -- Convert code base to ECMAScript Modules (ESM) and release CommonJS build for node and ESM build for browser bundlers. - -### Features - -- add UMD build to npm package ([#357](https://github.com/uuidjs/uuid/issues/357)) ([4e75adf](https://github.com/uuidjs/uuid/commit/4e75adf435196f28e3fbbe0185d654b5ded7ca2c)), closes [#345](https://github.com/uuidjs/uuid/issues/345) -- add various es module and CommonJS examples ([b238510](https://github.com/uuidjs/uuid/commit/b238510bf352463521f74bab175a3af9b7a42555)) -- ensure that docs are up-to-date in CI ([ee5e77d](https://github.com/uuidjs/uuid/commit/ee5e77db547474f5a8f23d6c857a6d399209986b)) -- hybrid CommonJS & ECMAScript modules build ([a3f078f](https://github.com/uuidjs/uuid/commit/a3f078faa0baff69ab41aed08e041f8f9c8993d0)) -- remove insecure fallback random number generator ([3a5842b](https://github.com/uuidjs/uuid/commit/3a5842b141a6e5de0ae338f391661e6b84b167c9)), closes [#173](https://github.com/uuidjs/uuid/issues/173) -- remove support for pre Node.js v4 Buffer API ([#356](https://github.com/uuidjs/uuid/issues/356)) ([b59b5c5](https://github.com/uuidjs/uuid/commit/b59b5c5ecad271c5453f1a156f011671f6d35627)) -- rename repository to github:uuidjs/uuid ([#351](https://github.com/uuidjs/uuid/issues/351)) ([c37a518](https://github.com/uuidjs/uuid/commit/c37a518e367ac4b6d0aa62dba1bc6ce9e85020f7)), closes [#338](https://github.com/uuidjs/uuid/issues/338) - -### Bug Fixes - -- add deep-require proxies for local testing and adjust tests ([#365](https://github.com/uuidjs/uuid/issues/365)) ([7fedc79](https://github.com/uuidjs/uuid/commit/7fedc79ac8fda4bfd1c566c7f05ef4ac13b2db48)) -- add note about removal of default export ([#372](https://github.com/uuidjs/uuid/issues/372)) ([12749b7](https://github.com/uuidjs/uuid/commit/12749b700eb49db8a9759fd306d8be05dbfbd58c)), closes [#370](https://github.com/uuidjs/uuid/issues/370) -- deprecated deep requiring of the different algorithm versions ([#361](https://github.com/uuidjs/uuid/issues/361)) ([c0bdf15](https://github.com/uuidjs/uuid/commit/c0bdf15e417639b1aeb0b247b2fb11f7a0a26b23)) - -## [3.4.0](https://github.com/uuidjs/uuid/compare/v3.3.3...v3.4.0) (2020-01-16) - -### Features - -- rename repository to github:uuidjs/uuid ([#351](https://github.com/uuidjs/uuid/issues/351)) ([e2d7314](https://github.com/uuidjs/uuid/commit/e2d7314)), closes [#338](https://github.com/uuidjs/uuid/issues/338) - -## [3.3.3](https://github.com/uuidjs/uuid/compare/v3.3.2...v3.3.3) (2019-08-19) - -### Bug Fixes - -- no longer run ci tests on node v4 -- upgrade dependencies - -## [3.3.2](https://github.com/uuidjs/uuid/compare/v3.3.1...v3.3.2) (2018-06-28) - -### Bug Fixes - -- typo ([305d877](https://github.com/uuidjs/uuid/commit/305d877)) - -## [3.3.1](https://github.com/uuidjs/uuid/compare/v3.3.0...v3.3.1) (2018-06-28) - -### Bug Fixes - -- fix [#284](https://github.com/uuidjs/uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/uuidjs/uuid/commit/f2a60f2)) - -# [3.3.0](https://github.com/uuidjs/uuid/compare/v3.2.1...v3.3.0) (2018-06-22) - -### Bug Fixes - -- assignment to readonly property to allow running in strict mode ([#270](https://github.com/uuidjs/uuid/issues/270)) ([d062fdc](https://github.com/uuidjs/uuid/commit/d062fdc)) -- fix [#229](https://github.com/uuidjs/uuid/issues/229) ([c9684d4](https://github.com/uuidjs/uuid/commit/c9684d4)) -- Get correct version of IE11 crypto ([#274](https://github.com/uuidjs/uuid/issues/274)) ([153d331](https://github.com/uuidjs/uuid/commit/153d331)) -- mem issue when generating uuid ([#267](https://github.com/uuidjs/uuid/issues/267)) ([c47702c](https://github.com/uuidjs/uuid/commit/c47702c)) - -### Features - -- enforce Conventional Commit style commit messages ([#282](https://github.com/uuidjs/uuid/issues/282)) ([cc9a182](https://github.com/uuidjs/uuid/commit/cc9a182)) - -## [3.2.1](https://github.com/uuidjs/uuid/compare/v3.2.0...v3.2.1) (2018-01-16) - -### Bug Fixes - -- use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b)) - -# [3.2.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.2.0) (2018-01-16) - -### Bug Fixes - -- remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/uuidjs/uuid/commit/09fa824)) -- use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b)) - -### Features - -- Add v3 Support ([#217](https://github.com/uuidjs/uuid/issues/217)) ([d94f726](https://github.com/uuidjs/uuid/commit/d94f726)) - -# [3.1.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.0.1) (2017-06-17) - -### Bug Fixes - -- (fix) Add .npmignore file to exclude test/ and other non-essential files from packing. (#183) -- Fix typo (#178) -- Simple typo fix (#165) - -### Features - -- v5 support in CLI (#197) -- V5 support (#188) - -# 3.0.1 (2016-11-28) - -- split uuid versions into separate files - -# 3.0.0 (2016-11-17) - -- remove .parse and .unparse - -# 2.0.0 - -- Removed uuid.BufferClass - -# 1.4.0 - -- Improved module context detection -- Removed public RNG functions - -# 1.3.2 - -- Improve tests and handling of v1() options (Issue #24) -- Expose RNG option to allow for perf testing with different generators - -# 1.3.0 - -- Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)! -- Support for node.js crypto API -- De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code diff --git a/node_modules/uuid/CONTRIBUTING.md b/node_modules/uuid/CONTRIBUTING.md deleted file mode 100644 index 4a4503d..0000000 --- a/node_modules/uuid/CONTRIBUTING.md +++ /dev/null @@ -1,18 +0,0 @@ -# Contributing - -Please feel free to file GitHub Issues or propose Pull Requests. We're always happy to discuss improvements to this library! - -## Testing - -```shell -npm test -``` - -## Releasing - -Releases are supposed to be done from master, version bumping is automated through [`standard-version`](https://github.com/conventional-changelog/standard-version): - -```shell -npm run release -- --dry-run # verify output manually -npm run release # follow the instructions from the output of this command -``` diff --git a/node_modules/uuid/README.md b/node_modules/uuid/README.md index ed27e57..83ae737 100644 --- a/node_modules/uuid/README.md +++ b/node_modules/uuid/README.md @@ -2,41 +2,46 @@ -- This file is auto-generated from README_js.md. Changes should be made there. --> -# uuid [![CI](https://github.com/uuidjs/uuid/workflows/CI/badge.svg)](https://github.com/uuidjs/uuid/actions?query=workflow%3ACI) [![Browser](https://github.com/uuidjs/uuid/workflows/Browser/badge.svg)](https://github.com/uuidjs/uuid/actions?query=workflow%3ABrowser) +# uuid [![CI](https://github.com/uuidjs/uuid/workflows/CI/badge.svg)](https://github.com/uuidjs/uuid/actions?query=workflow%3ACI) [![Browser](https://github.com/uuidjs/uuid/workflows/Browser/badge.svg)](https://github.com/uuidjs/uuid/actions/workflows/browser.yml) -For the creation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDs +For the creation of [RFC9562](https://www.rfc-editor.org/rfc/rfc9562.html) (formerly [RFC4122](https://www.rfc-editor.org/rfc/rfc4122.html)) UUIDs -- **Complete** - Support for RFC4122 version 1, 3, 4, and 5 UUIDs -- **Cross-platform** - Support for ... - - CommonJS, [ECMAScript Modules](#ecmascript-modules) and [CDN builds](#cdn-builds) - - Node 8, 10, 12, 14 - - Chrome, Safari, Firefox, Edge, IE 11 browsers - - Webpack and rollup.js module bundlers +- **Complete** - Support for all RFC9562 UUID versions +- **Cross-platform** - Support for... + - ESM & Common JS + - [Typescript](#support) + - [Chrome, Safari, Firefox, and Edge](#support) + - [NodeJS](#support) - [React Native / Expo](#react-native--expo) -- **Secure** - Cryptographically-strong random values -- **Small** - Zero-dependency, small footprint, plays nice with "tree shaking" packagers -- **CLI** - Includes the [`uuid` command line](#command-line) utility +- **Secure** - Uses modern `crypto` API for random values +- **Compact** - Zero-dependency, [tree-shakable](https://developer.mozilla.org/en-US/docs/Glossary/Tree_shaking) +- **CLI** - [`uuid` command line](#command-line) utility -**Upgrading from `uuid@3.x`?** Your code is probably okay, but check out [Upgrading From `uuid@3.x`](#upgrading-from-uuid3x) for details. +<!-- prettier-ignore --> +> [!NOTE] +> `uuid@11` is now available: See the [CHANGELOG](./CHANGELOG.md) for details. TL;DR: +> * TypeScript support is now included (remove `@types/uuid` from your dependencies) +> * Subtle changes to how the `options` arg is interpreted for `v1()`, `v6()`, and `v7()`. [See details](#options-handling-for-timestamp-uuids) +> * Binary UUIDs are now `Uint8Array`s. (May impact callers of `parse()`, `stringify()`, or that pass an `option#buf` argument to `v1()`-`v7()`.) ## Quickstart -To create a random UUID... - **1. Install** ```shell npm install uuid ``` -**2. Create a UUID** (ES6 module syntax) +**2. Create a UUID** + +ESM-syntax (must use named exports): ```javascript import { v4 as uuidv4 } from 'uuid'; uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' ``` -... or using CommonJS syntax: +... CommonJS: ```javascript const { v4: uuidv4 } = require('uuid'); @@ -50,12 +55,18 @@ For timestamp UUIDs, namespace UUIDs, and other options read on ... | | | | | --- | --- | --- | | [`uuid.NIL`](#uuidnil) | The nil UUID string (all zeros) | New in `uuid@8.3` | +| [`uuid.MAX`](#uuidmax) | The max UUID string (all ones) | New in `uuid@9.1` | | [`uuid.parse()`](#uuidparsestr) | Convert UUID string to array of bytes | New in `uuid@8.3` | | [`uuid.stringify()`](#uuidstringifyarr-offset) | Convert array of bytes to UUID string | New in `uuid@8.3` | | [`uuid.v1()`](#uuidv1options-buffer-offset) | Create a version 1 (timestamp) UUID | | +| [`uuid.v1ToV6()`](#uuidv1tov6uuid) | Create a version 6 UUID from a version 1 UUID | New in `uuid@10` | | [`uuid.v3()`](#uuidv3name-namespace-buffer-offset) | Create a version 3 (namespace w/ MD5) UUID | | | [`uuid.v4()`](#uuidv4options-buffer-offset) | Create a version 4 (random) UUID | | | [`uuid.v5()`](#uuidv5name-namespace-buffer-offset) | Create a version 5 (namespace w/ SHA-1) UUID | | +| [`uuid.v6()`](#uuidv6options-buffer-offset) | Create a version 6 (timestamp, reordered) UUID | New in `uuid@10` | +| [`uuid.v6ToV1()`](#uuidv6tov1uuid) | Create a version 1 UUID from a version 6 UUID | New in `uuid@10` | +| [`uuid.v7()`](#uuidv7options-buffer-offset) | Create a version 7 (Unix Epoch time-based) UUID | New in `uuid@10` | +| ~~[`uuid.v8()`](#uuidv8)~~ | "Intentionally left blank" | | | [`uuid.validate()`](#uuidvalidatestr) | Test a string to see if it is a valid UUID | New in `uuid@8.3` | | [`uuid.version()`](#uuidversionstr) | Detect RFC version of a UUID | New in `uuid@8.3` | @@ -73,6 +84,18 @@ import { NIL as NIL_UUID } from 'uuid'; NIL_UUID; // ⇨ '00000000-0000-0000-0000-000000000000' ``` +### uuid.MAX + +The max UUID string (all ones). + +Example: + +```javascript +import { MAX as MAX_UUID } from 'uuid'; + +MAX_UUID; // ⇨ 'ffffffff-ffff-ffff-ffff-ffffffffffff' +``` + ### uuid.parse(str) Convert UUID string to array of bytes @@ -83,7 +106,9 @@ Convert UUID string to array of bytes | _returns_ | `Uint8Array[16]` | | _throws_ | `TypeError` if `str` is not a valid UUID | -Note: Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below. +<!-- prettier-ignore --> +> [!NOTE] +> Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below. Example: @@ -91,16 +116,13 @@ Example: import { parse as uuidParse } from 'uuid'; // Parse a UUID -const bytes = uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); - -// Convert to hex strings to show byte order (for documentation purposes) -[...bytes].map((v) => v.toString(16).padStart(2, '0')); // ⇨ - // [ - // '6e', 'c0', 'bd', '7f', - // '11', 'c0', '43', 'da', - // '97', '5e', '2a', '8a', - // 'd9', 'eb', 'ae', '0b' - // ] +uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ +// Uint8Array(16) [ +// 110, 192, 189, 127, 17, +// 192, 67, 218, 151, 94, +// 42, 138, 217, 235, 174, +// 11 +// ] ``` ### uuid.stringify(arr[, offset]) @@ -114,14 +136,16 @@ Convert array of bytes to UUID string | _returns_ | `String` | | _throws_ | `TypeError` if a valid UUID string cannot be generated | -Note: Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below. +<!-- prettier-ignore --> +> [!NOTE] +> Ordering of values in the byte arrays used by `parse()` and `stringify()` follows the left ↠ right order of hex-pairs in UUID strings. As shown in the example below. Example: ```javascript import { stringify as uuidStringify } from 'uuid'; -const uuidBytes = [ +const uuidBytes = Uint8Array.of( 0x6e, 0xc0, 0xbd, @@ -137,8 +161,8 @@ const uuidBytes = [ 0xd9, 0xeb, 0xae, - 0x0b, -]; + 0x0b +); uuidStringify(uuidBytes); // ⇨ '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b' ``` @@ -150,27 +174,31 @@ Create an RFC version 1 (timestamp) UUID | | | | --- | --- | | [`options`] | `Object` with one or more of the following properties: | -| [`options.node` ] | RFC "node" field as an `Array[6]` of byte values (per 4.1.6) | -| [`options.clockseq`] | RFC "clock sequence" as a `Number` between 0 - 0x3fff | -| [`options.msecs`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) | -| [`options.nsecs`] | RFC "timestamp" field (`Number` of nanseconds to add to `msecs`, should be 0-10,000) | -| [`options.random`] | `Array` of 16 random bytes (0-255) | +| [`options.node = (random)` ] | RFC "node" field as an `Array[6]` of byte values (per 4.1.6) | +| [`options.clockseq = (random)`] | RFC "clock sequence" as a `Number` between 0 - 0x3fff | +| [`options.msecs = (current time)`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) | +| [`options.nsecs = 0`] | RFC "timestamp" field (`Number` of nanoseconds to add to `msecs`, should be 0-10,000) | +| [`options.random = (random)`] | `Array` of 16 random bytes (0-255) used to generate other fields, above | | [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) | -| [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` | +| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` | | [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` | | _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` | | _throws_ | `Error` if more than 10M UUIDs/sec are requested | -Note: The default [node id](https://tools.ietf.org/html/rfc4122#section-4.1.6) (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process. +<!-- prettier-ignore --> +> [!NOTE] +> The default [node id](https://datatracker.ietf.org/doc/html/rfc9562#section-5.1) (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process. -Note: `options.random` and `options.rng` are only meaningful on the very first call to `v1()`, where they may be passed to initialize the internal `node` and `clockseq` fields. +<!-- prettier-ignore --> +> [!NOTE] +> `options.random` and `options.rng` are only meaningful on the very first call to `v1()`, where they may be passed to initialize the internal `node` and `clockseq` fields. Example: ```javascript import { v1 as uuidv1 } from 'uuid'; -uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d' +uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-9bdd-2b0d7b3dcb6d' ``` Example using `options`: @@ -178,13 +206,23 @@ Example using `options`: ```javascript import { v1 as uuidv1 } from 'uuid'; -const v1options = { - node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], +const options = { + node: Uint8Array.of(0x01, 0x23, 0x45, 0x67, 0x89, 0xab), clockseq: 0x1234, msecs: new Date('2011-11-01').getTime(), nsecs: 5678, }; -uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab' +uuidv1(options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab' +``` + +### uuid.v1ToV6(uuid) + +Convert a UUID from version 1 to version 6 + +```javascript +import { v1ToV6 } from 'uuid'; + +v1ToV6('92f62d9e-22c4-11ef-97e9-325096b39f47'); // ⇨ '1ef22c49-2f62-6d9e-97e9-325096b39f47' ``` ### uuid.v3(name, namespace[, buffer[, offset]]) @@ -193,7 +231,9 @@ Create an RFC version 3 (namespace w/ MD5) UUID API is identical to `v5()`, but uses "v3" instead. -⚠️ Note: Per the RFC, "_If backward compatibility is not an issue, SHA-1 [Version 5] is preferred_." +<!-- prettier-ignore --> +> [!IMPORTANT] +> Per the RFC, "_If backward compatibility is not an issue, SHA-1 [Version 5] is preferred_." ### uuid.v4([options[, buffer[, offset]]]) @@ -204,7 +244,7 @@ Create an RFC version 4 (random) UUID | [`options`] | `Object` with one or more of the following properties: | | [`options.random`] | `Array` of 16 random bytes (0-255) | | [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) | -| [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` | +| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` | | [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` | | _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` | @@ -213,7 +253,7 @@ Example: ```javascript import { v4 as uuidv4 } from 'uuid'; -uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' +uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' ``` Example using predefined `random` values: @@ -222,7 +262,7 @@ Example using predefined `random` values: import { v4 as uuidv4 } from 'uuid'; const v4options = { - random: [ + random: Uint8Array.of( 0x10, 0x91, 0x56, @@ -238,8 +278,8 @@ const v4options = { 0x67, 0x1c, 0x58, - 0x36, - ], + 0x36 + ), }; uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836' ``` @@ -252,11 +292,13 @@ Create an RFC version 5 (namespace w/ SHA-1) UUID | --- | --- | | `name` | `String \| Array` | | `namespace` | `String \| Array[16]` Namespace UUID | -| [`buffer`] | `Array \| Buffer` If specified, uuid will be written here in byte-form, starting at `offset` | +| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` | | [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` | | _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` | -Note: The RFC `DNS` and `URL` namespaces are available as `v5.DNS` and `v5.URL`. +<!-- prettier-ignore --> +> [!NOTE] +> The RFC `DNS` and `URL` namespaces are available as `v5.DNS` and `v5.URL`. Example with custom namespace: @@ -278,6 +320,73 @@ import { v5 as uuidv5 } from 'uuid'; uuidv5('https://www.w3.org/', uuidv5.URL); // ⇨ 'c106a26a-21bb-5538-8bf2-57095d1976c1' ``` +### uuid.v6([options[, buffer[, offset]]]) + +Create an RFC version 6 (timestamp, reordered) UUID + +This method takes the same arguments as uuid.v1(). + +```javascript +import { v6 as uuidv6 } from 'uuid'; + +uuidv6(); // ⇨ '1e940672-c5ea-64c0-9b5d-ab8dfbbd4bed' +``` + +Example using `options`: + +```javascript +import { v6 as uuidv6 } from 'uuid'; + +const options = { + node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], + clockseq: 0x1234, + msecs: new Date('2011-11-01').getTime(), + nsecs: 5678, +}; +uuidv6(options); // ⇨ '1e1041c7-10b9-662e-9234-0123456789ab' +``` + +### uuid.v6ToV1(uuid) + +Convert a UUID from version 6 to version 1 + +```javascript +import { v6ToV1 } from 'uuid'; + +v6ToV1('1ef22c49-2f62-6d9e-97e9-325096b39f47'); // ⇨ '92f62d9e-22c4-11ef-97e9-325096b39f47' +``` + +### uuid.v7([options[, buffer[, offset]]]) + +Create an RFC version 7 (random) UUID + +| | | +| --- | --- | +| [`options`] | `Object` with one or more of the following properties: | +| [`options.msecs = (current time)`] | RFC "timestamp" field (`Number` of milliseconds, unix epoch) | +| [`options.random = (random)`] | `Array` of 16 random bytes (0-255) used to generate other fields, above | +| [`options.rng`] | Alternative to `options.random`, a `Function` that returns an `Array` of 16 random bytes (0-255) | +| [`options.seq = (random)`] | 32-bit sequence `Number` between 0 - 0xffffffff. This may be provided to help ensure uniqueness for UUIDs generated within the same millisecond time interval. Default = random value. | +| [`buffer`] | `Uint8Array` or `Uint8Array` subtype (e.g. Node.js `Buffer`). If provided, binary UUID is written into the array, starting at `offset` | +| [`offset` = 0] | `Number` Index to start writing UUID bytes in `buffer` | +| _returns_ | UUID `String` if no `buffer` is specified, otherwise returns `buffer` | + +Example: + +```javascript +import { v7 as uuidv7 } from 'uuid'; + +uuidv7(); // ⇨ '01695553-c90c-705a-b56d-778dfbbd4bed' +``` + +### ~~uuid.v8()~~ + +**_"Intentionally left blank"_** + +<!-- prettier-ignore --> +> [!NOTE] +> Version 8 (experimental) UUIDs are "[for experimental or vendor-specific use cases](https://www.rfc-editor.org/rfc/rfc9562.html#name-uuid-version-8)". The RFC does not define a creation algorithm for them, which is why this package does not offer a `v8()` method. The `validate()` and `version()` methods do work with such UUIDs, however. + ### uuid.validate(str) Test a string to see if it is a valid UUID @@ -332,19 +441,23 @@ uuidVersion('45637ec4-c85f-11ea-87d0-0242ac130003'); // ⇨ 1 uuidVersion('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b'); // ⇨ 4 ``` +<!-- prettier-ignore --> +> [!NOTE] +> This method returns `0` for the `NIL` UUID, and `15` for the `MAX` UUID. + ## Command Line UUIDs can be generated from the command line using `uuid`. ```shell -$ uuid +$ npx uuid ddeb27fb-d9a0-4624-be4d-4615062daed4 ``` The default is to generate version 4 UUIDS, however the other versions are supported. Type `uuid --help` for details: ```shell -$ uuid --help +$ npx uuid --help Usage: uuid @@ -352,77 +465,37 @@ Usage: uuid v3 <name> <namespace uuid> uuid v4 uuid v5 <name> <namespace uuid> + uuid v7 uuid --help Note: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs -defined by RFC4122 +defined by RFC9562 ``` -## ECMAScript Modules +## `options` Handling for Timestamp UUIDs -This library comes with [ECMAScript Modules](https://www.ecma-international.org/ecma-262/6.0/#sec-modules) (ESM) support for Node.js versions that support it ([example](./examples/node-esmodules/)) as well as bundlers like [rollup.js](https://rollupjs.org/guide/en/#tree-shaking) ([example](./examples/browser-rollup/)) and [webpack](https://webpack.js.org/guides/tree-shaking/) ([example](./examples/browser-webpack/)) (targeting both, Node.js and browser environments). +Prior to `uuid@11`, it was possible for `options` state to interfere with the internal state used to ensure uniqueness of timestamp-based UUIDs (the `v1()`, `v6()`, and `v7()` methods). Starting with `uuid@11`, this issue has been addressed by using the presence of the `options` argument as a flag to select between two possible behaviors: -```javascript -import { v4 as uuidv4 } from 'uuid'; -uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' -``` - -To run the examples you must first create a dist build of this library in the module root: - -```shell -npm run build -``` +- Without `options`: Internal state is utilized to improve UUID uniqueness. +- With `options`: Internal state is **NOT** used and, instead, appropriate defaults are applied as needed. -## CDN Builds +## Support -### ECMAScript Modules +**Browsers**: `uuid` [builds are tested](/uuidjs/uuid/blob/main/wdio.conf.js) against the latest version of desktop Chrome, Safari, Firefox, and Edge. Mobile versions of these same browsers are expected to work but aren't currently tested. -To load this module directly into modern browsers that [support loading ECMAScript Modules](https://caniuse.com/#feat=es6-module) you can make use of [jspm](https://jspm.org/): +**Node**: `uuid` [builds are tested](https://github.com/uuidjs/uuid/blob/main/.github/workflows/ci.yml#L26-L27) against node ([LTS releases](https://github.com/nodejs/Release)), plus one prior. E.g. `node@18` is in maintainence mode, and `node@22` is the current LTS release. So `uuid` supports `node@16`-`node@22`. -```html -<script type="module"> - import { v4 as uuidv4 } from 'https://jspm.dev/uuid'; - console.log(uuidv4()); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' -</script> -``` - -### UMD - -To load this module directly into older browsers you can use the [UMD (Universal Module Definition)](https://github.com/umdjs/umd) builds from any of the following CDNs: - -**Using [UNPKG](https://unpkg.com/uuid@latest/dist/umd/)**: +**Typescript**: TS versions released within the past two years are supported. [source](https://github.com/microsoft/TypeScript/issues/49088#issuecomment-2468723715) -```html -<script src="https://unpkg.com/uuid@latest/dist/umd/uuidv4.min.js"></script> -``` - -**Using [jsDelivr](https://cdn.jsdelivr.net/npm/uuid@latest/dist/umd/)**: +## Known issues -```html -<script src="https://cdn.jsdelivr.net/npm/uuid@latest/dist/umd/uuidv4.min.js"></script> -``` +<!-- This header is referenced as an anchor in src/rng-browser.ts --> -**Using [cdnjs](https://cdnjs.com/libraries/uuid)**: - -```html -<script src="https://cdnjs.cloudflare.com/ajax/libs/uuid/8.1.0/uuidv4.min.js"></script> -``` - -These CDNs all provide the same [`uuidv4()`](#uuidv4options-buffer-offset) method: - -```html -<script> - uuidv4(); // ⇨ '55af1e37-0734-46d8-b070-a1e42e4fc392' -</script> -``` - -Methods for the other algorithms ([`uuidv1()`](#uuidv1options-buffer-offset), [`uuidv3()`](#uuidv3name-namespace-buffer-offset) and [`uuidv5()`](#uuidv5name-namespace-buffer-offset)) are available from the files `uuidv1.min.js`, `uuidv3.min.js` and `uuidv5.min.js` respectively. - -## "getRandomValues() not supported" +### "getRandomValues() not supported" This error occurs in environments where the standard [`crypto.getRandomValues()`](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues) API is not supported. This issue can be resolved by adding an appropriate polyfill: -### React Native / Expo +#### React Native / Expo 1. Install [`react-native-get-random-values`](https://github.com/LinusU/react-native-get-random-values#readme) 1. Import it _before_ `uuid`. Since `uuid` might also appear as a transitive dependency of some other imports it's safest to just import `react-native-get-random-values` as the very first thing in your entry point: @@ -432,74 +505,6 @@ import 'react-native-get-random-values'; import { v4 as uuidv4 } from 'uuid'; ``` -Note: If you are using Expo, you must be using at least `react-native-get-random-values@1.5.0` and `expo@39.0.0`. - -### Web Workers / Service Workers (Edge <= 18) - -[In Edge <= 18, Web Crypto is not supported in Web Workers or Service Workers](https://caniuse.com/#feat=cryptography) and we are not aware of a polyfill (let us know if you find one, please). - -## Upgrading From `uuid@7.x` - -### Only Named Exports Supported When Using with Node.js ESM - -`uuid@7.x` did not come with native ECMAScript Module (ESM) support for Node.js. Importing it in Node.js ESM consequently imported the CommonJS source with a default export. This library now comes with true Node.js ESM support and only provides named exports. - -Instead of doing: - -```javascript -import uuid from 'uuid'; -uuid.v4(); -``` - -you will now have to use the named exports: - -```javascript -import { v4 as uuidv4 } from 'uuid'; -uuidv4(); -``` - -### Deep Requires No Longer Supported - -Deep requires like `require('uuid/v4')` [which have been deprecated in `uuid@7.x`](#deep-requires-now-deprecated) are no longer supported. - -## Upgrading From `uuid@3.x` - -"_Wait... what happened to `uuid@4.x` - `uuid@6.x`?!?_" - -In order to avoid confusion with RFC [version 4](#uuidv4options-buffer-offset) and [version 5](#uuidv5name-namespace-buffer-offset) UUIDs, and a possible [version 6](http://gh.peabody.io/uuidv6/), releases 4 thru 6 of this module have been skipped. - -### Deep Requires Now Deprecated - -`uuid@3.x` encouraged the use of deep requires to minimize the bundle size of browser builds: - -```javascript -const uuidv4 = require('uuid/v4'); // <== NOW DEPRECATED! -uuidv4(); -``` - -As of `uuid@7.x` this library now provides ECMAScript modules builds, which allow packagers like Webpack and Rollup to do "tree-shaking" to remove dead code. Instead, use the `import` syntax: - -```javascript -import { v4 as uuidv4 } from 'uuid'; -uuidv4(); -``` - -... or for CommonJS: - -```javascript -const { v4: uuidv4 } = require('uuid'); -uuidv4(); -``` - -### Default Export Removed - -`uuid@3.x` was exporting the Version 4 UUID method as a default export: - -```javascript -const uuid = require('uuid'); // <== REMOVED! -``` - -This usage pattern was already discouraged in `uuid@3.x` and has been removed in `uuid@7.x`. +--- ----- -Markdown generated from [README_js.md](README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd) \ No newline at end of file +Markdown generated from [README_js.md](README_js.md) by <a href="https://github.com/broofa/runmd"><image height="13" src="https://camo.githubusercontent.com/5c7c603cd1e6a43370b0a5063d457e0dabb74cf317adc7baba183acb686ee8d0/687474703a2f2f692e696d6775722e636f6d2f634a4b6f3662552e706e67" /></a> diff --git a/node_modules/uuid/dist/bin/uuid b/node_modules/uuid/dist/bin/uuid deleted file mode 100755 index f38d2ee..0000000 --- a/node_modules/uuid/dist/bin/uuid +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -require('../uuid-bin'); diff --git a/node_modules/uuid/dist/cjs-browser/index.d.ts b/node_modules/uuid/dist/cjs-browser/index.d.ts new file mode 100644 index 0000000..d7d4edc --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/index.d.ts @@ -0,0 +1,15 @@ +export type * from './types.js'; +export { default as MAX } from './max.js'; +export { default as NIL } from './nil.js'; +export { default as parse } from './parse.js'; +export { default as stringify } from './stringify.js'; +export { default as v1 } from './v1.js'; +export { default as v1ToV6 } from './v1ToV6.js'; +export { default as v3 } from './v3.js'; +export { default as v4 } from './v4.js'; +export { default as v5 } from './v5.js'; +export { default as v6 } from './v6.js'; +export { default as v6ToV1 } from './v6ToV1.js'; +export { default as v7 } from './v7.js'; +export { default as validate } from './validate.js'; +export { default as version } from './version.js'; diff --git a/node_modules/uuid/dist/cjs-browser/index.js b/node_modules/uuid/dist/cjs-browser/index.js new file mode 100644 index 0000000..6148ea4 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/index.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.version = exports.validate = exports.v7 = exports.v6ToV1 = exports.v6 = exports.v5 = exports.v4 = exports.v3 = exports.v1ToV6 = exports.v1 = exports.stringify = exports.parse = exports.NIL = exports.MAX = void 0; +var max_js_1 = require("./max.js"); +Object.defineProperty(exports, "MAX", { enumerable: true, get: function () { return max_js_1.default; } }); +var nil_js_1 = require("./nil.js"); +Object.defineProperty(exports, "NIL", { enumerable: true, get: function () { return nil_js_1.default; } }); +var parse_js_1 = require("./parse.js"); +Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parse_js_1.default; } }); +var stringify_js_1 = require("./stringify.js"); +Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return stringify_js_1.default; } }); +var v1_js_1 = require("./v1.js"); +Object.defineProperty(exports, "v1", { enumerable: true, get: function () { return v1_js_1.default; } }); +var v1ToV6_js_1 = require("./v1ToV6.js"); +Object.defineProperty(exports, "v1ToV6", { enumerable: true, get: function () { return v1ToV6_js_1.default; } }); +var v3_js_1 = require("./v3.js"); +Object.defineProperty(exports, "v3", { enumerable: true, get: function () { return v3_js_1.default; } }); +var v4_js_1 = require("./v4.js"); +Object.defineProperty(exports, "v4", { enumerable: true, get: function () { return v4_js_1.default; } }); +var v5_js_1 = require("./v5.js"); +Object.defineProperty(exports, "v5", { enumerable: true, get: function () { return v5_js_1.default; } }); +var v6_js_1 = require("./v6.js"); +Object.defineProperty(exports, "v6", { enumerable: true, get: function () { return v6_js_1.default; } }); +var v6ToV1_js_1 = require("./v6ToV1.js"); +Object.defineProperty(exports, "v6ToV1", { enumerable: true, get: function () { return v6ToV1_js_1.default; } }); +var v7_js_1 = require("./v7.js"); +Object.defineProperty(exports, "v7", { enumerable: true, get: function () { return v7_js_1.default; } }); +var validate_js_1 = require("./validate.js"); +Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_js_1.default; } }); +var version_js_1 = require("./version.js"); +Object.defineProperty(exports, "version", { enumerable: true, get: function () { return version_js_1.default; } }); diff --git a/node_modules/uuid/dist/cjs-browser/max.d.ts b/node_modules/uuid/dist/cjs-browser/max.d.ts new file mode 100644 index 0000000..7a1e972 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/max.d.ts @@ -0,0 +1,2 @@ +declare const _default: "ffffffff-ffff-ffff-ffff-ffffffffffff"; +export default _default; diff --git a/node_modules/uuid/dist/cjs-browser/max.js b/node_modules/uuid/dist/cjs-browser/max.js new file mode 100644 index 0000000..7ba71ef --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/max.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = 'ffffffff-ffff-ffff-ffff-ffffffffffff'; diff --git a/node_modules/uuid/dist/cjs-browser/md5.d.ts b/node_modules/uuid/dist/cjs-browser/md5.d.ts new file mode 100644 index 0000000..5a55f51 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/md5.d.ts @@ -0,0 +1,2 @@ +declare function md5(bytes: Uint8Array): Uint8Array; +export default md5; diff --git a/node_modules/uuid/dist/cjs-browser/md5.js b/node_modules/uuid/dist/cjs-browser/md5.js new file mode 100644 index 0000000..004b3d6 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/md5.js @@ -0,0 +1,137 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function md5(bytes) { + const words = uint8ToUint32(bytes); + const md5Bytes = wordsToMd5(words, bytes.length * 8); + return uint32ToUint8(md5Bytes); +} +function uint32ToUint8(input) { + const bytes = new Uint8Array(input.length * 4); + for (let i = 0; i < input.length * 4; i++) { + bytes[i] = (input[i >> 2] >>> ((i % 4) * 8)) & 0xff; + } + return bytes; +} +function getOutputLength(inputLength8) { + return (((inputLength8 + 64) >>> 9) << 4) + 14 + 1; +} +function wordsToMd5(x, len) { + const xpad = new Uint32Array(getOutputLength(len)).fill(0); + xpad.set(x); + xpad[len >> 5] |= 0x80 << len % 32; + xpad[xpad.length - 1] = len; + x = xpad; + let a = 1732584193; + let b = -271733879; + let c = -1732584194; + let d = 271733878; + for (let i = 0; i < x.length; i += 16) { + const olda = a; + const oldb = b; + const oldc = c; + const oldd = d; + a = md5ff(a, b, c, d, x[i], 7, -680876936); + d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); + c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); + b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); + a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); + d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); + c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); + b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); + a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); + d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); + c = md5ff(c, d, a, b, x[i + 10], 17, -42063); + b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); + a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); + d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); + c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); + b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); + a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); + d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); + c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); + b = md5gg(b, c, d, a, x[i], 20, -373897302); + a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); + d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); + c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); + b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); + a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); + d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); + c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); + b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); + a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); + d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); + c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); + b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); + a = md5hh(a, b, c, d, x[i + 5], 4, -378558); + d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); + c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); + b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); + a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); + d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); + c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); + b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); + a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); + d = md5hh(d, a, b, c, x[i], 11, -358537222); + c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); + b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); + a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); + d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); + c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); + b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); + a = md5ii(a, b, c, d, x[i], 6, -198630844); + d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); + c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); + b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); + a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); + d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); + c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); + b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); + a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); + d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); + c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); + b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); + a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); + d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); + c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); + b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); + a = safeAdd(a, olda); + b = safeAdd(b, oldb); + c = safeAdd(c, oldc); + d = safeAdd(d, oldd); + } + return Uint32Array.of(a, b, c, d); +} +function uint8ToUint32(input) { + if (input.length === 0) { + return new Uint32Array(); + } + const output = new Uint32Array(getOutputLength(input.length * 8)).fill(0); + for (let i = 0; i < input.length; i++) { + output[i >> 2] |= (input[i] & 0xff) << ((i % 4) * 8); + } + return output; +} +function safeAdd(x, y) { + const lsw = (x & 0xffff) + (y & 0xffff); + const msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xffff); +} +function bitRotateLeft(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)); +} +function md5cmn(q, a, b, x, s, t) { + return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); +} +function md5ff(a, b, c, d, x, s, t) { + return md5cmn((b & c) | (~b & d), a, b, x, s, t); +} +function md5gg(a, b, c, d, x, s, t) { + return md5cmn((b & d) | (c & ~d), a, b, x, s, t); +} +function md5hh(a, b, c, d, x, s, t) { + return md5cmn(b ^ c ^ d, a, b, x, s, t); +} +function md5ii(a, b, c, d, x, s, t) { + return md5cmn(c ^ (b | ~d), a, b, x, s, t); +} +exports.default = md5; diff --git a/node_modules/uuid/dist/cjs-browser/native.d.ts b/node_modules/uuid/dist/cjs-browser/native.d.ts new file mode 100644 index 0000000..9418fd3 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/native.d.ts @@ -0,0 +1,4 @@ +declare const _default: { + randomUUID: false | (() => `${string}-${string}-${string}-${string}-${string}`); +}; +export default _default; diff --git a/node_modules/uuid/dist/cjs-browser/native.js b/node_modules/uuid/dist/cjs-browser/native.js new file mode 100644 index 0000000..7e31a2a --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/native.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto); +exports.default = { randomUUID }; diff --git a/node_modules/uuid/dist/cjs-browser/nil.d.ts b/node_modules/uuid/dist/cjs-browser/nil.d.ts new file mode 100644 index 0000000..b03bb98 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/nil.d.ts @@ -0,0 +1,2 @@ +declare const _default: "00000000-0000-0000-0000-000000000000"; +export default _default; diff --git a/node_modules/uuid/dist/cjs-browser/nil.js b/node_modules/uuid/dist/cjs-browser/nil.js new file mode 100644 index 0000000..5828aa4 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/nil.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = '00000000-0000-0000-0000-000000000000'; diff --git a/node_modules/uuid/dist/cjs-browser/package.json b/node_modules/uuid/dist/cjs-browser/package.json new file mode 100644 index 0000000..729ac4d --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} diff --git a/node_modules/uuid/dist/cjs-browser/parse.d.ts b/node_modules/uuid/dist/cjs-browser/parse.d.ts new file mode 100644 index 0000000..a316fb1 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/parse.d.ts @@ -0,0 +1,2 @@ +declare function parse(uuid: string): Uint8Array; +export default parse; diff --git a/node_modules/uuid/dist/cjs-browser/parse.js b/node_modules/uuid/dist/cjs-browser/parse.js new file mode 100644 index 0000000..d2fa8ca --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/parse.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const validate_js_1 = require("./validate.js"); +function parse(uuid) { + if (!(0, validate_js_1.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + let v; + return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff); +} +exports.default = parse; diff --git a/node_modules/uuid/dist/cjs-browser/regex.d.ts b/node_modules/uuid/dist/cjs-browser/regex.d.ts new file mode 100644 index 0000000..d39fa3f --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/regex.d.ts @@ -0,0 +1,2 @@ +declare const _default: RegExp; +export default _default; diff --git a/node_modules/uuid/dist/cjs-browser/regex.js b/node_modules/uuid/dist/cjs-browser/regex.js new file mode 100644 index 0000000..e3dde2a --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/regex.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i; diff --git a/node_modules/uuid/dist/cjs-browser/rng.d.ts b/node_modules/uuid/dist/cjs-browser/rng.d.ts new file mode 100644 index 0000000..73e60cf --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/rng.d.ts @@ -0,0 +1 @@ +export default function rng(): Uint8Array; diff --git a/node_modules/uuid/dist/cjs-browser/rng.js b/node_modules/uuid/dist/cjs-browser/rng.js new file mode 100644 index 0000000..155bcd7 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/rng.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +let getRandomValues; +const rnds8 = new Uint8Array(16); +function rng() { + if (!getRandomValues) { + if (typeof crypto === 'undefined' || !crypto.getRandomValues) { + throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); + } + getRandomValues = crypto.getRandomValues.bind(crypto); + } + return getRandomValues(rnds8); +} +exports.default = rng; diff --git a/node_modules/uuid/dist/cjs-browser/sha1.d.ts b/node_modules/uuid/dist/cjs-browser/sha1.d.ts new file mode 100644 index 0000000..a6552e5 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/sha1.d.ts @@ -0,0 +1,2 @@ +declare function sha1(bytes: Uint8Array): Uint8Array; +export default sha1; diff --git a/node_modules/uuid/dist/cjs-browser/sha1.js b/node_modules/uuid/dist/cjs-browser/sha1.js new file mode 100644 index 0000000..031c42c --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/sha1.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function f(s, x, y, z) { + switch (s) { + case 0: + return (x & y) ^ (~x & z); + case 1: + return x ^ y ^ z; + case 2: + return (x & y) ^ (x & z) ^ (y & z); + case 3: + return x ^ y ^ z; + } +} +function ROTL(x, n) { + return (x << n) | (x >>> (32 - n)); +} +function sha1(bytes) { + const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; + const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; + const newBytes = new Uint8Array(bytes.length + 1); + newBytes.set(bytes); + newBytes[bytes.length] = 0x80; + bytes = newBytes; + const l = bytes.length / 4 + 2; + const N = Math.ceil(l / 16); + const M = new Array(N); + for (let i = 0; i < N; ++i) { + const arr = new Uint32Array(16); + for (let j = 0; j < 16; ++j) { + arr[j] = + (bytes[i * 64 + j * 4] << 24) | + (bytes[i * 64 + j * 4 + 1] << 16) | + (bytes[i * 64 + j * 4 + 2] << 8) | + bytes[i * 64 + j * 4 + 3]; + } + M[i] = arr; + } + M[N - 1][14] = ((bytes.length - 1) * 8) / Math.pow(2, 32); + M[N - 1][14] = Math.floor(M[N - 1][14]); + M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff; + for (let i = 0; i < N; ++i) { + const W = new Uint32Array(80); + for (let t = 0; t < 16; ++t) { + W[t] = M[i][t]; + } + for (let t = 16; t < 80; ++t) { + W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); + } + let a = H[0]; + let b = H[1]; + let c = H[2]; + let d = H[3]; + let e = H[4]; + for (let t = 0; t < 80; ++t) { + const s = Math.floor(t / 20); + const T = (ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t]) >>> 0; + e = d; + d = c; + c = ROTL(b, 30) >>> 0; + b = a; + a = T; + } + H[0] = (H[0] + a) >>> 0; + H[1] = (H[1] + b) >>> 0; + H[2] = (H[2] + c) >>> 0; + H[3] = (H[3] + d) >>> 0; + H[4] = (H[4] + e) >>> 0; + } + return Uint8Array.of(H[0] >> 24, H[0] >> 16, H[0] >> 8, H[0], H[1] >> 24, H[1] >> 16, H[1] >> 8, H[1], H[2] >> 24, H[2] >> 16, H[2] >> 8, H[2], H[3] >> 24, H[3] >> 16, H[3] >> 8, H[3], H[4] >> 24, H[4] >> 16, H[4] >> 8, H[4]); +} +exports.default = sha1; diff --git a/node_modules/uuid/dist/cjs-browser/stringify.d.ts b/node_modules/uuid/dist/cjs-browser/stringify.d.ts new file mode 100644 index 0000000..16cb008 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/stringify.d.ts @@ -0,0 +1,3 @@ +export declare function unsafeStringify(arr: Uint8Array, offset?: number): string; +declare function stringify(arr: Uint8Array, offset?: number): string; +export default stringify; diff --git a/node_modules/uuid/dist/cjs-browser/stringify.js b/node_modules/uuid/dist/cjs-browser/stringify.js new file mode 100644 index 0000000..2ba27bb --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/stringify.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.unsafeStringify = void 0; +const validate_js_1 = require("./validate.js"); +const byteToHex = []; +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)); +} +function unsafeStringify(arr, offset = 0) { + return (byteToHex[arr[offset + 0]] + + byteToHex[arr[offset + 1]] + + byteToHex[arr[offset + 2]] + + byteToHex[arr[offset + 3]] + + '-' + + byteToHex[arr[offset + 4]] + + byteToHex[arr[offset + 5]] + + '-' + + byteToHex[arr[offset + 6]] + + byteToHex[arr[offset + 7]] + + '-' + + byteToHex[arr[offset + 8]] + + byteToHex[arr[offset + 9]] + + '-' + + byteToHex[arr[offset + 10]] + + byteToHex[arr[offset + 11]] + + byteToHex[arr[offset + 12]] + + byteToHex[arr[offset + 13]] + + byteToHex[arr[offset + 14]] + + byteToHex[arr[offset + 15]]).toLowerCase(); +} +exports.unsafeStringify = unsafeStringify; +function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset); + if (!(0, validate_js_1.default)(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + return uuid; +} +exports.default = stringify; diff --git a/node_modules/uuid/dist/cjs-browser/types.d.ts b/node_modules/uuid/dist/cjs-browser/types.d.ts new file mode 100644 index 0000000..ecaed97 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/types.d.ts @@ -0,0 +1,21 @@ +export type UUIDTypes<TBuf extends Uint8Array = Uint8Array> = string | TBuf; +export type Version1Options = { + node?: Uint8Array; + clockseq?: number; + random?: Uint8Array; + rng?: () => Uint8Array; + msecs?: number; + nsecs?: number; + _v6?: boolean; +}; +export type Version4Options = { + random?: Uint8Array; + rng?: () => Uint8Array; +}; +export type Version6Options = Version1Options; +export type Version7Options = { + random?: Uint8Array; + msecs?: number; + seq?: number; + rng?: () => Uint8Array; +}; diff --git a/node_modules/uuid/dist/cjs-browser/types.js b/node_modules/uuid/dist/cjs-browser/types.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts b/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/uuid/dist/cjs-browser/uuid-bin.js b/node_modules/uuid/dist/cjs-browser/uuid-bin.js new file mode 100644 index 0000000..d613137 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/uuid-bin.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assert = require("assert"); +const v1_js_1 = require("./v1.js"); +const v3_js_1 = require("./v3.js"); +const v4_js_1 = require("./v4.js"); +const v5_js_1 = require("./v5.js"); +const v6_js_1 = require("./v6.js"); +const v7_js_1 = require("./v7.js"); +function usage() { + console.log('Usage:'); + console.log(' uuid'); + console.log(' uuid v1'); + console.log(' uuid v3 <name> <namespace uuid>'); + console.log(' uuid v4'); + console.log(' uuid v5 <name> <namespace uuid>'); + console.log(' uuid v6'); + console.log(' uuid v7'); + console.log(' uuid --help'); + console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562'); +} +const args = process.argv.slice(2); +if (args.indexOf('--help') >= 0) { + usage(); + process.exit(0); +} +const version = args.shift() || 'v4'; +switch (version) { + case 'v1': + console.log((0, v1_js_1.default)()); + break; + case 'v3': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v3 name not specified'); + assert.ok(namespace != null, 'v3 namespace not specified'); + if (namespace === 'URL') { + namespace = v3_js_1.default.URL; + } + if (namespace === 'DNS') { + namespace = v3_js_1.default.DNS; + } + console.log((0, v3_js_1.default)(name, namespace)); + break; + } + case 'v4': + console.log((0, v4_js_1.default)()); + break; + case 'v5': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v5 name not specified'); + assert.ok(namespace != null, 'v5 namespace not specified'); + if (namespace === 'URL') { + namespace = v5_js_1.default.URL; + } + if (namespace === 'DNS') { + namespace = v5_js_1.default.DNS; + } + console.log((0, v5_js_1.default)(name, namespace)); + break; + } + case 'v6': + console.log((0, v6_js_1.default)()); + break; + case 'v7': + console.log((0, v7_js_1.default)()); + break; + default: + usage(); + process.exit(1); +} diff --git a/node_modules/uuid/dist/cjs-browser/v1.d.ts b/node_modules/uuid/dist/cjs-browser/v1.d.ts new file mode 100644 index 0000000..d8ecee0 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v1.d.ts @@ -0,0 +1,11 @@ +import { Version1Options } from './types.js'; +type V1State = { + node?: Uint8Array; + clockseq?: number; + msecs?: number; + nsecs?: number; +}; +declare function v1(options?: Version1Options, buf?: undefined, offset?: number): string; +declare function v1<Buf extends Uint8Array = Uint8Array>(options: Version1Options | undefined, buf: Buf, offset?: number): Buf; +export declare function updateV1State(state: V1State, now: number, rnds: Uint8Array): V1State; +export default v1; diff --git a/node_modules/uuid/dist/cjs-browser/v1.js b/node_modules/uuid/dist/cjs-browser/v1.js new file mode 100644 index 0000000..155b80d --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v1.js @@ -0,0 +1,87 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateV1State = void 0; +const rng_js_1 = require("./rng.js"); +const stringify_js_1 = require("./stringify.js"); +const _state = {}; +function v1(options, buf, offset) { + let bytes; + const isV6 = options?._v6 ?? false; + if (options) { + const optionsKeys = Object.keys(options); + if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') { + options = undefined; + } + } + if (options) { + bytes = v1Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset); + } + else { + const now = Date.now(); + const rnds = (0, rng_js_1.default)(); + updateV1State(_state, now, rnds); + bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset); + } + return buf ?? (0, stringify_js_1.unsafeStringify)(bytes); +} +function updateV1State(state, now, rnds) { + state.msecs ??= -Infinity; + state.nsecs ??= 0; + if (now === state.msecs) { + state.nsecs++; + if (state.nsecs >= 10000) { + state.node = undefined; + state.nsecs = 0; + } + } + else if (now > state.msecs) { + state.nsecs = 0; + } + else if (now < state.msecs) { + state.node = undefined; + } + if (!state.node) { + state.node = rnds.slice(10, 16); + state.node[0] |= 0x01; + state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff; + } + state.msecs = now; + return state; +} +exports.updateV1State = updateV1State; +function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + nsecs ??= 0; + clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff; + node ??= rnds.slice(10, 16); + msecs += 12219292800000; + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + buf[offset++] = (tl >>> 24) & 0xff; + buf[offset++] = (tl >>> 16) & 0xff; + buf[offset++] = (tl >>> 8) & 0xff; + buf[offset++] = tl & 0xff; + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff; + buf[offset++] = (tmh >>> 8) & 0xff; + buf[offset++] = tmh & 0xff; + buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10; + buf[offset++] = (tmh >>> 16) & 0xff; + buf[offset++] = (clockseq >>> 8) | 0x80; + buf[offset++] = clockseq & 0xff; + for (let n = 0; n < 6; ++n) { + buf[offset++] = node[n]; + } + return buf; +} +exports.default = v1; diff --git a/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts b/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts new file mode 100644 index 0000000..38eaaf0 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts @@ -0,0 +1,2 @@ +export default function v1ToV6(uuid: string): string; +export default function v1ToV6(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/cjs-browser/v1ToV6.js b/node_modules/uuid/dist/cjs-browser/v1ToV6.js new file mode 100644 index 0000000..daba2c3 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v1ToV6.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const parse_js_1 = require("./parse.js"); +const stringify_js_1 = require("./stringify.js"); +function v1ToV6(uuid) { + const v1Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid; + const v6Bytes = _v1ToV6(v1Bytes); + return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v6Bytes) : v6Bytes; +} +exports.default = v1ToV6; +function _v1ToV6(v1Bytes) { + return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]); +} diff --git a/node_modules/uuid/dist/cjs-browser/v3.d.ts b/node_modules/uuid/dist/cjs-browser/v3.d.ts new file mode 100644 index 0000000..5d1c434 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v3.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v3(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v3<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v3 { + var DNS: string; + var URL: string; +} +export default v3; diff --git a/node_modules/uuid/dist/cjs-browser/v3.js b/node_modules/uuid/dist/cjs-browser/v3.js new file mode 100644 index 0000000..d318d2a --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v3.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.URL = exports.DNS = void 0; +const md5_js_1 = require("./md5.js"); +const v35_js_1 = require("./v35.js"); +var v35_js_2 = require("./v35.js"); +Object.defineProperty(exports, "DNS", { enumerable: true, get: function () { return v35_js_2.DNS; } }); +Object.defineProperty(exports, "URL", { enumerable: true, get: function () { return v35_js_2.URL; } }); +function v3(value, namespace, buf, offset) { + return (0, v35_js_1.default)(0x30, md5_js_1.default, value, namespace, buf, offset); +} +v3.DNS = v35_js_1.DNS; +v3.URL = v35_js_1.URL; +exports.default = v3; diff --git a/node_modules/uuid/dist/cjs-browser/v35.d.ts b/node_modules/uuid/dist/cjs-browser/v35.d.ts new file mode 100644 index 0000000..4e6e9d5 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v35.d.ts @@ -0,0 +1,7 @@ +import { UUIDTypes } from './types.js'; +export declare function stringToBytes(str: string): Uint8Array; +export declare const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; +export declare const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; +type HashFunction = (bytes: Uint8Array) => Uint8Array; +export default function v35<TBuf extends Uint8Array = Uint8Array>(version: 0x30 | 0x50, hash: HashFunction, value: string | Uint8Array, namespace: UUIDTypes, buf?: TBuf, offset?: number): UUIDTypes<TBuf>; +export {}; diff --git a/node_modules/uuid/dist/cjs-browser/v35.js b/node_modules/uuid/dist/cjs-browser/v35.js new file mode 100644 index 0000000..b8b8e09 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v35.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.URL = exports.DNS = exports.stringToBytes = void 0; +const parse_js_1 = require("./parse.js"); +const stringify_js_1 = require("./stringify.js"); +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); + const bytes = new Uint8Array(str.length); + for (let i = 0; i < str.length; ++i) { + bytes[i] = str.charCodeAt(i); + } + return bytes; +} +exports.stringToBytes = stringToBytes; +exports.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +function v35(version, hash, value, namespace, buf, offset) { + const valueBytes = typeof value === 'string' ? stringToBytes(value) : value; + const namespaceBytes = typeof namespace === 'string' ? (0, parse_js_1.default)(namespace) : namespace; + if (typeof namespace === 'string') { + namespace = (0, parse_js_1.default)(namespace); + } + if (namespace?.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } + let bytes = new Uint8Array(16 + valueBytes.length); + bytes.set(namespaceBytes); + bytes.set(valueBytes, namespaceBytes.length); + bytes = hash(bytes); + bytes[6] = (bytes[6] & 0x0f) | version; + bytes[8] = (bytes[8] & 0x3f) | 0x80; + if (buf) { + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return (0, stringify_js_1.unsafeStringify)(bytes); +} +exports.default = v35; diff --git a/node_modules/uuid/dist/cjs-browser/v4.d.ts b/node_modules/uuid/dist/cjs-browser/v4.d.ts new file mode 100644 index 0000000..8205333 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v4.d.ts @@ -0,0 +1,4 @@ +import { Version4Options } from './types.js'; +declare function v4(options?: Version4Options, buf?: undefined, offset?: number): string; +declare function v4<TBuf extends Uint8Array = Uint8Array>(options: Version4Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v4; diff --git a/node_modules/uuid/dist/cjs-browser/v4.js b/node_modules/uuid/dist/cjs-browser/v4.js new file mode 100644 index 0000000..69c975e --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v4.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const native_js_1 = require("./native.js"); +const rng_js_1 = require("./rng.js"); +const stringify_js_1 = require("./stringify.js"); +function v4(options, buf, offset) { + if (native_js_1.default.randomUUID && !buf && !options) { + return native_js_1.default.randomUUID(); + } + options = options || {}; + const rnds = options.random ?? options.rng?.() ?? (0, rng_js_1.default)(); + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + if (buf) { + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return (0, stringify_js_1.unsafeStringify)(rnds); +} +exports.default = v4; diff --git a/node_modules/uuid/dist/cjs-browser/v5.d.ts b/node_modules/uuid/dist/cjs-browser/v5.d.ts new file mode 100644 index 0000000..0e2ff2f --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v5.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v5(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v5<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v5 { + var DNS: string; + var URL: string; +} +export default v5; diff --git a/node_modules/uuid/dist/cjs-browser/v5.js b/node_modules/uuid/dist/cjs-browser/v5.js new file mode 100644 index 0000000..c4239c2 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v5.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.URL = exports.DNS = void 0; +const sha1_js_1 = require("./sha1.js"); +const v35_js_1 = require("./v35.js"); +var v35_js_2 = require("./v35.js"); +Object.defineProperty(exports, "DNS", { enumerable: true, get: function () { return v35_js_2.DNS; } }); +Object.defineProperty(exports, "URL", { enumerable: true, get: function () { return v35_js_2.URL; } }); +function v5(value, namespace, buf, offset) { + return (0, v35_js_1.default)(0x50, sha1_js_1.default, value, namespace, buf, offset); +} +v5.DNS = v35_js_1.DNS; +v5.URL = v35_js_1.URL; +exports.default = v5; diff --git a/node_modules/uuid/dist/cjs-browser/v6.d.ts b/node_modules/uuid/dist/cjs-browser/v6.d.ts new file mode 100644 index 0000000..cabf4a0 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v6.d.ts @@ -0,0 +1,4 @@ +import { Version6Options } from './types.js'; +declare function v6(options?: Version6Options, buf?: undefined, offset?: number): string; +declare function v6<TBuf extends Uint8Array = Uint8Array>(options: Version6Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v6; diff --git a/node_modules/uuid/dist/cjs-browser/v6.js b/node_modules/uuid/dist/cjs-browser/v6.js new file mode 100644 index 0000000..a566d0a --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v6.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stringify_js_1 = require("./stringify.js"); +const v1_js_1 = require("./v1.js"); +const v1ToV6_js_1 = require("./v1ToV6.js"); +function v6(options, buf, offset) { + options ??= {}; + offset ??= 0; + let bytes = (0, v1_js_1.default)({ ...options, _v6: true }, new Uint8Array(16)); + bytes = (0, v1ToV6_js_1.default)(bytes); + if (buf) { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; i++) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return (0, stringify_js_1.unsafeStringify)(bytes); +} +exports.default = v6; diff --git a/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts b/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts new file mode 100644 index 0000000..3b3ffc2 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts @@ -0,0 +1,2 @@ +export default function v6ToV1(uuid: string): string; +export default function v6ToV1(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/cjs-browser/v6ToV1.js b/node_modules/uuid/dist/cjs-browser/v6ToV1.js new file mode 100644 index 0000000..9dcb661 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v6ToV1.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const parse_js_1 = require("./parse.js"); +const stringify_js_1 = require("./stringify.js"); +function v6ToV1(uuid) { + const v6Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid; + const v1Bytes = _v6ToV1(v6Bytes); + return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v1Bytes) : v1Bytes; +} +exports.default = v6ToV1; +function _v6ToV1(v6Bytes) { + return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]); +} diff --git a/node_modules/uuid/dist/cjs-browser/v7.d.ts b/node_modules/uuid/dist/cjs-browser/v7.d.ts new file mode 100644 index 0000000..f49b03d --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v7.d.ts @@ -0,0 +1,9 @@ +import { Version7Options } from './types.js'; +type V7State = { + msecs?: number; + seq?: number; +}; +declare function v7(options?: Version7Options, buf?: undefined, offset?: number): string; +declare function v7<TBuf extends Uint8Array = Uint8Array>(options: Version7Options | undefined, buf: TBuf, offset?: number): TBuf; +export declare function updateV7State(state: V7State, now: number, rnds: Uint8Array): V7State; +export default v7; diff --git a/node_modules/uuid/dist/cjs-browser/v7.js b/node_modules/uuid/dist/cjs-browser/v7.js new file mode 100644 index 0000000..697fe34 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/v7.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateV7State = void 0; +const rng_js_1 = require("./rng.js"); +const stringify_js_1 = require("./stringify.js"); +const _state = {}; +function v7(options, buf, offset) { + let bytes; + if (options) { + bytes = v7Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.seq, buf, offset); + } + else { + const now = Date.now(); + const rnds = (0, rng_js_1.default)(); + updateV7State(_state, now, rnds); + bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset); + } + return buf ?? (0, stringify_js_1.unsafeStringify)(bytes); +} +function updateV7State(state, now, rnds) { + state.msecs ??= -Infinity; + state.seq ??= 0; + if (now > state.msecs) { + state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + state.msecs = now; + } + else { + state.seq = (state.seq + 1) | 0; + if (state.seq === 0) { + state.msecs++; + } + } + return state; +} +exports.updateV7State = updateV7State; +function v7Bytes(rnds, msecs, seq, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + buf[offset++] = (msecs / 0x10000000000) & 0xff; + buf[offset++] = (msecs / 0x100000000) & 0xff; + buf[offset++] = (msecs / 0x1000000) & 0xff; + buf[offset++] = (msecs / 0x10000) & 0xff; + buf[offset++] = (msecs / 0x100) & 0xff; + buf[offset++] = msecs & 0xff; + buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f); + buf[offset++] = (seq >>> 20) & 0xff; + buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f); + buf[offset++] = (seq >>> 6) & 0xff; + buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03); + buf[offset++] = rnds[11]; + buf[offset++] = rnds[12]; + buf[offset++] = rnds[13]; + buf[offset++] = rnds[14]; + buf[offset++] = rnds[15]; + return buf; +} +exports.default = v7; diff --git a/node_modules/uuid/dist/cjs-browser/validate.d.ts b/node_modules/uuid/dist/cjs-browser/validate.d.ts new file mode 100644 index 0000000..57da03d --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/validate.d.ts @@ -0,0 +1,2 @@ +declare function validate(uuid: unknown): boolean; +export default validate; diff --git a/node_modules/uuid/dist/cjs-browser/validate.js b/node_modules/uuid/dist/cjs-browser/validate.js new file mode 100644 index 0000000..89733b0 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/validate.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const regex_js_1 = require("./regex.js"); +function validate(uuid) { + return typeof uuid === 'string' && regex_js_1.default.test(uuid); +} +exports.default = validate; diff --git a/node_modules/uuid/dist/cjs-browser/version.d.ts b/node_modules/uuid/dist/cjs-browser/version.d.ts new file mode 100644 index 0000000..f1948dc --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/version.d.ts @@ -0,0 +1,2 @@ +declare function version(uuid: string): number; +export default version; diff --git a/node_modules/uuid/dist/cjs-browser/version.js b/node_modules/uuid/dist/cjs-browser/version.js new file mode 100644 index 0000000..05ecd00 --- /dev/null +++ b/node_modules/uuid/dist/cjs-browser/version.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const validate_js_1 = require("./validate.js"); +function version(uuid) { + if (!(0, validate_js_1.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + return parseInt(uuid.slice(14, 15), 16); +} +exports.default = version; diff --git a/node_modules/uuid/dist/cjs/index.d.ts b/node_modules/uuid/dist/cjs/index.d.ts new file mode 100644 index 0000000..d7d4edc --- /dev/null +++ b/node_modules/uuid/dist/cjs/index.d.ts @@ -0,0 +1,15 @@ +export type * from './types.js'; +export { default as MAX } from './max.js'; +export { default as NIL } from './nil.js'; +export { default as parse } from './parse.js'; +export { default as stringify } from './stringify.js'; +export { default as v1 } from './v1.js'; +export { default as v1ToV6 } from './v1ToV6.js'; +export { default as v3 } from './v3.js'; +export { default as v4 } from './v4.js'; +export { default as v5 } from './v5.js'; +export { default as v6 } from './v6.js'; +export { default as v6ToV1 } from './v6ToV1.js'; +export { default as v7 } from './v7.js'; +export { default as validate } from './validate.js'; +export { default as version } from './version.js'; diff --git a/node_modules/uuid/dist/cjs/index.js b/node_modules/uuid/dist/cjs/index.js new file mode 100644 index 0000000..6148ea4 --- /dev/null +++ b/node_modules/uuid/dist/cjs/index.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.version = exports.validate = exports.v7 = exports.v6ToV1 = exports.v6 = exports.v5 = exports.v4 = exports.v3 = exports.v1ToV6 = exports.v1 = exports.stringify = exports.parse = exports.NIL = exports.MAX = void 0; +var max_js_1 = require("./max.js"); +Object.defineProperty(exports, "MAX", { enumerable: true, get: function () { return max_js_1.default; } }); +var nil_js_1 = require("./nil.js"); +Object.defineProperty(exports, "NIL", { enumerable: true, get: function () { return nil_js_1.default; } }); +var parse_js_1 = require("./parse.js"); +Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parse_js_1.default; } }); +var stringify_js_1 = require("./stringify.js"); +Object.defineProperty(exports, "stringify", { enumerable: true, get: function () { return stringify_js_1.default; } }); +var v1_js_1 = require("./v1.js"); +Object.defineProperty(exports, "v1", { enumerable: true, get: function () { return v1_js_1.default; } }); +var v1ToV6_js_1 = require("./v1ToV6.js"); +Object.defineProperty(exports, "v1ToV6", { enumerable: true, get: function () { return v1ToV6_js_1.default; } }); +var v3_js_1 = require("./v3.js"); +Object.defineProperty(exports, "v3", { enumerable: true, get: function () { return v3_js_1.default; } }); +var v4_js_1 = require("./v4.js"); +Object.defineProperty(exports, "v4", { enumerable: true, get: function () { return v4_js_1.default; } }); +var v5_js_1 = require("./v5.js"); +Object.defineProperty(exports, "v5", { enumerable: true, get: function () { return v5_js_1.default; } }); +var v6_js_1 = require("./v6.js"); +Object.defineProperty(exports, "v6", { enumerable: true, get: function () { return v6_js_1.default; } }); +var v6ToV1_js_1 = require("./v6ToV1.js"); +Object.defineProperty(exports, "v6ToV1", { enumerable: true, get: function () { return v6ToV1_js_1.default; } }); +var v7_js_1 = require("./v7.js"); +Object.defineProperty(exports, "v7", { enumerable: true, get: function () { return v7_js_1.default; } }); +var validate_js_1 = require("./validate.js"); +Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_js_1.default; } }); +var version_js_1 = require("./version.js"); +Object.defineProperty(exports, "version", { enumerable: true, get: function () { return version_js_1.default; } }); diff --git a/node_modules/uuid/dist/cjs/max.d.ts b/node_modules/uuid/dist/cjs/max.d.ts new file mode 100644 index 0000000..7a1e972 --- /dev/null +++ b/node_modules/uuid/dist/cjs/max.d.ts @@ -0,0 +1,2 @@ +declare const _default: "ffffffff-ffff-ffff-ffff-ffffffffffff"; +export default _default; diff --git a/node_modules/uuid/dist/cjs/max.js b/node_modules/uuid/dist/cjs/max.js new file mode 100644 index 0000000..7ba71ef --- /dev/null +++ b/node_modules/uuid/dist/cjs/max.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = 'ffffffff-ffff-ffff-ffff-ffffffffffff'; diff --git a/node_modules/uuid/dist/cjs/md5.d.ts b/node_modules/uuid/dist/cjs/md5.d.ts new file mode 100644 index 0000000..f8f6ecf --- /dev/null +++ b/node_modules/uuid/dist/cjs/md5.d.ts @@ -0,0 +1,4 @@ +/// <reference types="node" /> +/// <reference types="node" /> +declare function md5(bytes: Uint8Array): Buffer; +export default md5; diff --git a/node_modules/uuid/dist/cjs/md5.js b/node_modules/uuid/dist/cjs/md5.js new file mode 100644 index 0000000..7665013 --- /dev/null +++ b/node_modules/uuid/dist/cjs/md5.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const crypto_1 = require("crypto"); +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } + else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + return (0, crypto_1.createHash)('md5').update(bytes).digest(); +} +exports.default = md5; diff --git a/node_modules/uuid/dist/cjs/native.d.ts b/node_modules/uuid/dist/cjs/native.d.ts new file mode 100644 index 0000000..2b6c756 --- /dev/null +++ b/node_modules/uuid/dist/cjs/native.d.ts @@ -0,0 +1,6 @@ +/// <reference types="node" /> +import { randomUUID } from 'crypto'; +declare const _default: { + randomUUID: typeof randomUUID; +}; +export default _default; diff --git a/node_modules/uuid/dist/cjs/native.js b/node_modules/uuid/dist/cjs/native.js new file mode 100644 index 0000000..1013e98 --- /dev/null +++ b/node_modules/uuid/dist/cjs/native.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const crypto_1 = require("crypto"); +exports.default = { randomUUID: crypto_1.randomUUID }; diff --git a/node_modules/uuid/dist/cjs/nil.d.ts b/node_modules/uuid/dist/cjs/nil.d.ts new file mode 100644 index 0000000..b03bb98 --- /dev/null +++ b/node_modules/uuid/dist/cjs/nil.d.ts @@ -0,0 +1,2 @@ +declare const _default: "00000000-0000-0000-0000-000000000000"; +export default _default; diff --git a/node_modules/uuid/dist/cjs/nil.js b/node_modules/uuid/dist/cjs/nil.js new file mode 100644 index 0000000..5828aa4 --- /dev/null +++ b/node_modules/uuid/dist/cjs/nil.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = '00000000-0000-0000-0000-000000000000'; diff --git a/node_modules/uuid/dist/cjs/package.json b/node_modules/uuid/dist/cjs/package.json new file mode 100644 index 0000000..729ac4d --- /dev/null +++ b/node_modules/uuid/dist/cjs/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} diff --git a/node_modules/uuid/dist/cjs/parse.d.ts b/node_modules/uuid/dist/cjs/parse.d.ts new file mode 100644 index 0000000..a316fb1 --- /dev/null +++ b/node_modules/uuid/dist/cjs/parse.d.ts @@ -0,0 +1,2 @@ +declare function parse(uuid: string): Uint8Array; +export default parse; diff --git a/node_modules/uuid/dist/cjs/parse.js b/node_modules/uuid/dist/cjs/parse.js new file mode 100644 index 0000000..d2fa8ca --- /dev/null +++ b/node_modules/uuid/dist/cjs/parse.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const validate_js_1 = require("./validate.js"); +function parse(uuid) { + if (!(0, validate_js_1.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + let v; + return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff); +} +exports.default = parse; diff --git a/node_modules/uuid/dist/cjs/regex.d.ts b/node_modules/uuid/dist/cjs/regex.d.ts new file mode 100644 index 0000000..d39fa3f --- /dev/null +++ b/node_modules/uuid/dist/cjs/regex.d.ts @@ -0,0 +1,2 @@ +declare const _default: RegExp; +export default _default; diff --git a/node_modules/uuid/dist/cjs/regex.js b/node_modules/uuid/dist/cjs/regex.js new file mode 100644 index 0000000..e3dde2a --- /dev/null +++ b/node_modules/uuid/dist/cjs/regex.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i; diff --git a/node_modules/uuid/dist/cjs/rng.d.ts b/node_modules/uuid/dist/cjs/rng.d.ts new file mode 100644 index 0000000..73e60cf --- /dev/null +++ b/node_modules/uuid/dist/cjs/rng.d.ts @@ -0,0 +1 @@ +export default function rng(): Uint8Array; diff --git a/node_modules/uuid/dist/cjs/rng.js b/node_modules/uuid/dist/cjs/rng.js new file mode 100644 index 0000000..8f5458e --- /dev/null +++ b/node_modules/uuid/dist/cjs/rng.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const crypto_1 = require("crypto"); +const rnds8Pool = new Uint8Array(256); +let poolPtr = rnds8Pool.length; +function rng() { + if (poolPtr > rnds8Pool.length - 16) { + (0, crypto_1.randomFillSync)(rnds8Pool); + poolPtr = 0; + } + return rnds8Pool.slice(poolPtr, (poolPtr += 16)); +} +exports.default = rng; diff --git a/node_modules/uuid/dist/cjs/sha1.d.ts b/node_modules/uuid/dist/cjs/sha1.d.ts new file mode 100644 index 0000000..dfdc2ea --- /dev/null +++ b/node_modules/uuid/dist/cjs/sha1.d.ts @@ -0,0 +1,4 @@ +/// <reference types="node" /> +/// <reference types="node" /> +declare function sha1(bytes: Uint8Array): Buffer; +export default sha1; diff --git a/node_modules/uuid/dist/cjs/sha1.js b/node_modules/uuid/dist/cjs/sha1.js new file mode 100644 index 0000000..dccedf5 --- /dev/null +++ b/node_modules/uuid/dist/cjs/sha1.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const crypto_1 = require("crypto"); +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } + else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + return (0, crypto_1.createHash)('sha1').update(bytes).digest(); +} +exports.default = sha1; diff --git a/node_modules/uuid/dist/cjs/stringify.d.ts b/node_modules/uuid/dist/cjs/stringify.d.ts new file mode 100644 index 0000000..16cb008 --- /dev/null +++ b/node_modules/uuid/dist/cjs/stringify.d.ts @@ -0,0 +1,3 @@ +export declare function unsafeStringify(arr: Uint8Array, offset?: number): string; +declare function stringify(arr: Uint8Array, offset?: number): string; +export default stringify; diff --git a/node_modules/uuid/dist/cjs/stringify.js b/node_modules/uuid/dist/cjs/stringify.js new file mode 100644 index 0000000..2ba27bb --- /dev/null +++ b/node_modules/uuid/dist/cjs/stringify.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.unsafeStringify = void 0; +const validate_js_1 = require("./validate.js"); +const byteToHex = []; +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)); +} +function unsafeStringify(arr, offset = 0) { + return (byteToHex[arr[offset + 0]] + + byteToHex[arr[offset + 1]] + + byteToHex[arr[offset + 2]] + + byteToHex[arr[offset + 3]] + + '-' + + byteToHex[arr[offset + 4]] + + byteToHex[arr[offset + 5]] + + '-' + + byteToHex[arr[offset + 6]] + + byteToHex[arr[offset + 7]] + + '-' + + byteToHex[arr[offset + 8]] + + byteToHex[arr[offset + 9]] + + '-' + + byteToHex[arr[offset + 10]] + + byteToHex[arr[offset + 11]] + + byteToHex[arr[offset + 12]] + + byteToHex[arr[offset + 13]] + + byteToHex[arr[offset + 14]] + + byteToHex[arr[offset + 15]]).toLowerCase(); +} +exports.unsafeStringify = unsafeStringify; +function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset); + if (!(0, validate_js_1.default)(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + return uuid; +} +exports.default = stringify; diff --git a/node_modules/uuid/dist/cjs/types.d.ts b/node_modules/uuid/dist/cjs/types.d.ts new file mode 100644 index 0000000..ecaed97 --- /dev/null +++ b/node_modules/uuid/dist/cjs/types.d.ts @@ -0,0 +1,21 @@ +export type UUIDTypes<TBuf extends Uint8Array = Uint8Array> = string | TBuf; +export type Version1Options = { + node?: Uint8Array; + clockseq?: number; + random?: Uint8Array; + rng?: () => Uint8Array; + msecs?: number; + nsecs?: number; + _v6?: boolean; +}; +export type Version4Options = { + random?: Uint8Array; + rng?: () => Uint8Array; +}; +export type Version6Options = Version1Options; +export type Version7Options = { + random?: Uint8Array; + msecs?: number; + seq?: number; + rng?: () => Uint8Array; +}; diff --git a/node_modules/uuid/dist/cjs/types.js b/node_modules/uuid/dist/cjs/types.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/uuid/dist/cjs/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/uuid/dist/cjs/uuid-bin.d.ts b/node_modules/uuid/dist/cjs/uuid-bin.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/uuid/dist/cjs/uuid-bin.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/uuid/dist/cjs/uuid-bin.js b/node_modules/uuid/dist/cjs/uuid-bin.js new file mode 100644 index 0000000..d613137 --- /dev/null +++ b/node_modules/uuid/dist/cjs/uuid-bin.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assert = require("assert"); +const v1_js_1 = require("./v1.js"); +const v3_js_1 = require("./v3.js"); +const v4_js_1 = require("./v4.js"); +const v5_js_1 = require("./v5.js"); +const v6_js_1 = require("./v6.js"); +const v7_js_1 = require("./v7.js"); +function usage() { + console.log('Usage:'); + console.log(' uuid'); + console.log(' uuid v1'); + console.log(' uuid v3 <name> <namespace uuid>'); + console.log(' uuid v4'); + console.log(' uuid v5 <name> <namespace uuid>'); + console.log(' uuid v6'); + console.log(' uuid v7'); + console.log(' uuid --help'); + console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562'); +} +const args = process.argv.slice(2); +if (args.indexOf('--help') >= 0) { + usage(); + process.exit(0); +} +const version = args.shift() || 'v4'; +switch (version) { + case 'v1': + console.log((0, v1_js_1.default)()); + break; + case 'v3': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v3 name not specified'); + assert.ok(namespace != null, 'v3 namespace not specified'); + if (namespace === 'URL') { + namespace = v3_js_1.default.URL; + } + if (namespace === 'DNS') { + namespace = v3_js_1.default.DNS; + } + console.log((0, v3_js_1.default)(name, namespace)); + break; + } + case 'v4': + console.log((0, v4_js_1.default)()); + break; + case 'v5': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v5 name not specified'); + assert.ok(namespace != null, 'v5 namespace not specified'); + if (namespace === 'URL') { + namespace = v5_js_1.default.URL; + } + if (namespace === 'DNS') { + namespace = v5_js_1.default.DNS; + } + console.log((0, v5_js_1.default)(name, namespace)); + break; + } + case 'v6': + console.log((0, v6_js_1.default)()); + break; + case 'v7': + console.log((0, v7_js_1.default)()); + break; + default: + usage(); + process.exit(1); +} diff --git a/node_modules/uuid/dist/cjs/v1.d.ts b/node_modules/uuid/dist/cjs/v1.d.ts new file mode 100644 index 0000000..d8ecee0 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v1.d.ts @@ -0,0 +1,11 @@ +import { Version1Options } from './types.js'; +type V1State = { + node?: Uint8Array; + clockseq?: number; + msecs?: number; + nsecs?: number; +}; +declare function v1(options?: Version1Options, buf?: undefined, offset?: number): string; +declare function v1<Buf extends Uint8Array = Uint8Array>(options: Version1Options | undefined, buf: Buf, offset?: number): Buf; +export declare function updateV1State(state: V1State, now: number, rnds: Uint8Array): V1State; +export default v1; diff --git a/node_modules/uuid/dist/cjs/v1.js b/node_modules/uuid/dist/cjs/v1.js new file mode 100644 index 0000000..155b80d --- /dev/null +++ b/node_modules/uuid/dist/cjs/v1.js @@ -0,0 +1,87 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateV1State = void 0; +const rng_js_1 = require("./rng.js"); +const stringify_js_1 = require("./stringify.js"); +const _state = {}; +function v1(options, buf, offset) { + let bytes; + const isV6 = options?._v6 ?? false; + if (options) { + const optionsKeys = Object.keys(options); + if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') { + options = undefined; + } + } + if (options) { + bytes = v1Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset); + } + else { + const now = Date.now(); + const rnds = (0, rng_js_1.default)(); + updateV1State(_state, now, rnds); + bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset); + } + return buf ?? (0, stringify_js_1.unsafeStringify)(bytes); +} +function updateV1State(state, now, rnds) { + state.msecs ??= -Infinity; + state.nsecs ??= 0; + if (now === state.msecs) { + state.nsecs++; + if (state.nsecs >= 10000) { + state.node = undefined; + state.nsecs = 0; + } + } + else if (now > state.msecs) { + state.nsecs = 0; + } + else if (now < state.msecs) { + state.node = undefined; + } + if (!state.node) { + state.node = rnds.slice(10, 16); + state.node[0] |= 0x01; + state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff; + } + state.msecs = now; + return state; +} +exports.updateV1State = updateV1State; +function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + nsecs ??= 0; + clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff; + node ??= rnds.slice(10, 16); + msecs += 12219292800000; + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + buf[offset++] = (tl >>> 24) & 0xff; + buf[offset++] = (tl >>> 16) & 0xff; + buf[offset++] = (tl >>> 8) & 0xff; + buf[offset++] = tl & 0xff; + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff; + buf[offset++] = (tmh >>> 8) & 0xff; + buf[offset++] = tmh & 0xff; + buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10; + buf[offset++] = (tmh >>> 16) & 0xff; + buf[offset++] = (clockseq >>> 8) | 0x80; + buf[offset++] = clockseq & 0xff; + for (let n = 0; n < 6; ++n) { + buf[offset++] = node[n]; + } + return buf; +} +exports.default = v1; diff --git a/node_modules/uuid/dist/cjs/v1ToV6.d.ts b/node_modules/uuid/dist/cjs/v1ToV6.d.ts new file mode 100644 index 0000000..38eaaf0 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v1ToV6.d.ts @@ -0,0 +1,2 @@ +export default function v1ToV6(uuid: string): string; +export default function v1ToV6(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/cjs/v1ToV6.js b/node_modules/uuid/dist/cjs/v1ToV6.js new file mode 100644 index 0000000..daba2c3 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v1ToV6.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const parse_js_1 = require("./parse.js"); +const stringify_js_1 = require("./stringify.js"); +function v1ToV6(uuid) { + const v1Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid; + const v6Bytes = _v1ToV6(v1Bytes); + return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v6Bytes) : v6Bytes; +} +exports.default = v1ToV6; +function _v1ToV6(v1Bytes) { + return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]); +} diff --git a/node_modules/uuid/dist/cjs/v3.d.ts b/node_modules/uuid/dist/cjs/v3.d.ts new file mode 100644 index 0000000..5d1c434 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v3.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v3(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v3<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v3 { + var DNS: string; + var URL: string; +} +export default v3; diff --git a/node_modules/uuid/dist/cjs/v3.js b/node_modules/uuid/dist/cjs/v3.js new file mode 100644 index 0000000..d318d2a --- /dev/null +++ b/node_modules/uuid/dist/cjs/v3.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.URL = exports.DNS = void 0; +const md5_js_1 = require("./md5.js"); +const v35_js_1 = require("./v35.js"); +var v35_js_2 = require("./v35.js"); +Object.defineProperty(exports, "DNS", { enumerable: true, get: function () { return v35_js_2.DNS; } }); +Object.defineProperty(exports, "URL", { enumerable: true, get: function () { return v35_js_2.URL; } }); +function v3(value, namespace, buf, offset) { + return (0, v35_js_1.default)(0x30, md5_js_1.default, value, namespace, buf, offset); +} +v3.DNS = v35_js_1.DNS; +v3.URL = v35_js_1.URL; +exports.default = v3; diff --git a/node_modules/uuid/dist/cjs/v35.d.ts b/node_modules/uuid/dist/cjs/v35.d.ts new file mode 100644 index 0000000..4e6e9d5 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v35.d.ts @@ -0,0 +1,7 @@ +import { UUIDTypes } from './types.js'; +export declare function stringToBytes(str: string): Uint8Array; +export declare const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; +export declare const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; +type HashFunction = (bytes: Uint8Array) => Uint8Array; +export default function v35<TBuf extends Uint8Array = Uint8Array>(version: 0x30 | 0x50, hash: HashFunction, value: string | Uint8Array, namespace: UUIDTypes, buf?: TBuf, offset?: number): UUIDTypes<TBuf>; +export {}; diff --git a/node_modules/uuid/dist/cjs/v35.js b/node_modules/uuid/dist/cjs/v35.js new file mode 100644 index 0000000..b8b8e09 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v35.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.URL = exports.DNS = exports.stringToBytes = void 0; +const parse_js_1 = require("./parse.js"); +const stringify_js_1 = require("./stringify.js"); +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); + const bytes = new Uint8Array(str.length); + for (let i = 0; i < str.length; ++i) { + bytes[i] = str.charCodeAt(i); + } + return bytes; +} +exports.stringToBytes = stringToBytes; +exports.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +function v35(version, hash, value, namespace, buf, offset) { + const valueBytes = typeof value === 'string' ? stringToBytes(value) : value; + const namespaceBytes = typeof namespace === 'string' ? (0, parse_js_1.default)(namespace) : namespace; + if (typeof namespace === 'string') { + namespace = (0, parse_js_1.default)(namespace); + } + if (namespace?.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } + let bytes = new Uint8Array(16 + valueBytes.length); + bytes.set(namespaceBytes); + bytes.set(valueBytes, namespaceBytes.length); + bytes = hash(bytes); + bytes[6] = (bytes[6] & 0x0f) | version; + bytes[8] = (bytes[8] & 0x3f) | 0x80; + if (buf) { + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return (0, stringify_js_1.unsafeStringify)(bytes); +} +exports.default = v35; diff --git a/node_modules/uuid/dist/cjs/v4.d.ts b/node_modules/uuid/dist/cjs/v4.d.ts new file mode 100644 index 0000000..8205333 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v4.d.ts @@ -0,0 +1,4 @@ +import { Version4Options } from './types.js'; +declare function v4(options?: Version4Options, buf?: undefined, offset?: number): string; +declare function v4<TBuf extends Uint8Array = Uint8Array>(options: Version4Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v4; diff --git a/node_modules/uuid/dist/cjs/v4.js b/node_modules/uuid/dist/cjs/v4.js new file mode 100644 index 0000000..69c975e --- /dev/null +++ b/node_modules/uuid/dist/cjs/v4.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const native_js_1 = require("./native.js"); +const rng_js_1 = require("./rng.js"); +const stringify_js_1 = require("./stringify.js"); +function v4(options, buf, offset) { + if (native_js_1.default.randomUUID && !buf && !options) { + return native_js_1.default.randomUUID(); + } + options = options || {}; + const rnds = options.random ?? options.rng?.() ?? (0, rng_js_1.default)(); + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + if (buf) { + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return (0, stringify_js_1.unsafeStringify)(rnds); +} +exports.default = v4; diff --git a/node_modules/uuid/dist/cjs/v5.d.ts b/node_modules/uuid/dist/cjs/v5.d.ts new file mode 100644 index 0000000..0e2ff2f --- /dev/null +++ b/node_modules/uuid/dist/cjs/v5.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v5(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v5<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v5 { + var DNS: string; + var URL: string; +} +export default v5; diff --git a/node_modules/uuid/dist/cjs/v5.js b/node_modules/uuid/dist/cjs/v5.js new file mode 100644 index 0000000..c4239c2 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v5.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.URL = exports.DNS = void 0; +const sha1_js_1 = require("./sha1.js"); +const v35_js_1 = require("./v35.js"); +var v35_js_2 = require("./v35.js"); +Object.defineProperty(exports, "DNS", { enumerable: true, get: function () { return v35_js_2.DNS; } }); +Object.defineProperty(exports, "URL", { enumerable: true, get: function () { return v35_js_2.URL; } }); +function v5(value, namespace, buf, offset) { + return (0, v35_js_1.default)(0x50, sha1_js_1.default, value, namespace, buf, offset); +} +v5.DNS = v35_js_1.DNS; +v5.URL = v35_js_1.URL; +exports.default = v5; diff --git a/node_modules/uuid/dist/cjs/v6.d.ts b/node_modules/uuid/dist/cjs/v6.d.ts new file mode 100644 index 0000000..cabf4a0 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v6.d.ts @@ -0,0 +1,4 @@ +import { Version6Options } from './types.js'; +declare function v6(options?: Version6Options, buf?: undefined, offset?: number): string; +declare function v6<TBuf extends Uint8Array = Uint8Array>(options: Version6Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v6; diff --git a/node_modules/uuid/dist/cjs/v6.js b/node_modules/uuid/dist/cjs/v6.js new file mode 100644 index 0000000..a566d0a --- /dev/null +++ b/node_modules/uuid/dist/cjs/v6.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stringify_js_1 = require("./stringify.js"); +const v1_js_1 = require("./v1.js"); +const v1ToV6_js_1 = require("./v1ToV6.js"); +function v6(options, buf, offset) { + options ??= {}; + offset ??= 0; + let bytes = (0, v1_js_1.default)({ ...options, _v6: true }, new Uint8Array(16)); + bytes = (0, v1ToV6_js_1.default)(bytes); + if (buf) { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; i++) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return (0, stringify_js_1.unsafeStringify)(bytes); +} +exports.default = v6; diff --git a/node_modules/uuid/dist/cjs/v6ToV1.d.ts b/node_modules/uuid/dist/cjs/v6ToV1.d.ts new file mode 100644 index 0000000..3b3ffc2 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v6ToV1.d.ts @@ -0,0 +1,2 @@ +export default function v6ToV1(uuid: string): string; +export default function v6ToV1(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/cjs/v6ToV1.js b/node_modules/uuid/dist/cjs/v6ToV1.js new file mode 100644 index 0000000..9dcb661 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v6ToV1.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const parse_js_1 = require("./parse.js"); +const stringify_js_1 = require("./stringify.js"); +function v6ToV1(uuid) { + const v6Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid; + const v1Bytes = _v6ToV1(v6Bytes); + return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v1Bytes) : v1Bytes; +} +exports.default = v6ToV1; +function _v6ToV1(v6Bytes) { + return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]); +} diff --git a/node_modules/uuid/dist/cjs/v7.d.ts b/node_modules/uuid/dist/cjs/v7.d.ts new file mode 100644 index 0000000..f49b03d --- /dev/null +++ b/node_modules/uuid/dist/cjs/v7.d.ts @@ -0,0 +1,9 @@ +import { Version7Options } from './types.js'; +type V7State = { + msecs?: number; + seq?: number; +}; +declare function v7(options?: Version7Options, buf?: undefined, offset?: number): string; +declare function v7<TBuf extends Uint8Array = Uint8Array>(options: Version7Options | undefined, buf: TBuf, offset?: number): TBuf; +export declare function updateV7State(state: V7State, now: number, rnds: Uint8Array): V7State; +export default v7; diff --git a/node_modules/uuid/dist/cjs/v7.js b/node_modules/uuid/dist/cjs/v7.js new file mode 100644 index 0000000..697fe34 --- /dev/null +++ b/node_modules/uuid/dist/cjs/v7.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateV7State = void 0; +const rng_js_1 = require("./rng.js"); +const stringify_js_1 = require("./stringify.js"); +const _state = {}; +function v7(options, buf, offset) { + let bytes; + if (options) { + bytes = v7Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.seq, buf, offset); + } + else { + const now = Date.now(); + const rnds = (0, rng_js_1.default)(); + updateV7State(_state, now, rnds); + bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset); + } + return buf ?? (0, stringify_js_1.unsafeStringify)(bytes); +} +function updateV7State(state, now, rnds) { + state.msecs ??= -Infinity; + state.seq ??= 0; + if (now > state.msecs) { + state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + state.msecs = now; + } + else { + state.seq = (state.seq + 1) | 0; + if (state.seq === 0) { + state.msecs++; + } + } + return state; +} +exports.updateV7State = updateV7State; +function v7Bytes(rnds, msecs, seq, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + buf[offset++] = (msecs / 0x10000000000) & 0xff; + buf[offset++] = (msecs / 0x100000000) & 0xff; + buf[offset++] = (msecs / 0x1000000) & 0xff; + buf[offset++] = (msecs / 0x10000) & 0xff; + buf[offset++] = (msecs / 0x100) & 0xff; + buf[offset++] = msecs & 0xff; + buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f); + buf[offset++] = (seq >>> 20) & 0xff; + buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f); + buf[offset++] = (seq >>> 6) & 0xff; + buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03); + buf[offset++] = rnds[11]; + buf[offset++] = rnds[12]; + buf[offset++] = rnds[13]; + buf[offset++] = rnds[14]; + buf[offset++] = rnds[15]; + return buf; +} +exports.default = v7; diff --git a/node_modules/uuid/dist/cjs/validate.d.ts b/node_modules/uuid/dist/cjs/validate.d.ts new file mode 100644 index 0000000..57da03d --- /dev/null +++ b/node_modules/uuid/dist/cjs/validate.d.ts @@ -0,0 +1,2 @@ +declare function validate(uuid: unknown): boolean; +export default validate; diff --git a/node_modules/uuid/dist/cjs/validate.js b/node_modules/uuid/dist/cjs/validate.js new file mode 100644 index 0000000..89733b0 --- /dev/null +++ b/node_modules/uuid/dist/cjs/validate.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const regex_js_1 = require("./regex.js"); +function validate(uuid) { + return typeof uuid === 'string' && regex_js_1.default.test(uuid); +} +exports.default = validate; diff --git a/node_modules/uuid/dist/cjs/version.d.ts b/node_modules/uuid/dist/cjs/version.d.ts new file mode 100644 index 0000000..f1948dc --- /dev/null +++ b/node_modules/uuid/dist/cjs/version.d.ts @@ -0,0 +1,2 @@ +declare function version(uuid: string): number; +export default version; diff --git a/node_modules/uuid/dist/cjs/version.js b/node_modules/uuid/dist/cjs/version.js new file mode 100644 index 0000000..05ecd00 --- /dev/null +++ b/node_modules/uuid/dist/cjs/version.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const validate_js_1 = require("./validate.js"); +function version(uuid) { + if (!(0, validate_js_1.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + return parseInt(uuid.slice(14, 15), 16); +} +exports.default = version; diff --git a/node_modules/uuid/dist/esm-browser/index.d.ts b/node_modules/uuid/dist/esm-browser/index.d.ts new file mode 100644 index 0000000..d7d4edc --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/index.d.ts @@ -0,0 +1,15 @@ +export type * from './types.js'; +export { default as MAX } from './max.js'; +export { default as NIL } from './nil.js'; +export { default as parse } from './parse.js'; +export { default as stringify } from './stringify.js'; +export { default as v1 } from './v1.js'; +export { default as v1ToV6 } from './v1ToV6.js'; +export { default as v3 } from './v3.js'; +export { default as v4 } from './v4.js'; +export { default as v5 } from './v5.js'; +export { default as v6 } from './v6.js'; +export { default as v6ToV1 } from './v6ToV1.js'; +export { default as v7 } from './v7.js'; +export { default as validate } from './validate.js'; +export { default as version } from './version.js'; diff --git a/node_modules/uuid/dist/esm-browser/index.js b/node_modules/uuid/dist/esm-browser/index.js index 1db6f6d..3193e9a 100644 --- a/node_modules/uuid/dist/esm-browser/index.js +++ b/node_modules/uuid/dist/esm-browser/index.js @@ -1,9 +1,14 @@ +export { default as MAX } from './max.js'; +export { default as NIL } from './nil.js'; +export { default as parse } from './parse.js'; +export { default as stringify } from './stringify.js'; export { default as v1 } from './v1.js'; +export { default as v1ToV6 } from './v1ToV6.js'; export { default as v3 } from './v3.js'; export { default as v4 } from './v4.js'; export { default as v5 } from './v5.js'; -export { default as NIL } from './nil.js'; -export { default as version } from './version.js'; +export { default as v6 } from './v6.js'; +export { default as v6ToV1 } from './v6ToV1.js'; +export { default as v7 } from './v7.js'; export { default as validate } from './validate.js'; -export { default as stringify } from './stringify.js'; -export { default as parse } from './parse.js'; \ No newline at end of file +export { default as version } from './version.js'; diff --git a/node_modules/uuid/dist/esm-browser/max.d.ts b/node_modules/uuid/dist/esm-browser/max.d.ts new file mode 100644 index 0000000..7a1e972 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/max.d.ts @@ -0,0 +1,2 @@ +declare const _default: "ffffffff-ffff-ffff-ffff-ffffffffffff"; +export default _default; diff --git a/node_modules/uuid/dist/esm-browser/max.js b/node_modules/uuid/dist/esm-browser/max.js new file mode 100644 index 0000000..58951f6 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/max.js @@ -0,0 +1 @@ +export default 'ffffffff-ffff-ffff-ffff-ffffffffffff'; diff --git a/node_modules/uuid/dist/esm-browser/md5.d.ts b/node_modules/uuid/dist/esm-browser/md5.d.ts new file mode 100644 index 0000000..5a55f51 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/md5.d.ts @@ -0,0 +1,2 @@ +declare function md5(bytes: Uint8Array): Uint8Array; +export default md5; diff --git a/node_modules/uuid/dist/esm-browser/md5.js b/node_modules/uuid/dist/esm-browser/md5.js index 8b5d46a..918be8c 100644 --- a/node_modules/uuid/dist/esm-browser/md5.js +++ b/node_modules/uuid/dist/esm-browser/md5.js @@ -1,215 +1,135 @@ -/* - * Browser-compatible JavaScript MD5 - * - * Modification of JavaScript MD5 - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * https://opensource.org/licenses/MIT - * - * Based on - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ function md5(bytes) { - if (typeof bytes === 'string') { - var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape - - bytes = new Uint8Array(msg.length); - - for (var i = 0; i < msg.length; ++i) { - bytes[i] = msg.charCodeAt(i); - } - } - - return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8)); + const words = uint8ToUint32(bytes); + const md5Bytes = wordsToMd5(words, bytes.length * 8); + return uint32ToUint8(md5Bytes); } -/* - * Convert an array of little-endian words to an array of bytes - */ - - -function md5ToHexEncodedArray(input) { - var output = []; - var length32 = input.length * 32; - var hexTab = '0123456789abcdef'; - - for (var i = 0; i < length32; i += 8) { - var x = input[i >> 5] >>> i % 32 & 0xff; - var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16); - output.push(hex); - } - - return output; +function uint32ToUint8(input) { + const bytes = new Uint8Array(input.length * 4); + for (let i = 0; i < input.length * 4; i++) { + bytes[i] = (input[i >> 2] >>> ((i % 4) * 8)) & 0xff; + } + return bytes; } -/** - * Calculate output length with padding and bit length - */ - - function getOutputLength(inputLength8) { - return (inputLength8 + 64 >>> 9 << 4) + 14 + 1; + return (((inputLength8 + 64) >>> 9) << 4) + 14 + 1; } -/* - * Calculate the MD5 of an array of little-endian words, and a bit length. - */ - - function wordsToMd5(x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << len % 32; - x[getOutputLength(len) - 1] = len; - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - - for (var i = 0; i < x.length; i += 16) { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - - return [a, b, c, d]; + const xpad = new Uint32Array(getOutputLength(len)).fill(0); + xpad.set(x); + xpad[len >> 5] |= 0x80 << len % 32; + xpad[xpad.length - 1] = len; + x = xpad; + let a = 1732584193; + let b = -271733879; + let c = -1732584194; + let d = 271733878; + for (let i = 0; i < x.length; i += 16) { + const olda = a; + const oldb = b; + const oldc = c; + const oldd = d; + a = md5ff(a, b, c, d, x[i], 7, -680876936); + d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); + c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); + b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); + a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); + d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); + c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); + b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); + a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); + d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); + c = md5ff(c, d, a, b, x[i + 10], 17, -42063); + b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); + a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); + d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); + c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); + b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); + a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); + d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); + c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); + b = md5gg(b, c, d, a, x[i], 20, -373897302); + a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); + d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); + c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); + b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); + a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); + d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); + c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); + b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); + a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); + d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); + c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); + b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); + a = md5hh(a, b, c, d, x[i + 5], 4, -378558); + d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); + c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); + b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); + a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); + d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); + c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); + b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); + a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); + d = md5hh(d, a, b, c, x[i], 11, -358537222); + c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); + b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); + a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); + d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); + c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); + b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); + a = md5ii(a, b, c, d, x[i], 6, -198630844); + d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); + c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); + b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); + a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); + d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); + c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); + b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); + a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); + d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); + c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); + b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); + a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); + d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); + c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); + b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); + a = safeAdd(a, olda); + b = safeAdd(b, oldb); + c = safeAdd(c, oldc); + d = safeAdd(d, oldd); + } + return Uint32Array.of(a, b, c, d); } -/* - * Convert an array bytes to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - */ - - -function bytesToWords(input) { - if (input.length === 0) { - return []; - } - - var length8 = input.length * 8; - var output = new Uint32Array(getOutputLength(length8)); - - for (var i = 0; i < length8; i += 8) { - output[i >> 5] |= (input[i / 8] & 0xff) << i % 32; - } - - return output; +function uint8ToUint32(input) { + if (input.length === 0) { + return new Uint32Array(); + } + const output = new Uint32Array(getOutputLength(input.length * 8)).fill(0); + for (let i = 0; i < input.length; i++) { + output[i >> 2] |= (input[i] & 0xff) << ((i % 4) * 8); + } + return output; } -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ - - function safeAdd(x, y) { - var lsw = (x & 0xffff) + (y & 0xffff); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return msw << 16 | lsw & 0xffff; + const lsw = (x & 0xffff) + (y & 0xffff); + const msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xffff); } -/* - * Bitwise rotate a 32-bit number to the left. - */ - - function bitRotateLeft(num, cnt) { - return num << cnt | num >>> 32 - cnt; + return (num << cnt) | (num >>> (32 - cnt)); } -/* - * These functions implement the four basic operations the algorithm uses. - */ - - function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); + return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); } - function md5ff(a, b, c, d, x, s, t) { - return md5cmn(b & c | ~b & d, a, b, x, s, t); + return md5cmn((b & c) | (~b & d), a, b, x, s, t); } - function md5gg(a, b, c, d, x, s, t) { - return md5cmn(b & d | c & ~d, a, b, x, s, t); + return md5cmn((b & d) | (c & ~d), a, b, x, s, t); } - function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); + return md5cmn(b ^ c ^ d, a, b, x, s, t); } - function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | ~d), a, b, x, s, t); + return md5cmn(c ^ (b | ~d), a, b, x, s, t); } - -export default md5; \ No newline at end of file +export default md5; diff --git a/node_modules/uuid/dist/esm-browser/native.d.ts b/node_modules/uuid/dist/esm-browser/native.d.ts new file mode 100644 index 0000000..9418fd3 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/native.d.ts @@ -0,0 +1,4 @@ +declare const _default: { + randomUUID: false | (() => `${string}-${string}-${string}-${string}-${string}`); +}; +export default _default; diff --git a/node_modules/uuid/dist/esm-browser/native.js b/node_modules/uuid/dist/esm-browser/native.js new file mode 100644 index 0000000..76f44f9 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/native.js @@ -0,0 +1,2 @@ +const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto); +export default { randomUUID }; diff --git a/node_modules/uuid/dist/esm-browser/nil.d.ts b/node_modules/uuid/dist/esm-browser/nil.d.ts new file mode 100644 index 0000000..b03bb98 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/nil.d.ts @@ -0,0 +1,2 @@ +declare const _default: "00000000-0000-0000-0000-000000000000"; +export default _default; diff --git a/node_modules/uuid/dist/esm-browser/nil.js b/node_modules/uuid/dist/esm-browser/nil.js index b36324c..de6f830 100644 --- a/node_modules/uuid/dist/esm-browser/nil.js +++ b/node_modules/uuid/dist/esm-browser/nil.js @@ -1 +1 @@ -export default '00000000-0000-0000-0000-000000000000'; \ No newline at end of file +export default '00000000-0000-0000-0000-000000000000'; diff --git a/node_modules/uuid/dist/esm-browser/parse.d.ts b/node_modules/uuid/dist/esm-browser/parse.d.ts new file mode 100644 index 0000000..a316fb1 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/parse.d.ts @@ -0,0 +1,2 @@ +declare function parse(uuid: string): Uint8Array; +export default parse; diff --git a/node_modules/uuid/dist/esm-browser/parse.js b/node_modules/uuid/dist/esm-browser/parse.js index 7c5b1d5..64ac401 100644 --- a/node_modules/uuid/dist/esm-browser/parse.js +++ b/node_modules/uuid/dist/esm-browser/parse.js @@ -1,35 +1,9 @@ import validate from './validate.js'; - function parse(uuid) { - if (!validate(uuid)) { - throw TypeError('Invalid UUID'); - } - - var v; - var arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; + if (!validate(uuid)) { + throw TypeError('Invalid UUID'); + } + let v; + return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff); } - -export default parse; \ No newline at end of file +export default parse; diff --git a/node_modules/uuid/dist/esm-browser/regex.d.ts b/node_modules/uuid/dist/esm-browser/regex.d.ts new file mode 100644 index 0000000..d39fa3f --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/regex.d.ts @@ -0,0 +1,2 @@ +declare const _default: RegExp; +export default _default; diff --git a/node_modules/uuid/dist/esm-browser/regex.js b/node_modules/uuid/dist/esm-browser/regex.js index 3da8673..3e38591 100644 --- a/node_modules/uuid/dist/esm-browser/regex.js +++ b/node_modules/uuid/dist/esm-browser/regex.js @@ -1 +1 @@ -export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; \ No newline at end of file +export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i; diff --git a/node_modules/uuid/dist/esm-browser/rng.d.ts b/node_modules/uuid/dist/esm-browser/rng.d.ts new file mode 100644 index 0000000..73e60cf --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/rng.d.ts @@ -0,0 +1 @@ +export default function rng(): Uint8Array; diff --git a/node_modules/uuid/dist/esm-browser/rng.js b/node_modules/uuid/dist/esm-browser/rng.js index 8abbf2e..770f2e2 100644 --- a/node_modules/uuid/dist/esm-browser/rng.js +++ b/node_modules/uuid/dist/esm-browser/rng.js @@ -1,19 +1,11 @@ -// Unique ID creation requires a high quality random # generator. In the browser we therefore -// require the crypto API and do not support built-in fallback to lower quality random number -// generators (like Math.random()). -var getRandomValues; -var rnds8 = new Uint8Array(16); +let getRandomValues; +const rnds8 = new Uint8Array(16); export default function rng() { - // lazy load so that environments that need to polyfill have a chance to do so - if (!getRandomValues) { - // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also, - // find the complete implementation of crypto (msCrypto) on IE11. - getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto); - if (!getRandomValues) { - throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); + if (typeof crypto === 'undefined' || !crypto.getRandomValues) { + throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); + } + getRandomValues = crypto.getRandomValues.bind(crypto); } - } - - return getRandomValues(rnds8); -} \ No newline at end of file + return getRandomValues(rnds8); +} diff --git a/node_modules/uuid/dist/esm-browser/sha1.d.ts b/node_modules/uuid/dist/esm-browser/sha1.d.ts new file mode 100644 index 0000000..a6552e5 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/sha1.d.ts @@ -0,0 +1,2 @@ +declare function sha1(bytes: Uint8Array): Uint8Array; +export default sha1; diff --git a/node_modules/uuid/dist/esm-browser/sha1.js b/node_modules/uuid/dist/esm-browser/sha1.js index 940548b..dbb78ae 100644 --- a/node_modules/uuid/dist/esm-browser/sha1.js +++ b/node_modules/uuid/dist/esm-browser/sha1.js @@ -1,96 +1,70 @@ -// Adapted from Chris Veness' SHA1 code at -// http://www.movable-type.co.uk/scripts/sha1.html function f(s, x, y, z) { - switch (s) { - case 0: - return x & y ^ ~x & z; - - case 1: - return x ^ y ^ z; - - case 2: - return x & y ^ x & z ^ y & z; - - case 3: - return x ^ y ^ z; - } + switch (s) { + case 0: + return (x & y) ^ (~x & z); + case 1: + return x ^ y ^ z; + case 2: + return (x & y) ^ (x & z) ^ (y & z); + case 3: + return x ^ y ^ z; + } } - function ROTL(x, n) { - return x << n | x >>> 32 - n; + return (x << n) | (x >>> (32 - n)); } - function sha1(bytes) { - var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; - var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; - - if (typeof bytes === 'string') { - var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape - - bytes = []; - - for (var i = 0; i < msg.length; ++i) { - bytes.push(msg.charCodeAt(i)); - } - } else if (!Array.isArray(bytes)) { - // Convert Array-like to Array - bytes = Array.prototype.slice.call(bytes); - } - - bytes.push(0x80); - var l = bytes.length / 4 + 2; - var N = Math.ceil(l / 16); - var M = new Array(N); - - for (var _i = 0; _i < N; ++_i) { - var arr = new Uint32Array(16); - - for (var j = 0; j < 16; ++j) { - arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3]; - } - - M[_i] = arr; - } - - M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32); - M[N - 1][14] = Math.floor(M[N - 1][14]); - M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff; - - for (var _i2 = 0; _i2 < N; ++_i2) { - var W = new Uint32Array(80); - - for (var t = 0; t < 16; ++t) { - W[t] = M[_i2][t]; - } - - for (var _t = 16; _t < 80; ++_t) { - W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1); + const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; + const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; + const newBytes = new Uint8Array(bytes.length + 1); + newBytes.set(bytes); + newBytes[bytes.length] = 0x80; + bytes = newBytes; + const l = bytes.length / 4 + 2; + const N = Math.ceil(l / 16); + const M = new Array(N); + for (let i = 0; i < N; ++i) { + const arr = new Uint32Array(16); + for (let j = 0; j < 16; ++j) { + arr[j] = + (bytes[i * 64 + j * 4] << 24) | + (bytes[i * 64 + j * 4 + 1] << 16) | + (bytes[i * 64 + j * 4 + 2] << 8) | + bytes[i * 64 + j * 4 + 3]; + } + M[i] = arr; } - - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - var e = H[4]; - - for (var _t2 = 0; _t2 < 80; ++_t2) { - var s = Math.floor(_t2 / 20); - var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0; - e = d; - d = c; - c = ROTL(b, 30) >>> 0; - b = a; - a = T; + M[N - 1][14] = ((bytes.length - 1) * 8) / Math.pow(2, 32); + M[N - 1][14] = Math.floor(M[N - 1][14]); + M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff; + for (let i = 0; i < N; ++i) { + const W = new Uint32Array(80); + for (let t = 0; t < 16; ++t) { + W[t] = M[i][t]; + } + for (let t = 16; t < 80; ++t) { + W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); + } + let a = H[0]; + let b = H[1]; + let c = H[2]; + let d = H[3]; + let e = H[4]; + for (let t = 0; t < 80; ++t) { + const s = Math.floor(t / 20); + const T = (ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t]) >>> 0; + e = d; + d = c; + c = ROTL(b, 30) >>> 0; + b = a; + a = T; + } + H[0] = (H[0] + a) >>> 0; + H[1] = (H[1] + b) >>> 0; + H[2] = (H[2] + c) >>> 0; + H[3] = (H[3] + d) >>> 0; + H[4] = (H[4] + e) >>> 0; } - - H[0] = H[0] + a >>> 0; - H[1] = H[1] + b >>> 0; - H[2] = H[2] + c >>> 0; - H[3] = H[3] + d >>> 0; - H[4] = H[4] + e >>> 0; - } - - return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff]; + return Uint8Array.of(H[0] >> 24, H[0] >> 16, H[0] >> 8, H[0], H[1] >> 24, H[1] >> 16, H[1] >> 8, H[1], H[2] >> 24, H[2] >> 16, H[2] >> 8, H[2], H[3] >> 24, H[3] >> 16, H[3] >> 8, H[3], H[4] >> 24, H[4] >> 16, H[4] >> 8, H[4]); } - -export default sha1; \ No newline at end of file +export default sha1; diff --git a/node_modules/uuid/dist/esm-browser/stringify.d.ts b/node_modules/uuid/dist/esm-browser/stringify.d.ts new file mode 100644 index 0000000..16cb008 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/stringify.d.ts @@ -0,0 +1,3 @@ +export declare function unsafeStringify(arr: Uint8Array, offset?: number): string; +declare function stringify(arr: Uint8Array, offset?: number): string; +export default stringify; diff --git a/node_modules/uuid/dist/esm-browser/stringify.js b/node_modules/uuid/dist/esm-browser/stringify.js index 3102111..962738c 100644 --- a/node_modules/uuid/dist/esm-browser/stringify.js +++ b/node_modules/uuid/dist/esm-browser/stringify.js @@ -1,30 +1,35 @@ import validate from './validate.js'; -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ - -var byteToHex = []; - -for (var i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); +const byteToHex = []; +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)); } - -function stringify(arr) { - var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!validate(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; +export function unsafeStringify(arr, offset = 0) { + return (byteToHex[arr[offset + 0]] + + byteToHex[arr[offset + 1]] + + byteToHex[arr[offset + 2]] + + byteToHex[arr[offset + 3]] + + '-' + + byteToHex[arr[offset + 4]] + + byteToHex[arr[offset + 5]] + + '-' + + byteToHex[arr[offset + 6]] + + byteToHex[arr[offset + 7]] + + '-' + + byteToHex[arr[offset + 8]] + + byteToHex[arr[offset + 9]] + + '-' + + byteToHex[arr[offset + 10]] + + byteToHex[arr[offset + 11]] + + byteToHex[arr[offset + 12]] + + byteToHex[arr[offset + 13]] + + byteToHex[arr[offset + 14]] + + byteToHex[arr[offset + 15]]).toLowerCase(); } - -export default stringify; \ No newline at end of file +function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset); + if (!validate(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + return uuid; +} +export default stringify; diff --git a/node_modules/uuid/dist/esm-browser/types.d.ts b/node_modules/uuid/dist/esm-browser/types.d.ts new file mode 100644 index 0000000..ecaed97 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/types.d.ts @@ -0,0 +1,21 @@ +export type UUIDTypes<TBuf extends Uint8Array = Uint8Array> = string | TBuf; +export type Version1Options = { + node?: Uint8Array; + clockseq?: number; + random?: Uint8Array; + rng?: () => Uint8Array; + msecs?: number; + nsecs?: number; + _v6?: boolean; +}; +export type Version4Options = { + random?: Uint8Array; + rng?: () => Uint8Array; +}; +export type Version6Options = Version1Options; +export type Version7Options = { + random?: Uint8Array; + msecs?: number; + seq?: number; + rng?: () => Uint8Array; +}; diff --git a/node_modules/uuid/dist/esm-browser/types.js b/node_modules/uuid/dist/esm-browser/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts b/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/uuid/dist/esm-browser/uuid-bin.js b/node_modules/uuid/dist/esm-browser/uuid-bin.js new file mode 100644 index 0000000..30766fe --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/uuid-bin.js @@ -0,0 +1,70 @@ +import * as assert from 'assert'; +import v1 from './v1.js'; +import v3 from './v3.js'; +import v4 from './v4.js'; +import v5 from './v5.js'; +import v6 from './v6.js'; +import v7 from './v7.js'; +function usage() { + console.log('Usage:'); + console.log(' uuid'); + console.log(' uuid v1'); + console.log(' uuid v3 <name> <namespace uuid>'); + console.log(' uuid v4'); + console.log(' uuid v5 <name> <namespace uuid>'); + console.log(' uuid v6'); + console.log(' uuid v7'); + console.log(' uuid --help'); + console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562'); +} +const args = process.argv.slice(2); +if (args.indexOf('--help') >= 0) { + usage(); + process.exit(0); +} +const version = args.shift() || 'v4'; +switch (version) { + case 'v1': + console.log(v1()); + break; + case 'v3': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v3 name not specified'); + assert.ok(namespace != null, 'v3 namespace not specified'); + if (namespace === 'URL') { + namespace = v3.URL; + } + if (namespace === 'DNS') { + namespace = v3.DNS; + } + console.log(v3(name, namespace)); + break; + } + case 'v4': + console.log(v4()); + break; + case 'v5': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v5 name not specified'); + assert.ok(namespace != null, 'v5 namespace not specified'); + if (namespace === 'URL') { + namespace = v5.URL; + } + if (namespace === 'DNS') { + namespace = v5.DNS; + } + console.log(v5(name, namespace)); + break; + } + case 'v6': + console.log(v6()); + break; + case 'v7': + console.log(v7()); + break; + default: + usage(); + process.exit(1); +} diff --git a/node_modules/uuid/dist/esm-browser/v1.d.ts b/node_modules/uuid/dist/esm-browser/v1.d.ts new file mode 100644 index 0000000..d8ecee0 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v1.d.ts @@ -0,0 +1,11 @@ +import { Version1Options } from './types.js'; +type V1State = { + node?: Uint8Array; + clockseq?: number; + msecs?: number; + nsecs?: number; +}; +declare function v1(options?: Version1Options, buf?: undefined, offset?: number): string; +declare function v1<Buf extends Uint8Array = Uint8Array>(options: Version1Options | undefined, buf: Buf, offset?: number): Buf; +export declare function updateV1State(state: V1State, now: number, rnds: Uint8Array): V1State; +export default v1; diff --git a/node_modules/uuid/dist/esm-browser/v1.js b/node_modules/uuid/dist/esm-browser/v1.js index 1a22591..65e3f68 100644 --- a/node_modules/uuid/dist/esm-browser/v1.js +++ b/node_modules/uuid/dist/esm-browser/v1.js @@ -1,95 +1,83 @@ import rng from './rng.js'; -import stringify from './stringify.js'; // **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html - -var _nodeId; - -var _clockseq; // Previous uuid creation time - - -var _lastMSecs = 0; -var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - +import { unsafeStringify } from './stringify.js'; +const _state = {}; function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || new Array(16); - options = options || {}; - var node = options.node || _nodeId; - var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - - if (node == null || clockseq == null) { - var seedBytes = options.random || (options.rng || rng)(); - - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + let bytes; + const isV6 = options?._v6 ?? false; + if (options) { + const optionsKeys = Object.keys(options); + if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') { + options = undefined; + } } - - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + if (options) { + bytes = v1Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset); } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - - - var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - - var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) - - var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression - - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested - - - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` - - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - - var tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` - - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - - b[i++] = clockseq & 0xff; // `node` - - for (var n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf || stringify(b); + else { + const now = Date.now(); + const rnds = rng(); + updateV1State(_state, now, rnds); + bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset); + } + return buf ?? unsafeStringify(bytes); +} +export function updateV1State(state, now, rnds) { + state.msecs ??= -Infinity; + state.nsecs ??= 0; + if (now === state.msecs) { + state.nsecs++; + if (state.nsecs >= 10000) { + state.node = undefined; + state.nsecs = 0; + } + } + else if (now > state.msecs) { + state.nsecs = 0; + } + else if (now < state.msecs) { + state.node = undefined; + } + if (!state.node) { + state.node = rnds.slice(10, 16); + state.node[0] |= 0x01; + state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff; + } + state.msecs = now; + return state; +} +function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + nsecs ??= 0; + clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff; + node ??= rnds.slice(10, 16); + msecs += 12219292800000; + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + buf[offset++] = (tl >>> 24) & 0xff; + buf[offset++] = (tl >>> 16) & 0xff; + buf[offset++] = (tl >>> 8) & 0xff; + buf[offset++] = tl & 0xff; + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff; + buf[offset++] = (tmh >>> 8) & 0xff; + buf[offset++] = tmh & 0xff; + buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10; + buf[offset++] = (tmh >>> 16) & 0xff; + buf[offset++] = (clockseq >>> 8) | 0x80; + buf[offset++] = clockseq & 0xff; + for (let n = 0; n < 6; ++n) { + buf[offset++] = node[n]; + } + return buf; } - -export default v1; \ No newline at end of file +export default v1; diff --git a/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts b/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts new file mode 100644 index 0000000..38eaaf0 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts @@ -0,0 +1,2 @@ +export default function v1ToV6(uuid: string): string; +export default function v1ToV6(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/esm-browser/v1ToV6.js b/node_modules/uuid/dist/esm-browser/v1ToV6.js new file mode 100644 index 0000000..da0f763 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v1ToV6.js @@ -0,0 +1,10 @@ +import parse from './parse.js'; +import { unsafeStringify } from './stringify.js'; +export default function v1ToV6(uuid) { + const v1Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; + const v6Bytes = _v1ToV6(v1Bytes); + return typeof uuid === 'string' ? unsafeStringify(v6Bytes) : v6Bytes; +} +function _v1ToV6(v1Bytes) { + return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]); +} diff --git a/node_modules/uuid/dist/esm-browser/v3.d.ts b/node_modules/uuid/dist/esm-browser/v3.d.ts new file mode 100644 index 0000000..5d1c434 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v3.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v3(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v3<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v3 { + var DNS: string; + var URL: string; +} +export default v3; diff --git a/node_modules/uuid/dist/esm-browser/v3.js b/node_modules/uuid/dist/esm-browser/v3.js index c9ab9a4..b5c3781 100644 --- a/node_modules/uuid/dist/esm-browser/v3.js +++ b/node_modules/uuid/dist/esm-browser/v3.js @@ -1,4 +1,9 @@ -import v35 from './v35.js'; import md5 from './md5.js'; -var v3 = v35('v3', 0x30, md5); -export default v3; \ No newline at end of file +import v35, { DNS, URL } from './v35.js'; +export { DNS, URL } from './v35.js'; +function v3(value, namespace, buf, offset) { + return v35(0x30, md5, value, namespace, buf, offset); +} +v3.DNS = DNS; +v3.URL = URL; +export default v3; diff --git a/node_modules/uuid/dist/esm-browser/v35.d.ts b/node_modules/uuid/dist/esm-browser/v35.d.ts new file mode 100644 index 0000000..4e6e9d5 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v35.d.ts @@ -0,0 +1,7 @@ +import { UUIDTypes } from './types.js'; +export declare function stringToBytes(str: string): Uint8Array; +export declare const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; +export declare const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; +type HashFunction = (bytes: Uint8Array) => Uint8Array; +export default function v35<TBuf extends Uint8Array = Uint8Array>(version: 0x30 | 0x50, hash: HashFunction, value: string | Uint8Array, namespace: UUIDTypes, buf?: TBuf, offset?: number): UUIDTypes<TBuf>; +export {}; diff --git a/node_modules/uuid/dist/esm-browser/v35.js b/node_modules/uuid/dist/esm-browser/v35.js index 31dd8a1..2e02842 100644 --- a/node_modules/uuid/dist/esm-browser/v35.js +++ b/node_modules/uuid/dist/esm-browser/v35.js @@ -1,64 +1,39 @@ -import stringify from './stringify.js'; import parse from './parse.js'; - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - var bytes = []; - - for (var i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -export var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -export var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -export default function (name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); +import { unsafeStringify } from './stringify.js'; +export function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); + const bytes = new Uint8Array(str.length); + for (let i = 0; i < str.length; ++i) { + bytes[i] = str.charCodeAt(i); } - + return bytes; +} +export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +export default function v35(version, hash, value, namespace, buf, offset) { + const valueBytes = typeof value === 'string' ? stringToBytes(value) : value; + const namespaceBytes = typeof namespace === 'string' ? parse(namespace) : namespace; if (typeof namespace === 'string') { - namespace = parse(namespace); + namespace = parse(namespace); } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - var bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - + if (namespace?.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } + let bytes = new Uint8Array(16 + valueBytes.length); + bytes.set(namespaceBytes); + bytes.set(valueBytes, namespaceBytes.length); + bytes = hash(bytes); + bytes[6] = (bytes[6] & 0x0f) | version; + bytes[8] = (bytes[8] & 0x3f) | 0x80; if (buf) { - offset = offset || 0; - - for (var i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + return buf; } - - return stringify(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} \ No newline at end of file + return unsafeStringify(bytes); +} diff --git a/node_modules/uuid/dist/esm-browser/v4.d.ts b/node_modules/uuid/dist/esm-browser/v4.d.ts new file mode 100644 index 0000000..8205333 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v4.d.ts @@ -0,0 +1,4 @@ +import { Version4Options } from './types.js'; +declare function v4(options?: Version4Options, buf?: undefined, offset?: number): string; +declare function v4<TBuf extends Uint8Array = Uint8Array>(options: Version4Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v4; diff --git a/node_modules/uuid/dist/esm-browser/v4.js b/node_modules/uuid/dist/esm-browser/v4.js index 404810a..dd9067a 100644 --- a/node_modules/uuid/dist/esm-browser/v4.js +++ b/node_modules/uuid/dist/esm-browser/v4.js @@ -1,24 +1,27 @@ +import native from './native.js'; import rng from './rng.js'; -import stringify from './stringify.js'; - +import { unsafeStringify } from './stringify.js'; function v4(options, buf, offset) { - options = options || {}; - var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - - if (buf) { - offset = offset || 0; - - for (var i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; + if (native.randomUUID && !buf && !options) { + return native.randomUUID(); } - - return buf; - } - - return stringify(rnds); + options = options || {}; + const rnds = options.random ?? options.rng?.() ?? rng(); + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + if (buf) { + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return unsafeStringify(rnds); } - -export default v4; \ No newline at end of file +export default v4; diff --git a/node_modules/uuid/dist/esm-browser/v5.d.ts b/node_modules/uuid/dist/esm-browser/v5.d.ts new file mode 100644 index 0000000..0e2ff2f --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v5.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v5(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v5<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v5 { + var DNS: string; + var URL: string; +} +export default v5; diff --git a/node_modules/uuid/dist/esm-browser/v5.js b/node_modules/uuid/dist/esm-browser/v5.js index c08d96b..bd470a4 100644 --- a/node_modules/uuid/dist/esm-browser/v5.js +++ b/node_modules/uuid/dist/esm-browser/v5.js @@ -1,4 +1,9 @@ -import v35 from './v35.js'; import sha1 from './sha1.js'; -var v5 = v35('v5', 0x50, sha1); -export default v5; \ No newline at end of file +import v35, { DNS, URL } from './v35.js'; +export { DNS, URL } from './v35.js'; +function v5(value, namespace, buf, offset) { + return v35(0x50, sha1, value, namespace, buf, offset); +} +v5.DNS = DNS; +v5.URL = URL; +export default v5; diff --git a/node_modules/uuid/dist/esm-browser/v6.d.ts b/node_modules/uuid/dist/esm-browser/v6.d.ts new file mode 100644 index 0000000..cabf4a0 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v6.d.ts @@ -0,0 +1,4 @@ +import { Version6Options } from './types.js'; +declare function v6(options?: Version6Options, buf?: undefined, offset?: number): string; +declare function v6<TBuf extends Uint8Array = Uint8Array>(options: Version6Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v6; diff --git a/node_modules/uuid/dist/esm-browser/v6.js b/node_modules/uuid/dist/esm-browser/v6.js new file mode 100644 index 0000000..bd1fc35 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v6.js @@ -0,0 +1,20 @@ +import { unsafeStringify } from './stringify.js'; +import v1 from './v1.js'; +import v1ToV6 from './v1ToV6.js'; +function v6(options, buf, offset) { + options ??= {}; + offset ??= 0; + let bytes = v1({ ...options, _v6: true }, new Uint8Array(16)); + bytes = v1ToV6(bytes); + if (buf) { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; i++) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return unsafeStringify(bytes); +} +export default v6; diff --git a/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts b/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts new file mode 100644 index 0000000..3b3ffc2 --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts @@ -0,0 +1,2 @@ +export default function v6ToV1(uuid: string): string; +export default function v6ToV1(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/esm-browser/v6ToV1.js b/node_modules/uuid/dist/esm-browser/v6ToV1.js new file mode 100644 index 0000000..bfd942f --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v6ToV1.js @@ -0,0 +1,10 @@ +import parse from './parse.js'; +import { unsafeStringify } from './stringify.js'; +export default function v6ToV1(uuid) { + const v6Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; + const v1Bytes = _v6ToV1(v6Bytes); + return typeof uuid === 'string' ? unsafeStringify(v1Bytes) : v1Bytes; +} +function _v6ToV1(v6Bytes) { + return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]); +} diff --git a/node_modules/uuid/dist/esm-browser/v7.d.ts b/node_modules/uuid/dist/esm-browser/v7.d.ts new file mode 100644 index 0000000..f49b03d --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v7.d.ts @@ -0,0 +1,9 @@ +import { Version7Options } from './types.js'; +type V7State = { + msecs?: number; + seq?: number; +}; +declare function v7(options?: Version7Options, buf?: undefined, offset?: number): string; +declare function v7<TBuf extends Uint8Array = Uint8Array>(options: Version7Options | undefined, buf: TBuf, offset?: number): TBuf; +export declare function updateV7State(state: V7State, now: number, rnds: Uint8Array): V7State; +export default v7; diff --git a/node_modules/uuid/dist/esm-browser/v7.js b/node_modules/uuid/dist/esm-browser/v7.js new file mode 100644 index 0000000..276c9bf --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/v7.js @@ -0,0 +1,65 @@ +import rng from './rng.js'; +import { unsafeStringify } from './stringify.js'; +const _state = {}; +function v7(options, buf, offset) { + let bytes; + if (options) { + bytes = v7Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.seq, buf, offset); + } + else { + const now = Date.now(); + const rnds = rng(); + updateV7State(_state, now, rnds); + bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset); + } + return buf ?? unsafeStringify(bytes); +} +export function updateV7State(state, now, rnds) { + state.msecs ??= -Infinity; + state.seq ??= 0; + if (now > state.msecs) { + state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + state.msecs = now; + } + else { + state.seq = (state.seq + 1) | 0; + if (state.seq === 0) { + state.msecs++; + } + } + return state; +} +function v7Bytes(rnds, msecs, seq, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + buf[offset++] = (msecs / 0x10000000000) & 0xff; + buf[offset++] = (msecs / 0x100000000) & 0xff; + buf[offset++] = (msecs / 0x1000000) & 0xff; + buf[offset++] = (msecs / 0x10000) & 0xff; + buf[offset++] = (msecs / 0x100) & 0xff; + buf[offset++] = msecs & 0xff; + buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f); + buf[offset++] = (seq >>> 20) & 0xff; + buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f); + buf[offset++] = (seq >>> 6) & 0xff; + buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03); + buf[offset++] = rnds[11]; + buf[offset++] = rnds[12]; + buf[offset++] = rnds[13]; + buf[offset++] = rnds[14]; + buf[offset++] = rnds[15]; + return buf; +} +export default v7; diff --git a/node_modules/uuid/dist/esm-browser/validate.d.ts b/node_modules/uuid/dist/esm-browser/validate.d.ts new file mode 100644 index 0000000..57da03d --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/validate.d.ts @@ -0,0 +1,2 @@ +declare function validate(uuid: unknown): boolean; +export default validate; diff --git a/node_modules/uuid/dist/esm-browser/validate.js b/node_modules/uuid/dist/esm-browser/validate.js index f1cdc7a..444a1a2 100644 --- a/node_modules/uuid/dist/esm-browser/validate.js +++ b/node_modules/uuid/dist/esm-browser/validate.js @@ -1,7 +1,5 @@ import REGEX from './regex.js'; - function validate(uuid) { - return typeof uuid === 'string' && REGEX.test(uuid); + return typeof uuid === 'string' && REGEX.test(uuid); } - -export default validate; \ No newline at end of file +export default validate; diff --git a/node_modules/uuid/dist/esm-browser/version.d.ts b/node_modules/uuid/dist/esm-browser/version.d.ts new file mode 100644 index 0000000..f1948dc --- /dev/null +++ b/node_modules/uuid/dist/esm-browser/version.d.ts @@ -0,0 +1,2 @@ +declare function version(uuid: string): number; +export default version; diff --git a/node_modules/uuid/dist/esm-browser/version.js b/node_modules/uuid/dist/esm-browser/version.js index 77530e9..bae91d3 100644 --- a/node_modules/uuid/dist/esm-browser/version.js +++ b/node_modules/uuid/dist/esm-browser/version.js @@ -1,11 +1,8 @@ import validate from './validate.js'; - function version(uuid) { - if (!validate(uuid)) { - throw TypeError('Invalid UUID'); - } - - return parseInt(uuid.substr(14, 1), 16); + if (!validate(uuid)) { + throw TypeError('Invalid UUID'); + } + return parseInt(uuid.slice(14, 15), 16); } - -export default version; \ No newline at end of file +export default version; diff --git a/node_modules/uuid/dist/esm-node/md5.js b/node_modules/uuid/dist/esm-node/md5.js deleted file mode 100644 index 4d68b04..0000000 --- a/node_modules/uuid/dist/esm-node/md5.js +++ /dev/null @@ -1,13 +0,0 @@ -import crypto from 'crypto'; - -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return crypto.createHash('md5').update(bytes).digest(); -} - -export default md5; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/nil.js b/node_modules/uuid/dist/esm-node/nil.js deleted file mode 100644 index b36324c..0000000 --- a/node_modules/uuid/dist/esm-node/nil.js +++ /dev/null @@ -1 +0,0 @@ -export default '00000000-0000-0000-0000-000000000000'; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/parse.js b/node_modules/uuid/dist/esm-node/parse.js deleted file mode 100644 index 6421c5d..0000000 --- a/node_modules/uuid/dist/esm-node/parse.js +++ /dev/null @@ -1,35 +0,0 @@ -import validate from './validate.js'; - -function parse(uuid) { - if (!validate(uuid)) { - throw TypeError('Invalid UUID'); - } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} - -export default parse; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/regex.js b/node_modules/uuid/dist/esm-node/regex.js deleted file mode 100644 index 3da8673..0000000 --- a/node_modules/uuid/dist/esm-node/regex.js +++ /dev/null @@ -1 +0,0 @@ -export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/rng.js b/node_modules/uuid/dist/esm-node/rng.js deleted file mode 100644 index 8006244..0000000 --- a/node_modules/uuid/dist/esm-node/rng.js +++ /dev/null @@ -1,12 +0,0 @@ -import crypto from 'crypto'; -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate - -let poolPtr = rnds8Pool.length; -export default function rng() { - if (poolPtr > rnds8Pool.length - 16) { - crypto.randomFillSync(rnds8Pool); - poolPtr = 0; - } - - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/sha1.js b/node_modules/uuid/dist/esm-node/sha1.js deleted file mode 100644 index e23850b..0000000 --- a/node_modules/uuid/dist/esm-node/sha1.js +++ /dev/null @@ -1,13 +0,0 @@ -import crypto from 'crypto'; - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return crypto.createHash('sha1').update(bytes).digest(); -} - -export default sha1; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/stringify.js b/node_modules/uuid/dist/esm-node/stringify.js deleted file mode 100644 index f9bca12..0000000 --- a/node_modules/uuid/dist/esm-node/stringify.js +++ /dev/null @@ -1,29 +0,0 @@ -import validate from './validate.js'; -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ - -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!validate(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; -} - -export default stringify; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/v1.js b/node_modules/uuid/dist/esm-node/v1.js deleted file mode 100644 index ebf81ac..0000000 --- a/node_modules/uuid/dist/esm-node/v1.js +++ /dev/null @@ -1,95 +0,0 @@ -import rng from './rng.js'; -import stringify from './stringify.js'; // **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html - -let _nodeId; - -let _clockseq; // Previous uuid creation time - - -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || rng)(); - - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - - - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) - - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression - - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested - - - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` - - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` - - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - - b[i++] = clockseq & 0xff; // `node` - - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf || stringify(b); -} - -export default v1; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/v3.js b/node_modules/uuid/dist/esm-node/v3.js deleted file mode 100644 index 09063b8..0000000 --- a/node_modules/uuid/dist/esm-node/v3.js +++ /dev/null @@ -1,4 +0,0 @@ -import v35 from './v35.js'; -import md5 from './md5.js'; -const v3 = v35('v3', 0x30, md5); -export default v3; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/v35.js b/node_modules/uuid/dist/esm-node/v35.js deleted file mode 100644 index 22f6a19..0000000 --- a/node_modules/uuid/dist/esm-node/v35.js +++ /dev/null @@ -1,64 +0,0 @@ -import stringify from './stringify.js'; -import parse from './parse.js'; - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -export default function (name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = parse(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return stringify(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/v4.js b/node_modules/uuid/dist/esm-node/v4.js deleted file mode 100644 index efad926..0000000 --- a/node_modules/uuid/dist/esm-node/v4.js +++ /dev/null @@ -1,24 +0,0 @@ -import rng from './rng.js'; -import stringify from './stringify.js'; - -function v4(options, buf, offset) { - options = options || {}; - const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - - return buf; - } - - return stringify(rnds); -} - -export default v4; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/v5.js b/node_modules/uuid/dist/esm-node/v5.js deleted file mode 100644 index e87fe31..0000000 --- a/node_modules/uuid/dist/esm-node/v5.js +++ /dev/null @@ -1,4 +0,0 @@ -import v35 from './v35.js'; -import sha1 from './sha1.js'; -const v5 = v35('v5', 0x50, sha1); -export default v5; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/validate.js b/node_modules/uuid/dist/esm-node/validate.js deleted file mode 100644 index f1cdc7a..0000000 --- a/node_modules/uuid/dist/esm-node/validate.js +++ /dev/null @@ -1,7 +0,0 @@ -import REGEX from './regex.js'; - -function validate(uuid) { - return typeof uuid === 'string' && REGEX.test(uuid); -} - -export default validate; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm-node/version.js b/node_modules/uuid/dist/esm-node/version.js deleted file mode 100644 index 77530e9..0000000 --- a/node_modules/uuid/dist/esm-node/version.js +++ /dev/null @@ -1,11 +0,0 @@ -import validate from './validate.js'; - -function version(uuid) { - if (!validate(uuid)) { - throw TypeError('Invalid UUID'); - } - - return parseInt(uuid.substr(14, 1), 16); -} - -export default version; \ No newline at end of file diff --git a/node_modules/uuid/dist/esm/bin/uuid b/node_modules/uuid/dist/esm/bin/uuid new file mode 100755 index 0000000..b4f612d --- /dev/null +++ b/node_modules/uuid/dist/esm/bin/uuid @@ -0,0 +1,2 @@ +#!/usr/bin/env node +import '../uuid-bin.js'; diff --git a/node_modules/uuid/dist/esm/index.d.ts b/node_modules/uuid/dist/esm/index.d.ts new file mode 100644 index 0000000..d7d4edc --- /dev/null +++ b/node_modules/uuid/dist/esm/index.d.ts @@ -0,0 +1,15 @@ +export type * from './types.js'; +export { default as MAX } from './max.js'; +export { default as NIL } from './nil.js'; +export { default as parse } from './parse.js'; +export { default as stringify } from './stringify.js'; +export { default as v1 } from './v1.js'; +export { default as v1ToV6 } from './v1ToV6.js'; +export { default as v3 } from './v3.js'; +export { default as v4 } from './v4.js'; +export { default as v5 } from './v5.js'; +export { default as v6 } from './v6.js'; +export { default as v6ToV1 } from './v6ToV1.js'; +export { default as v7 } from './v7.js'; +export { default as validate } from './validate.js'; +export { default as version } from './version.js'; diff --git a/node_modules/uuid/dist/esm-node/index.js b/node_modules/uuid/dist/esm/index.js similarity index 57% rename from node_modules/uuid/dist/esm-node/index.js rename to node_modules/uuid/dist/esm/index.js index 1db6f6d..3193e9a 100644 --- a/node_modules/uuid/dist/esm-node/index.js +++ b/node_modules/uuid/dist/esm/index.js @@ -1,9 +1,14 @@ +export { default as MAX } from './max.js'; +export { default as NIL } from './nil.js'; +export { default as parse } from './parse.js'; +export { default as stringify } from './stringify.js'; export { default as v1 } from './v1.js'; +export { default as v1ToV6 } from './v1ToV6.js'; export { default as v3 } from './v3.js'; export { default as v4 } from './v4.js'; export { default as v5 } from './v5.js'; -export { default as NIL } from './nil.js'; -export { default as version } from './version.js'; +export { default as v6 } from './v6.js'; +export { default as v6ToV1 } from './v6ToV1.js'; +export { default as v7 } from './v7.js'; export { default as validate } from './validate.js'; -export { default as stringify } from './stringify.js'; -export { default as parse } from './parse.js'; \ No newline at end of file +export { default as version } from './version.js'; diff --git a/node_modules/uuid/dist/esm/max.d.ts b/node_modules/uuid/dist/esm/max.d.ts new file mode 100644 index 0000000..7a1e972 --- /dev/null +++ b/node_modules/uuid/dist/esm/max.d.ts @@ -0,0 +1,2 @@ +declare const _default: "ffffffff-ffff-ffff-ffff-ffffffffffff"; +export default _default; diff --git a/node_modules/uuid/dist/esm/max.js b/node_modules/uuid/dist/esm/max.js new file mode 100644 index 0000000..58951f6 --- /dev/null +++ b/node_modules/uuid/dist/esm/max.js @@ -0,0 +1 @@ +export default 'ffffffff-ffff-ffff-ffff-ffffffffffff'; diff --git a/node_modules/uuid/dist/esm/md5.d.ts b/node_modules/uuid/dist/esm/md5.d.ts new file mode 100644 index 0000000..7d60244 --- /dev/null +++ b/node_modules/uuid/dist/esm/md5.d.ts @@ -0,0 +1,4 @@ +/// <reference types="node" resolution-mode="require"/> +/// <reference types="node" resolution-mode="require"/> +declare function md5(bytes: Uint8Array): Buffer; +export default md5; diff --git a/node_modules/uuid/dist/esm/md5.js b/node_modules/uuid/dist/esm/md5.js new file mode 100644 index 0000000..b922d98 --- /dev/null +++ b/node_modules/uuid/dist/esm/md5.js @@ -0,0 +1,11 @@ +import { createHash } from 'crypto'; +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } + else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + return createHash('md5').update(bytes).digest(); +} +export default md5; diff --git a/node_modules/uuid/dist/esm/native.d.ts b/node_modules/uuid/dist/esm/native.d.ts new file mode 100644 index 0000000..9e0d2ac --- /dev/null +++ b/node_modules/uuid/dist/esm/native.d.ts @@ -0,0 +1,6 @@ +/// <reference types="node" resolution-mode="require"/> +import { randomUUID } from 'crypto'; +declare const _default: { + randomUUID: typeof randomUUID; +}; +export default _default; diff --git a/node_modules/uuid/dist/esm/native.js b/node_modules/uuid/dist/esm/native.js new file mode 100644 index 0000000..ba74bca --- /dev/null +++ b/node_modules/uuid/dist/esm/native.js @@ -0,0 +1,2 @@ +import { randomUUID } from 'crypto'; +export default { randomUUID }; diff --git a/node_modules/uuid/dist/esm/nil.d.ts b/node_modules/uuid/dist/esm/nil.d.ts new file mode 100644 index 0000000..b03bb98 --- /dev/null +++ b/node_modules/uuid/dist/esm/nil.d.ts @@ -0,0 +1,2 @@ +declare const _default: "00000000-0000-0000-0000-000000000000"; +export default _default; diff --git a/node_modules/uuid/dist/esm/nil.js b/node_modules/uuid/dist/esm/nil.js new file mode 100644 index 0000000..de6f830 --- /dev/null +++ b/node_modules/uuid/dist/esm/nil.js @@ -0,0 +1 @@ +export default '00000000-0000-0000-0000-000000000000'; diff --git a/node_modules/uuid/dist/esm/parse.d.ts b/node_modules/uuid/dist/esm/parse.d.ts new file mode 100644 index 0000000..a316fb1 --- /dev/null +++ b/node_modules/uuid/dist/esm/parse.d.ts @@ -0,0 +1,2 @@ +declare function parse(uuid: string): Uint8Array; +export default parse; diff --git a/node_modules/uuid/dist/esm/parse.js b/node_modules/uuid/dist/esm/parse.js new file mode 100644 index 0000000..64ac401 --- /dev/null +++ b/node_modules/uuid/dist/esm/parse.js @@ -0,0 +1,9 @@ +import validate from './validate.js'; +function parse(uuid) { + if (!validate(uuid)) { + throw TypeError('Invalid UUID'); + } + let v; + return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff); +} +export default parse; diff --git a/node_modules/uuid/dist/esm/regex.d.ts b/node_modules/uuid/dist/esm/regex.d.ts new file mode 100644 index 0000000..d39fa3f --- /dev/null +++ b/node_modules/uuid/dist/esm/regex.d.ts @@ -0,0 +1,2 @@ +declare const _default: RegExp; +export default _default; diff --git a/node_modules/uuid/dist/esm/regex.js b/node_modules/uuid/dist/esm/regex.js new file mode 100644 index 0000000..3e38591 --- /dev/null +++ b/node_modules/uuid/dist/esm/regex.js @@ -0,0 +1 @@ +export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i; diff --git a/node_modules/uuid/dist/esm/rng.d.ts b/node_modules/uuid/dist/esm/rng.d.ts new file mode 100644 index 0000000..73e60cf --- /dev/null +++ b/node_modules/uuid/dist/esm/rng.d.ts @@ -0,0 +1 @@ +export default function rng(): Uint8Array; diff --git a/node_modules/uuid/dist/esm/rng.js b/node_modules/uuid/dist/esm/rng.js new file mode 100644 index 0000000..54c1cfe --- /dev/null +++ b/node_modules/uuid/dist/esm/rng.js @@ -0,0 +1,10 @@ +import { randomFillSync } from 'crypto'; +const rnds8Pool = new Uint8Array(256); +let poolPtr = rnds8Pool.length; +export default function rng() { + if (poolPtr > rnds8Pool.length - 16) { + randomFillSync(rnds8Pool); + poolPtr = 0; + } + return rnds8Pool.slice(poolPtr, (poolPtr += 16)); +} diff --git a/node_modules/uuid/dist/esm/sha1.d.ts b/node_modules/uuid/dist/esm/sha1.d.ts new file mode 100644 index 0000000..ebb1404 --- /dev/null +++ b/node_modules/uuid/dist/esm/sha1.d.ts @@ -0,0 +1,4 @@ +/// <reference types="node" resolution-mode="require"/> +/// <reference types="node" resolution-mode="require"/> +declare function sha1(bytes: Uint8Array): Buffer; +export default sha1; diff --git a/node_modules/uuid/dist/esm/sha1.js b/node_modules/uuid/dist/esm/sha1.js new file mode 100644 index 0000000..fda4aa3 --- /dev/null +++ b/node_modules/uuid/dist/esm/sha1.js @@ -0,0 +1,11 @@ +import { createHash } from 'crypto'; +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } + else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + return createHash('sha1').update(bytes).digest(); +} +export default sha1; diff --git a/node_modules/uuid/dist/esm/stringify.d.ts b/node_modules/uuid/dist/esm/stringify.d.ts new file mode 100644 index 0000000..16cb008 --- /dev/null +++ b/node_modules/uuid/dist/esm/stringify.d.ts @@ -0,0 +1,3 @@ +export declare function unsafeStringify(arr: Uint8Array, offset?: number): string; +declare function stringify(arr: Uint8Array, offset?: number): string; +export default stringify; diff --git a/node_modules/uuid/dist/esm/stringify.js b/node_modules/uuid/dist/esm/stringify.js new file mode 100644 index 0000000..962738c --- /dev/null +++ b/node_modules/uuid/dist/esm/stringify.js @@ -0,0 +1,35 @@ +import validate from './validate.js'; +const byteToHex = []; +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).slice(1)); +} +export function unsafeStringify(arr, offset = 0) { + return (byteToHex[arr[offset + 0]] + + byteToHex[arr[offset + 1]] + + byteToHex[arr[offset + 2]] + + byteToHex[arr[offset + 3]] + + '-' + + byteToHex[arr[offset + 4]] + + byteToHex[arr[offset + 5]] + + '-' + + byteToHex[arr[offset + 6]] + + byteToHex[arr[offset + 7]] + + '-' + + byteToHex[arr[offset + 8]] + + byteToHex[arr[offset + 9]] + + '-' + + byteToHex[arr[offset + 10]] + + byteToHex[arr[offset + 11]] + + byteToHex[arr[offset + 12]] + + byteToHex[arr[offset + 13]] + + byteToHex[arr[offset + 14]] + + byteToHex[arr[offset + 15]]).toLowerCase(); +} +function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset); + if (!validate(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + return uuid; +} +export default stringify; diff --git a/node_modules/uuid/dist/esm/types.d.ts b/node_modules/uuid/dist/esm/types.d.ts new file mode 100644 index 0000000..ecaed97 --- /dev/null +++ b/node_modules/uuid/dist/esm/types.d.ts @@ -0,0 +1,21 @@ +export type UUIDTypes<TBuf extends Uint8Array = Uint8Array> = string | TBuf; +export type Version1Options = { + node?: Uint8Array; + clockseq?: number; + random?: Uint8Array; + rng?: () => Uint8Array; + msecs?: number; + nsecs?: number; + _v6?: boolean; +}; +export type Version4Options = { + random?: Uint8Array; + rng?: () => Uint8Array; +}; +export type Version6Options = Version1Options; +export type Version7Options = { + random?: Uint8Array; + msecs?: number; + seq?: number; + rng?: () => Uint8Array; +}; diff --git a/node_modules/uuid/dist/esm/types.js b/node_modules/uuid/dist/esm/types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/uuid/dist/esm/types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/uuid/dist/esm/uuid-bin.d.ts b/node_modules/uuid/dist/esm/uuid-bin.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/uuid/dist/esm/uuid-bin.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/uuid/dist/esm/uuid-bin.js b/node_modules/uuid/dist/esm/uuid-bin.js new file mode 100644 index 0000000..30766fe --- /dev/null +++ b/node_modules/uuid/dist/esm/uuid-bin.js @@ -0,0 +1,70 @@ +import * as assert from 'assert'; +import v1 from './v1.js'; +import v3 from './v3.js'; +import v4 from './v4.js'; +import v5 from './v5.js'; +import v6 from './v6.js'; +import v7 from './v7.js'; +function usage() { + console.log('Usage:'); + console.log(' uuid'); + console.log(' uuid v1'); + console.log(' uuid v3 <name> <namespace uuid>'); + console.log(' uuid v4'); + console.log(' uuid v5 <name> <namespace uuid>'); + console.log(' uuid v6'); + console.log(' uuid v7'); + console.log(' uuid --help'); + console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC9562'); +} +const args = process.argv.slice(2); +if (args.indexOf('--help') >= 0) { + usage(); + process.exit(0); +} +const version = args.shift() || 'v4'; +switch (version) { + case 'v1': + console.log(v1()); + break; + case 'v3': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v3 name not specified'); + assert.ok(namespace != null, 'v3 namespace not specified'); + if (namespace === 'URL') { + namespace = v3.URL; + } + if (namespace === 'DNS') { + namespace = v3.DNS; + } + console.log(v3(name, namespace)); + break; + } + case 'v4': + console.log(v4()); + break; + case 'v5': { + const name = args.shift(); + let namespace = args.shift(); + assert.ok(name != null, 'v5 name not specified'); + assert.ok(namespace != null, 'v5 namespace not specified'); + if (namespace === 'URL') { + namespace = v5.URL; + } + if (namespace === 'DNS') { + namespace = v5.DNS; + } + console.log(v5(name, namespace)); + break; + } + case 'v6': + console.log(v6()); + break; + case 'v7': + console.log(v7()); + break; + default: + usage(); + process.exit(1); +} diff --git a/node_modules/uuid/dist/esm/v1.d.ts b/node_modules/uuid/dist/esm/v1.d.ts new file mode 100644 index 0000000..d8ecee0 --- /dev/null +++ b/node_modules/uuid/dist/esm/v1.d.ts @@ -0,0 +1,11 @@ +import { Version1Options } from './types.js'; +type V1State = { + node?: Uint8Array; + clockseq?: number; + msecs?: number; + nsecs?: number; +}; +declare function v1(options?: Version1Options, buf?: undefined, offset?: number): string; +declare function v1<Buf extends Uint8Array = Uint8Array>(options: Version1Options | undefined, buf: Buf, offset?: number): Buf; +export declare function updateV1State(state: V1State, now: number, rnds: Uint8Array): V1State; +export default v1; diff --git a/node_modules/uuid/dist/esm/v1.js b/node_modules/uuid/dist/esm/v1.js new file mode 100644 index 0000000..65e3f68 --- /dev/null +++ b/node_modules/uuid/dist/esm/v1.js @@ -0,0 +1,83 @@ +import rng from './rng.js'; +import { unsafeStringify } from './stringify.js'; +const _state = {}; +function v1(options, buf, offset) { + let bytes; + const isV6 = options?._v6 ?? false; + if (options) { + const optionsKeys = Object.keys(options); + if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') { + options = undefined; + } + } + if (options) { + bytes = v1Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset); + } + else { + const now = Date.now(); + const rnds = rng(); + updateV1State(_state, now, rnds); + bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset); + } + return buf ?? unsafeStringify(bytes); +} +export function updateV1State(state, now, rnds) { + state.msecs ??= -Infinity; + state.nsecs ??= 0; + if (now === state.msecs) { + state.nsecs++; + if (state.nsecs >= 10000) { + state.node = undefined; + state.nsecs = 0; + } + } + else if (now > state.msecs) { + state.nsecs = 0; + } + else if (now < state.msecs) { + state.node = undefined; + } + if (!state.node) { + state.node = rnds.slice(10, 16); + state.node[0] |= 0x01; + state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff; + } + state.msecs = now; + return state; +} +function v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + nsecs ??= 0; + clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff; + node ??= rnds.slice(10, 16); + msecs += 12219292800000; + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + buf[offset++] = (tl >>> 24) & 0xff; + buf[offset++] = (tl >>> 16) & 0xff; + buf[offset++] = (tl >>> 8) & 0xff; + buf[offset++] = tl & 0xff; + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff; + buf[offset++] = (tmh >>> 8) & 0xff; + buf[offset++] = tmh & 0xff; + buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10; + buf[offset++] = (tmh >>> 16) & 0xff; + buf[offset++] = (clockseq >>> 8) | 0x80; + buf[offset++] = clockseq & 0xff; + for (let n = 0; n < 6; ++n) { + buf[offset++] = node[n]; + } + return buf; +} +export default v1; diff --git a/node_modules/uuid/dist/esm/v1ToV6.d.ts b/node_modules/uuid/dist/esm/v1ToV6.d.ts new file mode 100644 index 0000000..38eaaf0 --- /dev/null +++ b/node_modules/uuid/dist/esm/v1ToV6.d.ts @@ -0,0 +1,2 @@ +export default function v1ToV6(uuid: string): string; +export default function v1ToV6(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/esm/v1ToV6.js b/node_modules/uuid/dist/esm/v1ToV6.js new file mode 100644 index 0000000..da0f763 --- /dev/null +++ b/node_modules/uuid/dist/esm/v1ToV6.js @@ -0,0 +1,10 @@ +import parse from './parse.js'; +import { unsafeStringify } from './stringify.js'; +export default function v1ToV6(uuid) { + const v1Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; + const v6Bytes = _v1ToV6(v1Bytes); + return typeof uuid === 'string' ? unsafeStringify(v6Bytes) : v6Bytes; +} +function _v1ToV6(v1Bytes) { + return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]); +} diff --git a/node_modules/uuid/dist/esm/v3.d.ts b/node_modules/uuid/dist/esm/v3.d.ts new file mode 100644 index 0000000..5d1c434 --- /dev/null +++ b/node_modules/uuid/dist/esm/v3.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v3(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v3<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v3 { + var DNS: string; + var URL: string; +} +export default v3; diff --git a/node_modules/uuid/dist/esm/v3.js b/node_modules/uuid/dist/esm/v3.js new file mode 100644 index 0000000..b5c3781 --- /dev/null +++ b/node_modules/uuid/dist/esm/v3.js @@ -0,0 +1,9 @@ +import md5 from './md5.js'; +import v35, { DNS, URL } from './v35.js'; +export { DNS, URL } from './v35.js'; +function v3(value, namespace, buf, offset) { + return v35(0x30, md5, value, namespace, buf, offset); +} +v3.DNS = DNS; +v3.URL = URL; +export default v3; diff --git a/node_modules/uuid/dist/esm/v35.d.ts b/node_modules/uuid/dist/esm/v35.d.ts new file mode 100644 index 0000000..4e6e9d5 --- /dev/null +++ b/node_modules/uuid/dist/esm/v35.d.ts @@ -0,0 +1,7 @@ +import { UUIDTypes } from './types.js'; +export declare function stringToBytes(str: string): Uint8Array; +export declare const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; +export declare const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; +type HashFunction = (bytes: Uint8Array) => Uint8Array; +export default function v35<TBuf extends Uint8Array = Uint8Array>(version: 0x30 | 0x50, hash: HashFunction, value: string | Uint8Array, namespace: UUIDTypes, buf?: TBuf, offset?: number): UUIDTypes<TBuf>; +export {}; diff --git a/node_modules/uuid/dist/esm/v35.js b/node_modules/uuid/dist/esm/v35.js new file mode 100644 index 0000000..2e02842 --- /dev/null +++ b/node_modules/uuid/dist/esm/v35.js @@ -0,0 +1,39 @@ +import parse from './parse.js'; +import { unsafeStringify } from './stringify.js'; +export function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); + const bytes = new Uint8Array(str.length); + for (let i = 0; i < str.length; ++i) { + bytes[i] = str.charCodeAt(i); + } + return bytes; +} +export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +export default function v35(version, hash, value, namespace, buf, offset) { + const valueBytes = typeof value === 'string' ? stringToBytes(value) : value; + const namespaceBytes = typeof namespace === 'string' ? parse(namespace) : namespace; + if (typeof namespace === 'string') { + namespace = parse(namespace); + } + if (namespace?.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } + let bytes = new Uint8Array(16 + valueBytes.length); + bytes.set(namespaceBytes); + bytes.set(valueBytes, namespaceBytes.length); + bytes = hash(bytes); + bytes[6] = (bytes[6] & 0x0f) | version; + bytes[8] = (bytes[8] & 0x3f) | 0x80; + if (buf) { + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return unsafeStringify(bytes); +} diff --git a/node_modules/uuid/dist/esm/v4.d.ts b/node_modules/uuid/dist/esm/v4.d.ts new file mode 100644 index 0000000..8205333 --- /dev/null +++ b/node_modules/uuid/dist/esm/v4.d.ts @@ -0,0 +1,4 @@ +import { Version4Options } from './types.js'; +declare function v4(options?: Version4Options, buf?: undefined, offset?: number): string; +declare function v4<TBuf extends Uint8Array = Uint8Array>(options: Version4Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v4; diff --git a/node_modules/uuid/dist/esm/v4.js b/node_modules/uuid/dist/esm/v4.js new file mode 100644 index 0000000..dd9067a --- /dev/null +++ b/node_modules/uuid/dist/esm/v4.js @@ -0,0 +1,27 @@ +import native from './native.js'; +import rng from './rng.js'; +import { unsafeStringify } from './stringify.js'; +function v4(options, buf, offset) { + if (native.randomUUID && !buf && !options) { + return native.randomUUID(); + } + options = options || {}; + const rnds = options.random ?? options.rng?.() ?? rng(); + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + if (buf) { + offset = offset || 0; + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return unsafeStringify(rnds); +} +export default v4; diff --git a/node_modules/uuid/dist/esm/v5.d.ts b/node_modules/uuid/dist/esm/v5.d.ts new file mode 100644 index 0000000..0e2ff2f --- /dev/null +++ b/node_modules/uuid/dist/esm/v5.d.ts @@ -0,0 +1,9 @@ +import { UUIDTypes } from './types.js'; +export { DNS, URL } from './v35.js'; +declare function v5(value: string | Uint8Array, namespace: UUIDTypes, buf?: undefined, offset?: number): string; +declare function v5<TBuf extends Uint8Array = Uint8Array>(value: string | Uint8Array, namespace: UUIDTypes, buf: TBuf, offset?: number): TBuf; +declare namespace v5 { + var DNS: string; + var URL: string; +} +export default v5; diff --git a/node_modules/uuid/dist/esm/v5.js b/node_modules/uuid/dist/esm/v5.js new file mode 100644 index 0000000..bd470a4 --- /dev/null +++ b/node_modules/uuid/dist/esm/v5.js @@ -0,0 +1,9 @@ +import sha1 from './sha1.js'; +import v35, { DNS, URL } from './v35.js'; +export { DNS, URL } from './v35.js'; +function v5(value, namespace, buf, offset) { + return v35(0x50, sha1, value, namespace, buf, offset); +} +v5.DNS = DNS; +v5.URL = URL; +export default v5; diff --git a/node_modules/uuid/dist/esm/v6.d.ts b/node_modules/uuid/dist/esm/v6.d.ts new file mode 100644 index 0000000..cabf4a0 --- /dev/null +++ b/node_modules/uuid/dist/esm/v6.d.ts @@ -0,0 +1,4 @@ +import { Version6Options } from './types.js'; +declare function v6(options?: Version6Options, buf?: undefined, offset?: number): string; +declare function v6<TBuf extends Uint8Array = Uint8Array>(options: Version6Options | undefined, buf: TBuf, offset?: number): TBuf; +export default v6; diff --git a/node_modules/uuid/dist/esm/v6.js b/node_modules/uuid/dist/esm/v6.js new file mode 100644 index 0000000..bd1fc35 --- /dev/null +++ b/node_modules/uuid/dist/esm/v6.js @@ -0,0 +1,20 @@ +import { unsafeStringify } from './stringify.js'; +import v1 from './v1.js'; +import v1ToV6 from './v1ToV6.js'; +function v6(options, buf, offset) { + options ??= {}; + offset ??= 0; + let bytes = v1({ ...options, _v6: true }, new Uint8Array(16)); + bytes = v1ToV6(bytes); + if (buf) { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + for (let i = 0; i < 16; i++) { + buf[offset + i] = bytes[i]; + } + return buf; + } + return unsafeStringify(bytes); +} +export default v6; diff --git a/node_modules/uuid/dist/esm/v6ToV1.d.ts b/node_modules/uuid/dist/esm/v6ToV1.d.ts new file mode 100644 index 0000000..3b3ffc2 --- /dev/null +++ b/node_modules/uuid/dist/esm/v6ToV1.d.ts @@ -0,0 +1,2 @@ +export default function v6ToV1(uuid: string): string; +export default function v6ToV1(uuid: Uint8Array): Uint8Array; diff --git a/node_modules/uuid/dist/esm/v6ToV1.js b/node_modules/uuid/dist/esm/v6ToV1.js new file mode 100644 index 0000000..bfd942f --- /dev/null +++ b/node_modules/uuid/dist/esm/v6ToV1.js @@ -0,0 +1,10 @@ +import parse from './parse.js'; +import { unsafeStringify } from './stringify.js'; +export default function v6ToV1(uuid) { + const v6Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; + const v1Bytes = _v6ToV1(v6Bytes); + return typeof uuid === 'string' ? unsafeStringify(v1Bytes) : v1Bytes; +} +function _v6ToV1(v6Bytes) { + return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]); +} diff --git a/node_modules/uuid/dist/esm/v7.d.ts b/node_modules/uuid/dist/esm/v7.d.ts new file mode 100644 index 0000000..f49b03d --- /dev/null +++ b/node_modules/uuid/dist/esm/v7.d.ts @@ -0,0 +1,9 @@ +import { Version7Options } from './types.js'; +type V7State = { + msecs?: number; + seq?: number; +}; +declare function v7(options?: Version7Options, buf?: undefined, offset?: number): string; +declare function v7<TBuf extends Uint8Array = Uint8Array>(options: Version7Options | undefined, buf: TBuf, offset?: number): TBuf; +export declare function updateV7State(state: V7State, now: number, rnds: Uint8Array): V7State; +export default v7; diff --git a/node_modules/uuid/dist/esm/v7.js b/node_modules/uuid/dist/esm/v7.js new file mode 100644 index 0000000..276c9bf --- /dev/null +++ b/node_modules/uuid/dist/esm/v7.js @@ -0,0 +1,65 @@ +import rng from './rng.js'; +import { unsafeStringify } from './stringify.js'; +const _state = {}; +function v7(options, buf, offset) { + let bytes; + if (options) { + bytes = v7Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.seq, buf, offset); + } + else { + const now = Date.now(); + const rnds = rng(); + updateV7State(_state, now, rnds); + bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset); + } + return buf ?? unsafeStringify(bytes); +} +export function updateV7State(state, now, rnds) { + state.msecs ??= -Infinity; + state.seq ??= 0; + if (now > state.msecs) { + state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + state.msecs = now; + } + else { + state.seq = (state.seq + 1) | 0; + if (state.seq === 0) { + state.msecs++; + } + } + return state; +} +function v7Bytes(rnds, msecs, seq, buf, offset = 0) { + if (rnds.length < 16) { + throw new Error('Random bytes length must be >= 16'); + } + if (!buf) { + buf = new Uint8Array(16); + offset = 0; + } + else { + if (offset < 0 || offset + 16 > buf.length) { + throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`); + } + } + msecs ??= Date.now(); + seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9]; + buf[offset++] = (msecs / 0x10000000000) & 0xff; + buf[offset++] = (msecs / 0x100000000) & 0xff; + buf[offset++] = (msecs / 0x1000000) & 0xff; + buf[offset++] = (msecs / 0x10000) & 0xff; + buf[offset++] = (msecs / 0x100) & 0xff; + buf[offset++] = msecs & 0xff; + buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f); + buf[offset++] = (seq >>> 20) & 0xff; + buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f); + buf[offset++] = (seq >>> 6) & 0xff; + buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03); + buf[offset++] = rnds[11]; + buf[offset++] = rnds[12]; + buf[offset++] = rnds[13]; + buf[offset++] = rnds[14]; + buf[offset++] = rnds[15]; + return buf; +} +export default v7; diff --git a/node_modules/uuid/dist/esm/validate.d.ts b/node_modules/uuid/dist/esm/validate.d.ts new file mode 100644 index 0000000..57da03d --- /dev/null +++ b/node_modules/uuid/dist/esm/validate.d.ts @@ -0,0 +1,2 @@ +declare function validate(uuid: unknown): boolean; +export default validate; diff --git a/node_modules/uuid/dist/esm/validate.js b/node_modules/uuid/dist/esm/validate.js new file mode 100644 index 0000000..444a1a2 --- /dev/null +++ b/node_modules/uuid/dist/esm/validate.js @@ -0,0 +1,5 @@ +import REGEX from './regex.js'; +function validate(uuid) { + return typeof uuid === 'string' && REGEX.test(uuid); +} +export default validate; diff --git a/node_modules/uuid/dist/esm/version.d.ts b/node_modules/uuid/dist/esm/version.d.ts new file mode 100644 index 0000000..f1948dc --- /dev/null +++ b/node_modules/uuid/dist/esm/version.d.ts @@ -0,0 +1,2 @@ +declare function version(uuid: string): number; +export default version; diff --git a/node_modules/uuid/dist/esm/version.js b/node_modules/uuid/dist/esm/version.js new file mode 100644 index 0000000..bae91d3 --- /dev/null +++ b/node_modules/uuid/dist/esm/version.js @@ -0,0 +1,8 @@ +import validate from './validate.js'; +function version(uuid) { + if (!validate(uuid)) { + throw TypeError('Invalid UUID'); + } + return parseInt(uuid.slice(14, 15), 16); +} +export default version; diff --git a/node_modules/uuid/dist/index.js b/node_modules/uuid/dist/index.js deleted file mode 100644 index bf13b10..0000000 --- a/node_modules/uuid/dist/index.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "v1", { - enumerable: true, - get: function () { - return _v.default; - } -}); -Object.defineProperty(exports, "v3", { - enumerable: true, - get: function () { - return _v2.default; - } -}); -Object.defineProperty(exports, "v4", { - enumerable: true, - get: function () { - return _v3.default; - } -}); -Object.defineProperty(exports, "v5", { - enumerable: true, - get: function () { - return _v4.default; - } -}); -Object.defineProperty(exports, "NIL", { - enumerable: true, - get: function () { - return _nil.default; - } -}); -Object.defineProperty(exports, "version", { - enumerable: true, - get: function () { - return _version.default; - } -}); -Object.defineProperty(exports, "validate", { - enumerable: true, - get: function () { - return _validate.default; - } -}); -Object.defineProperty(exports, "stringify", { - enumerable: true, - get: function () { - return _stringify.default; - } -}); -Object.defineProperty(exports, "parse", { - enumerable: true, - get: function () { - return _parse.default; - } -}); - -var _v = _interopRequireDefault(require("./v1.js")); - -var _v2 = _interopRequireDefault(require("./v3.js")); - -var _v3 = _interopRequireDefault(require("./v4.js")); - -var _v4 = _interopRequireDefault(require("./v5.js")); - -var _nil = _interopRequireDefault(require("./nil.js")); - -var _version = _interopRequireDefault(require("./version.js")); - -var _validate = _interopRequireDefault(require("./validate.js")); - -var _stringify = _interopRequireDefault(require("./stringify.js")); - -var _parse = _interopRequireDefault(require("./parse.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } \ No newline at end of file diff --git a/node_modules/uuid/dist/md5-browser.js b/node_modules/uuid/dist/md5-browser.js deleted file mode 100644 index 7a4582a..0000000 --- a/node_modules/uuid/dist/md5-browser.js +++ /dev/null @@ -1,223 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -/* - * Browser-compatible JavaScript MD5 - * - * Modification of JavaScript MD5 - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * https://opensource.org/licenses/MIT - * - * Based on - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ -function md5(bytes) { - if (typeof bytes === 'string') { - const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape - - bytes = new Uint8Array(msg.length); - - for (let i = 0; i < msg.length; ++i) { - bytes[i] = msg.charCodeAt(i); - } - } - - return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8)); -} -/* - * Convert an array of little-endian words to an array of bytes - */ - - -function md5ToHexEncodedArray(input) { - const output = []; - const length32 = input.length * 32; - const hexTab = '0123456789abcdef'; - - for (let i = 0; i < length32; i += 8) { - const x = input[i >> 5] >>> i % 32 & 0xff; - const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16); - output.push(hex); - } - - return output; -} -/** - * Calculate output length with padding and bit length - */ - - -function getOutputLength(inputLength8) { - return (inputLength8 + 64 >>> 9 << 4) + 14 + 1; -} -/* - * Calculate the MD5 of an array of little-endian words, and a bit length. - */ - - -function wordsToMd5(x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << len % 32; - x[getOutputLength(len) - 1] = len; - let a = 1732584193; - let b = -271733879; - let c = -1732584194; - let d = 271733878; - - for (let i = 0; i < x.length; i += 16) { - const olda = a; - const oldb = b; - const oldc = c; - const oldd = d; - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - - return [a, b, c, d]; -} -/* - * Convert an array bytes to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - */ - - -function bytesToWords(input) { - if (input.length === 0) { - return []; - } - - const length8 = input.length * 8; - const output = new Uint32Array(getOutputLength(length8)); - - for (let i = 0; i < length8; i += 8) { - output[i >> 5] |= (input[i / 8] & 0xff) << i % 32; - } - - return output; -} -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ - - -function safeAdd(x, y) { - const lsw = (x & 0xffff) + (y & 0xffff); - const msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return msw << 16 | lsw & 0xffff; -} -/* - * Bitwise rotate a 32-bit number to the left. - */ - - -function bitRotateLeft(num, cnt) { - return num << cnt | num >>> 32 - cnt; -} -/* - * These functions implement the four basic operations the algorithm uses. - */ - - -function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); -} - -function md5ff(a, b, c, d, x, s, t) { - return md5cmn(b & c | ~b & d, a, b, x, s, t); -} - -function md5gg(a, b, c, d, x, s, t) { - return md5cmn(b & d | c & ~d, a, b, x, s, t); -} - -function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); -} - -function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | ~d), a, b, x, s, t); -} - -var _default = md5; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/md5.js b/node_modules/uuid/dist/md5.js deleted file mode 100644 index 824d481..0000000 --- a/node_modules/uuid/dist/md5.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _crypto = _interopRequireDefault(require("crypto")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('md5').update(bytes).digest(); -} - -var _default = md5; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/nil.js b/node_modules/uuid/dist/nil.js deleted file mode 100644 index 7ade577..0000000 --- a/node_modules/uuid/dist/nil.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/parse.js b/node_modules/uuid/dist/parse.js deleted file mode 100644 index 4c69fc3..0000000 --- a/node_modules/uuid/dist/parse.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _validate = _interopRequireDefault(require("./validate.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} - -var _default = parse; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/regex.js b/node_modules/uuid/dist/regex.js deleted file mode 100644 index 1ef91d6..0000000 --- a/node_modules/uuid/dist/regex.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/rng-browser.js b/node_modules/uuid/dist/rng-browser.js deleted file mode 100644 index 91faeae..0000000 --- a/node_modules/uuid/dist/rng-browser.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = rng; -// Unique ID creation requires a high quality random # generator. In the browser we therefore -// require the crypto API and do not support built-in fallback to lower quality random number -// generators (like Math.random()). -let getRandomValues; -const rnds8 = new Uint8Array(16); - -function rng() { - // lazy load so that environments that need to polyfill have a chance to do so - if (!getRandomValues) { - // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also, - // find the complete implementation of crypto (msCrypto) on IE11. - getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto); - - if (!getRandomValues) { - throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); - } - } - - return getRandomValues(rnds8); -} \ No newline at end of file diff --git a/node_modules/uuid/dist/rng.js b/node_modules/uuid/dist/rng.js deleted file mode 100644 index 3507f93..0000000 --- a/node_modules/uuid/dist/rng.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = rng; - -var _crypto = _interopRequireDefault(require("crypto")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate - -let poolPtr = rnds8Pool.length; - -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); - - poolPtr = 0; - } - - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} \ No newline at end of file diff --git a/node_modules/uuid/dist/sha1-browser.js b/node_modules/uuid/dist/sha1-browser.js deleted file mode 100644 index 24cbced..0000000 --- a/node_modules/uuid/dist/sha1-browser.js +++ /dev/null @@ -1,104 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -// Adapted from Chris Veness' SHA1 code at -// http://www.movable-type.co.uk/scripts/sha1.html -function f(s, x, y, z) { - switch (s) { - case 0: - return x & y ^ ~x & z; - - case 1: - return x ^ y ^ z; - - case 2: - return x & y ^ x & z ^ y & z; - - case 3: - return x ^ y ^ z; - } -} - -function ROTL(x, n) { - return x << n | x >>> 32 - n; -} - -function sha1(bytes) { - const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; - const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; - - if (typeof bytes === 'string') { - const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape - - bytes = []; - - for (let i = 0; i < msg.length; ++i) { - bytes.push(msg.charCodeAt(i)); - } - } else if (!Array.isArray(bytes)) { - // Convert Array-like to Array - bytes = Array.prototype.slice.call(bytes); - } - - bytes.push(0x80); - const l = bytes.length / 4 + 2; - const N = Math.ceil(l / 16); - const M = new Array(N); - - for (let i = 0; i < N; ++i) { - const arr = new Uint32Array(16); - - for (let j = 0; j < 16; ++j) { - arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3]; - } - - M[i] = arr; - } - - M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32); - M[N - 1][14] = Math.floor(M[N - 1][14]); - M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff; - - for (let i = 0; i < N; ++i) { - const W = new Uint32Array(80); - - for (let t = 0; t < 16; ++t) { - W[t] = M[i][t]; - } - - for (let t = 16; t < 80; ++t) { - W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); - } - - let a = H[0]; - let b = H[1]; - let c = H[2]; - let d = H[3]; - let e = H[4]; - - for (let t = 0; t < 80; ++t) { - const s = Math.floor(t / 20); - const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0; - e = d; - d = c; - c = ROTL(b, 30) >>> 0; - b = a; - a = T; - } - - H[0] = H[0] + a >>> 0; - H[1] = H[1] + b >>> 0; - H[2] = H[2] + c >>> 0; - H[3] = H[3] + d >>> 0; - H[4] = H[4] + e >>> 0; - } - - return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff]; -} - -var _default = sha1; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/sha1.js b/node_modules/uuid/dist/sha1.js deleted file mode 100644 index 03bdd63..0000000 --- a/node_modules/uuid/dist/sha1.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _crypto = _interopRequireDefault(require("crypto")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('sha1').update(bytes).digest(); -} - -var _default = sha1; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/stringify.js b/node_modules/uuid/dist/stringify.js deleted file mode 100644 index b8e7519..0000000 --- a/node_modules/uuid/dist/stringify.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _validate = _interopRequireDefault(require("./validate.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; -} - -var _default = stringify; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuid.min.js b/node_modules/uuid/dist/umd/uuid.min.js deleted file mode 100644 index 639ca2f..0000000 --- a/node_modules/uuid/dist/umd/uuid.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).uuid={})}(this,(function(r){"use strict";var e,n=new Uint8Array(16);function t(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(n)}var o=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function a(r){return"string"==typeof r&&o.test(r)}for(var i,u,f=[],s=0;s<256;++s)f.push((s+256).toString(16).substr(1));function c(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(f[r[e+0]]+f[r[e+1]]+f[r[e+2]]+f[r[e+3]]+"-"+f[r[e+4]]+f[r[e+5]]+"-"+f[r[e+6]]+f[r[e+7]]+"-"+f[r[e+8]]+f[r[e+9]]+"-"+f[r[e+10]]+f[r[e+11]]+f[r[e+12]]+f[r[e+13]]+f[r[e+14]]+f[r[e+15]]).toLowerCase();if(!a(n))throw TypeError("Stringified UUID is invalid");return n}var l=0,d=0;function v(r){if(!a(r))throw TypeError("Invalid UUID");var e,n=new Uint8Array(16);return n[0]=(e=parseInt(r.slice(0,8),16))>>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=255&e,n[4]=(e=parseInt(r.slice(9,13),16))>>>8,n[5]=255&e,n[6]=(e=parseInt(r.slice(14,18),16))>>>8,n[7]=255&e,n[8]=(e=parseInt(r.slice(19,23),16))>>>8,n[9]=255&e,n[10]=(e=parseInt(r.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=255&e,n}function p(r,e,n){function t(r,t,o,a){if("string"==typeof r&&(r=function(r){r=unescape(encodeURIComponent(r));for(var e=[],n=0;n<r.length;++n)e.push(r.charCodeAt(n));return e}(r)),"string"==typeof t&&(t=v(t)),16!==t.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var i=new Uint8Array(16+r.length);if(i.set(t),i.set(r,t.length),(i=n(i))[6]=15&i[6]|e,i[8]=63&i[8]|128,o){a=a||0;for(var u=0;u<16;++u)o[a+u]=i[u];return o}return c(i)}try{t.name=r}catch(r){}return t.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",t.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",t}function h(r){return 14+(r+64>>>9<<4)+1}function y(r,e){var n=(65535&r)+(65535&e);return(r>>16)+(e>>16)+(n>>16)<<16|65535&n}function g(r,e,n,t,o,a){return y((i=y(y(e,r),y(t,a)))<<(u=o)|i>>>32-u,n);var i,u}function m(r,e,n,t,o,a,i){return g(e&n|~e&t,r,e,o,a,i)}function w(r,e,n,t,o,a,i){return g(e&t|n&~t,r,e,o,a,i)}function b(r,e,n,t,o,a,i){return g(e^n^t,r,e,o,a,i)}function A(r,e,n,t,o,a,i){return g(n^(e|~t),r,e,o,a,i)}var U=p("v3",48,(function(r){if("string"==typeof r){var e=unescape(encodeURIComponent(r));r=new Uint8Array(e.length);for(var n=0;n<e.length;++n)r[n]=e.charCodeAt(n)}return function(r){for(var e=[],n=32*r.length,t="0123456789abcdef",o=0;o<n;o+=8){var a=r[o>>5]>>>o%32&255,i=parseInt(t.charAt(a>>>4&15)+t.charAt(15&a),16);e.push(i)}return e}(function(r,e){r[e>>5]|=128<<e%32,r[h(e)-1]=e;for(var n=1732584193,t=-271733879,o=-1732584194,a=271733878,i=0;i<r.length;i+=16){var u=n,f=t,s=o,c=a;n=m(n,t,o,a,r[i],7,-680876936),a=m(a,n,t,o,r[i+1],12,-389564586),o=m(o,a,n,t,r[i+2],17,606105819),t=m(t,o,a,n,r[i+3],22,-1044525330),n=m(n,t,o,a,r[i+4],7,-176418897),a=m(a,n,t,o,r[i+5],12,1200080426),o=m(o,a,n,t,r[i+6],17,-1473231341),t=m(t,o,a,n,r[i+7],22,-45705983),n=m(n,t,o,a,r[i+8],7,1770035416),a=m(a,n,t,o,r[i+9],12,-1958414417),o=m(o,a,n,t,r[i+10],17,-42063),t=m(t,o,a,n,r[i+11],22,-1990404162),n=m(n,t,o,a,r[i+12],7,1804603682),a=m(a,n,t,o,r[i+13],12,-40341101),o=m(o,a,n,t,r[i+14],17,-1502002290),n=w(n,t=m(t,o,a,n,r[i+15],22,1236535329),o,a,r[i+1],5,-165796510),a=w(a,n,t,o,r[i+6],9,-1069501632),o=w(o,a,n,t,r[i+11],14,643717713),t=w(t,o,a,n,r[i],20,-373897302),n=w(n,t,o,a,r[i+5],5,-701558691),a=w(a,n,t,o,r[i+10],9,38016083),o=w(o,a,n,t,r[i+15],14,-660478335),t=w(t,o,a,n,r[i+4],20,-405537848),n=w(n,t,o,a,r[i+9],5,568446438),a=w(a,n,t,o,r[i+14],9,-1019803690),o=w(o,a,n,t,r[i+3],14,-187363961),t=w(t,o,a,n,r[i+8],20,1163531501),n=w(n,t,o,a,r[i+13],5,-1444681467),a=w(a,n,t,o,r[i+2],9,-51403784),o=w(o,a,n,t,r[i+7],14,1735328473),n=b(n,t=w(t,o,a,n,r[i+12],20,-1926607734),o,a,r[i+5],4,-378558),a=b(a,n,t,o,r[i+8],11,-2022574463),o=b(o,a,n,t,r[i+11],16,1839030562),t=b(t,o,a,n,r[i+14],23,-35309556),n=b(n,t,o,a,r[i+1],4,-1530992060),a=b(a,n,t,o,r[i+4],11,1272893353),o=b(o,a,n,t,r[i+7],16,-155497632),t=b(t,o,a,n,r[i+10],23,-1094730640),n=b(n,t,o,a,r[i+13],4,681279174),a=b(a,n,t,o,r[i],11,-358537222),o=b(o,a,n,t,r[i+3],16,-722521979),t=b(t,o,a,n,r[i+6],23,76029189),n=b(n,t,o,a,r[i+9],4,-640364487),a=b(a,n,t,o,r[i+12],11,-421815835),o=b(o,a,n,t,r[i+15],16,530742520),n=A(n,t=b(t,o,a,n,r[i+2],23,-995338651),o,a,r[i],6,-198630844),a=A(a,n,t,o,r[i+7],10,1126891415),o=A(o,a,n,t,r[i+14],15,-1416354905),t=A(t,o,a,n,r[i+5],21,-57434055),n=A(n,t,o,a,r[i+12],6,1700485571),a=A(a,n,t,o,r[i+3],10,-1894986606),o=A(o,a,n,t,r[i+10],15,-1051523),t=A(t,o,a,n,r[i+1],21,-2054922799),n=A(n,t,o,a,r[i+8],6,1873313359),a=A(a,n,t,o,r[i+15],10,-30611744),o=A(o,a,n,t,r[i+6],15,-1560198380),t=A(t,o,a,n,r[i+13],21,1309151649),n=A(n,t,o,a,r[i+4],6,-145523070),a=A(a,n,t,o,r[i+11],10,-1120210379),o=A(o,a,n,t,r[i+2],15,718787259),t=A(t,o,a,n,r[i+9],21,-343485551),n=y(n,u),t=y(t,f),o=y(o,s),a=y(a,c)}return[n,t,o,a]}(function(r){if(0===r.length)return[];for(var e=8*r.length,n=new Uint32Array(h(e)),t=0;t<e;t+=8)n[t>>5]|=(255&r[t/8])<<t%32;return n}(r),8*r.length))}));function I(r,e,n,t){switch(r){case 0:return e&n^~e&t;case 1:return e^n^t;case 2:return e&n^e&t^n&t;case 3:return e^n^t}}function C(r,e){return r<<e|r>>>32-e}var R=p("v5",80,(function(r){var e=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof r){var t=unescape(encodeURIComponent(r));r=[];for(var o=0;o<t.length;++o)r.push(t.charCodeAt(o))}else Array.isArray(r)||(r=Array.prototype.slice.call(r));r.push(128);for(var a=r.length/4+2,i=Math.ceil(a/16),u=new Array(i),f=0;f<i;++f){for(var s=new Uint32Array(16),c=0;c<16;++c)s[c]=r[64*f+4*c]<<24|r[64*f+4*c+1]<<16|r[64*f+4*c+2]<<8|r[64*f+4*c+3];u[f]=s}u[i-1][14]=8*(r.length-1)/Math.pow(2,32),u[i-1][14]=Math.floor(u[i-1][14]),u[i-1][15]=8*(r.length-1)&4294967295;for(var l=0;l<i;++l){for(var d=new Uint32Array(80),v=0;v<16;++v)d[v]=u[l][v];for(var p=16;p<80;++p)d[p]=C(d[p-3]^d[p-8]^d[p-14]^d[p-16],1);for(var h=n[0],y=n[1],g=n[2],m=n[3],w=n[4],b=0;b<80;++b){var A=Math.floor(b/20),U=C(h,5)+I(A,y,g,m)+w+e[A]+d[b]>>>0;w=m,m=g,g=C(y,30)>>>0,y=h,h=U}n[0]=n[0]+h>>>0,n[1]=n[1]+y>>>0,n[2]=n[2]+g>>>0,n[3]=n[3]+m>>>0,n[4]=n[4]+w>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]}));r.NIL="00000000-0000-0000-0000-000000000000",r.parse=v,r.stringify=c,r.v1=function(r,e,n){var o=e&&n||0,a=e||new Array(16),f=(r=r||{}).node||i,s=void 0!==r.clockseq?r.clockseq:u;if(null==f||null==s){var v=r.random||(r.rng||t)();null==f&&(f=i=[1|v[0],v[1],v[2],v[3],v[4],v[5]]),null==s&&(s=u=16383&(v[6]<<8|v[7]))}var p=void 0!==r.msecs?r.msecs:Date.now(),h=void 0!==r.nsecs?r.nsecs:d+1,y=p-l+(h-d)/1e4;if(y<0&&void 0===r.clockseq&&(s=s+1&16383),(y<0||p>l)&&void 0===r.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");l=p,d=h,u=s;var g=(1e4*(268435455&(p+=122192928e5))+h)%4294967296;a[o++]=g>>>24&255,a[o++]=g>>>16&255,a[o++]=g>>>8&255,a[o++]=255&g;var m=p/4294967296*1e4&268435455;a[o++]=m>>>8&255,a[o++]=255&m,a[o++]=m>>>24&15|16,a[o++]=m>>>16&255,a[o++]=s>>>8|128,a[o++]=255&s;for(var w=0;w<6;++w)a[o+w]=f[w];return e||c(a)},r.v3=U,r.v4=function(r,e,n){var o=(r=r||{}).random||(r.rng||t)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=o[a];return e}return c(o)},r.v5=R,r.validate=a,r.version=function(r){if(!a(r))throw TypeError("Invalid UUID");return parseInt(r.substr(14,1),16)},Object.defineProperty(r,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidNIL.min.js b/node_modules/uuid/dist/umd/uuidNIL.min.js deleted file mode 100644 index 30b28a7..0000000 --- a/node_modules/uuid/dist/umd/uuidNIL.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidNIL=n()}(this,(function(){"use strict";return"00000000-0000-0000-0000-000000000000"})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidParse.min.js b/node_modules/uuid/dist/umd/uuidParse.min.js deleted file mode 100644 index d48ea6a..0000000 --- a/node_modules/uuid/dist/umd/uuidParse.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidParse=n()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return function(n){if(!function(n){return"string"==typeof n&&e.test(n)}(n))throw TypeError("Invalid UUID");var t,i=new Uint8Array(16);return i[0]=(t=parseInt(n.slice(0,8),16))>>>24,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i[4]=(t=parseInt(n.slice(9,13),16))>>>8,i[5]=255&t,i[6]=(t=parseInt(n.slice(14,18),16))>>>8,i[7]=255&t,i[8]=(t=parseInt(n.slice(19,23),16))>>>8,i[9]=255&t,i[10]=(t=parseInt(n.slice(24,36),16))/1099511627776&255,i[11]=t/4294967296&255,i[12]=t>>>24&255,i[13]=t>>>16&255,i[14]=t>>>8&255,i[15]=255&t,i}})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidStringify.min.js b/node_modules/uuid/dist/umd/uuidStringify.min.js deleted file mode 100644 index fd39adc..0000000 --- a/node_modules/uuid/dist/umd/uuidStringify.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidStringify=t()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function t(t){return"string"==typeof t&&e.test(t)}for(var i=[],n=0;n<256;++n)i.push((n+256).toString(16).substr(1));return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,f=(i[e[n+0]]+i[e[n+1]]+i[e[n+2]]+i[e[n+3]]+"-"+i[e[n+4]]+i[e[n+5]]+"-"+i[e[n+6]]+i[e[n+7]]+"-"+i[e[n+8]]+i[e[n+9]]+"-"+i[e[n+10]]+i[e[n+11]]+i[e[n+12]]+i[e[n+13]]+i[e[n+14]]+i[e[n+15]]).toLowerCase();if(!t(f))throw TypeError("Stringified UUID is invalid");return f}})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidValidate.min.js b/node_modules/uuid/dist/umd/uuidValidate.min.js deleted file mode 100644 index 378e5b9..0000000 --- a/node_modules/uuid/dist/umd/uuidValidate.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidValidate=t()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return function(t){return"string"==typeof t&&e.test(t)}})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidVersion.min.js b/node_modules/uuid/dist/umd/uuidVersion.min.js deleted file mode 100644 index 274bb09..0000000 --- a/node_modules/uuid/dist/umd/uuidVersion.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidVersion=t()}(this,(function(){"use strict";var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return function(t){if(!function(t){return"string"==typeof t&&e.test(t)}(t))throw TypeError("Invalid UUID");return parseInt(t.substr(14,1),16)}})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidv1.min.js b/node_modules/uuid/dist/umd/uuidv1.min.js deleted file mode 100644 index 2622889..0000000 --- a/node_modules/uuid/dist/umd/uuidv1.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).uuidv1=o()}(this,(function(){"use strict";var e,o=new Uint8Array(16);function t(){if(!e&&!(e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(o)}var n=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function r(e){return"string"==typeof e&&n.test(e)}for(var i,u,s=[],a=0;a<256;++a)s.push((a+256).toString(16).substr(1));var d=0,f=0;return function(e,o,n){var a=o&&n||0,c=o||new Array(16),l=(e=e||{}).node||i,p=void 0!==e.clockseq?e.clockseq:u;if(null==l||null==p){var v=e.random||(e.rng||t)();null==l&&(l=i=[1|v[0],v[1],v[2],v[3],v[4],v[5]]),null==p&&(p=u=16383&(v[6]<<8|v[7]))}var y=void 0!==e.msecs?e.msecs:Date.now(),m=void 0!==e.nsecs?e.nsecs:f+1,g=y-d+(m-f)/1e4;if(g<0&&void 0===e.clockseq&&(p=p+1&16383),(g<0||y>d)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=y,f=m,u=p;var h=(1e4*(268435455&(y+=122192928e5))+m)%4294967296;c[a++]=h>>>24&255,c[a++]=h>>>16&255,c[a++]=h>>>8&255,c[a++]=255&h;var w=y/4294967296*1e4&268435455;c[a++]=w>>>8&255,c[a++]=255&w,c[a++]=w>>>24&15|16,c[a++]=w>>>16&255,c[a++]=p>>>8|128,c[a++]=255&p;for(var b=0;b<6;++b)c[a+b]=l[b];return o||function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=(s[e[o+0]]+s[e[o+1]]+s[e[o+2]]+s[e[o+3]]+"-"+s[e[o+4]]+s[e[o+5]]+"-"+s[e[o+6]]+s[e[o+7]]+"-"+s[e[o+8]]+s[e[o+9]]+"-"+s[e[o+10]]+s[e[o+11]]+s[e[o+12]]+s[e[o+13]]+s[e[o+14]]+s[e[o+15]]).toLowerCase();if(!r(t))throw TypeError("Stringified UUID is invalid");return t}(c)}})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidv3.min.js b/node_modules/uuid/dist/umd/uuidv3.min.js deleted file mode 100644 index 8d37b62..0000000 --- a/node_modules/uuid/dist/umd/uuidv3.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(n="undefined"!=typeof globalThis?globalThis:n||self).uuidv3=r()}(this,(function(){"use strict";var n=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function r(r){return"string"==typeof r&&n.test(r)}for(var e=[],t=0;t<256;++t)e.push((t+256).toString(16).substr(1));function i(n){return 14+(n+64>>>9<<4)+1}function o(n,r){var e=(65535&n)+(65535&r);return(n>>16)+(r>>16)+(e>>16)<<16|65535&e}function a(n,r,e,t,i,a){return o((f=o(o(r,n),o(t,a)))<<(u=i)|f>>>32-u,e);var f,u}function f(n,r,e,t,i,o,f){return a(r&e|~r&t,n,r,i,o,f)}function u(n,r,e,t,i,o,f){return a(r&t|e&~t,n,r,i,o,f)}function c(n,r,e,t,i,o,f){return a(r^e^t,n,r,i,o,f)}function s(n,r,e,t,i,o,f){return a(e^(r|~t),n,r,i,o,f)}return function(n,t,i){function o(n,o,a,f){if("string"==typeof n&&(n=function(n){n=unescape(encodeURIComponent(n));for(var r=[],e=0;e<n.length;++e)r.push(n.charCodeAt(e));return r}(n)),"string"==typeof o&&(o=function(n){if(!r(n))throw TypeError("Invalid UUID");var e,t=new Uint8Array(16);return t[0]=(e=parseInt(n.slice(0,8),16))>>>24,t[1]=e>>>16&255,t[2]=e>>>8&255,t[3]=255&e,t[4]=(e=parseInt(n.slice(9,13),16))>>>8,t[5]=255&e,t[6]=(e=parseInt(n.slice(14,18),16))>>>8,t[7]=255&e,t[8]=(e=parseInt(n.slice(19,23),16))>>>8,t[9]=255&e,t[10]=(e=parseInt(n.slice(24,36),16))/1099511627776&255,t[11]=e/4294967296&255,t[12]=e>>>24&255,t[13]=e>>>16&255,t[14]=e>>>8&255,t[15]=255&e,t}(o)),16!==o.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var u=new Uint8Array(16+n.length);if(u.set(o),u.set(n,o.length),(u=i(u))[6]=15&u[6]|t,u[8]=63&u[8]|128,a){f=f||0;for(var c=0;c<16;++c)a[f+c]=u[c];return a}return function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=(e[n[t+0]]+e[n[t+1]]+e[n[t+2]]+e[n[t+3]]+"-"+e[n[t+4]]+e[n[t+5]]+"-"+e[n[t+6]]+e[n[t+7]]+"-"+e[n[t+8]]+e[n[t+9]]+"-"+e[n[t+10]]+e[n[t+11]]+e[n[t+12]]+e[n[t+13]]+e[n[t+14]]+e[n[t+15]]).toLowerCase();if(!r(i))throw TypeError("Stringified UUID is invalid");return i}(u)}try{o.name=n}catch(n){}return o.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",o.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",o}("v3",48,(function(n){if("string"==typeof n){var r=unescape(encodeURIComponent(n));n=new Uint8Array(r.length);for(var e=0;e<r.length;++e)n[e]=r.charCodeAt(e)}return function(n){for(var r=[],e=32*n.length,t="0123456789abcdef",i=0;i<e;i+=8){var o=n[i>>5]>>>i%32&255,a=parseInt(t.charAt(o>>>4&15)+t.charAt(15&o),16);r.push(a)}return r}(function(n,r){n[r>>5]|=128<<r%32,n[i(r)-1]=r;for(var e=1732584193,t=-271733879,a=-1732584194,l=271733878,d=0;d<n.length;d+=16){var p=e,h=t,v=a,g=l;e=f(e,t,a,l,n[d],7,-680876936),l=f(l,e,t,a,n[d+1],12,-389564586),a=f(a,l,e,t,n[d+2],17,606105819),t=f(t,a,l,e,n[d+3],22,-1044525330),e=f(e,t,a,l,n[d+4],7,-176418897),l=f(l,e,t,a,n[d+5],12,1200080426),a=f(a,l,e,t,n[d+6],17,-1473231341),t=f(t,a,l,e,n[d+7],22,-45705983),e=f(e,t,a,l,n[d+8],7,1770035416),l=f(l,e,t,a,n[d+9],12,-1958414417),a=f(a,l,e,t,n[d+10],17,-42063),t=f(t,a,l,e,n[d+11],22,-1990404162),e=f(e,t,a,l,n[d+12],7,1804603682),l=f(l,e,t,a,n[d+13],12,-40341101),a=f(a,l,e,t,n[d+14],17,-1502002290),e=u(e,t=f(t,a,l,e,n[d+15],22,1236535329),a,l,n[d+1],5,-165796510),l=u(l,e,t,a,n[d+6],9,-1069501632),a=u(a,l,e,t,n[d+11],14,643717713),t=u(t,a,l,e,n[d],20,-373897302),e=u(e,t,a,l,n[d+5],5,-701558691),l=u(l,e,t,a,n[d+10],9,38016083),a=u(a,l,e,t,n[d+15],14,-660478335),t=u(t,a,l,e,n[d+4],20,-405537848),e=u(e,t,a,l,n[d+9],5,568446438),l=u(l,e,t,a,n[d+14],9,-1019803690),a=u(a,l,e,t,n[d+3],14,-187363961),t=u(t,a,l,e,n[d+8],20,1163531501),e=u(e,t,a,l,n[d+13],5,-1444681467),l=u(l,e,t,a,n[d+2],9,-51403784),a=u(a,l,e,t,n[d+7],14,1735328473),e=c(e,t=u(t,a,l,e,n[d+12],20,-1926607734),a,l,n[d+5],4,-378558),l=c(l,e,t,a,n[d+8],11,-2022574463),a=c(a,l,e,t,n[d+11],16,1839030562),t=c(t,a,l,e,n[d+14],23,-35309556),e=c(e,t,a,l,n[d+1],4,-1530992060),l=c(l,e,t,a,n[d+4],11,1272893353),a=c(a,l,e,t,n[d+7],16,-155497632),t=c(t,a,l,e,n[d+10],23,-1094730640),e=c(e,t,a,l,n[d+13],4,681279174),l=c(l,e,t,a,n[d],11,-358537222),a=c(a,l,e,t,n[d+3],16,-722521979),t=c(t,a,l,e,n[d+6],23,76029189),e=c(e,t,a,l,n[d+9],4,-640364487),l=c(l,e,t,a,n[d+12],11,-421815835),a=c(a,l,e,t,n[d+15],16,530742520),e=s(e,t=c(t,a,l,e,n[d+2],23,-995338651),a,l,n[d],6,-198630844),l=s(l,e,t,a,n[d+7],10,1126891415),a=s(a,l,e,t,n[d+14],15,-1416354905),t=s(t,a,l,e,n[d+5],21,-57434055),e=s(e,t,a,l,n[d+12],6,1700485571),l=s(l,e,t,a,n[d+3],10,-1894986606),a=s(a,l,e,t,n[d+10],15,-1051523),t=s(t,a,l,e,n[d+1],21,-2054922799),e=s(e,t,a,l,n[d+8],6,1873313359),l=s(l,e,t,a,n[d+15],10,-30611744),a=s(a,l,e,t,n[d+6],15,-1560198380),t=s(t,a,l,e,n[d+13],21,1309151649),e=s(e,t,a,l,n[d+4],6,-145523070),l=s(l,e,t,a,n[d+11],10,-1120210379),a=s(a,l,e,t,n[d+2],15,718787259),t=s(t,a,l,e,n[d+9],21,-343485551),e=o(e,p),t=o(t,h),a=o(a,v),l=o(l,g)}return[e,t,a,l]}(function(n){if(0===n.length)return[];for(var r=8*n.length,e=new Uint32Array(i(r)),t=0;t<r;t+=8)e[t>>5]|=(255&n[t/8])<<t%32;return e}(n),8*n.length))}))})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidv4.min.js b/node_modules/uuid/dist/umd/uuidv4.min.js deleted file mode 100644 index e9df84b..0000000 --- a/node_modules/uuid/dist/umd/uuidv4.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).uuidv4=e()}(this,(function(){"use strict";var t,e=new Uint8Array(16);function o(){if(!t&&!(t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(e)}var n=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function r(t){return"string"==typeof t&&n.test(t)}for(var i=[],u=0;u<256;++u)i.push((u+256).toString(16).substr(1));return function(t,e,n){var u=(t=t||{}).random||(t.rng||o)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,e){n=n||0;for(var f=0;f<16;++f)e[n+f]=u[f];return e}return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=(i[t[e+0]]+i[t[e+1]]+i[t[e+2]]+i[t[e+3]]+"-"+i[t[e+4]]+i[t[e+5]]+"-"+i[t[e+6]]+i[t[e+7]]+"-"+i[t[e+8]]+i[t[e+9]]+"-"+i[t[e+10]]+i[t[e+11]]+i[t[e+12]]+i[t[e+13]]+i[t[e+14]]+i[t[e+15]]).toLowerCase();if(!r(o))throw TypeError("Stringified UUID is invalid");return o}(u)}})); \ No newline at end of file diff --git a/node_modules/uuid/dist/umd/uuidv5.min.js b/node_modules/uuid/dist/umd/uuidv5.min.js deleted file mode 100644 index ba6fc63..0000000 --- a/node_modules/uuid/dist/umd/uuidv5.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).uuidv5=e()}(this,(function(){"use strict";var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function e(e){return"string"==typeof e&&r.test(e)}for(var t=[],n=0;n<256;++n)t.push((n+256).toString(16).substr(1));function a(r,e,t,n){switch(r){case 0:return e&t^~e&n;case 1:return e^t^n;case 2:return e&t^e&n^t&n;case 3:return e^t^n}}function o(r,e){return r<<e|r>>>32-e}return function(r,n,a){function o(r,o,i,f){if("string"==typeof r&&(r=function(r){r=unescape(encodeURIComponent(r));for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t));return e}(r)),"string"==typeof o&&(o=function(r){if(!e(r))throw TypeError("Invalid UUID");var t,n=new Uint8Array(16);return n[0]=(t=parseInt(r.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(r.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(r.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(r.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(r.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n}(o)),16!==o.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var s=new Uint8Array(16+r.length);if(s.set(o),s.set(r,o.length),(s=a(s))[6]=15&s[6]|n,s[8]=63&s[8]|128,i){f=f||0;for(var u=0;u<16;++u)i[f+u]=s[u];return i}return function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=(t[r[n+0]]+t[r[n+1]]+t[r[n+2]]+t[r[n+3]]+"-"+t[r[n+4]]+t[r[n+5]]+"-"+t[r[n+6]]+t[r[n+7]]+"-"+t[r[n+8]]+t[r[n+9]]+"-"+t[r[n+10]]+t[r[n+11]]+t[r[n+12]]+t[r[n+13]]+t[r[n+14]]+t[r[n+15]]).toLowerCase();if(!e(a))throw TypeError("Stringified UUID is invalid");return a}(s)}try{o.name=r}catch(r){}return o.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",o.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",o}("v5",80,(function(r){var e=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof r){var n=unescape(encodeURIComponent(r));r=[];for(var i=0;i<n.length;++i)r.push(n.charCodeAt(i))}else Array.isArray(r)||(r=Array.prototype.slice.call(r));r.push(128);for(var f=r.length/4+2,s=Math.ceil(f/16),u=new Array(s),c=0;c<s;++c){for(var l=new Uint32Array(16),p=0;p<16;++p)l[p]=r[64*c+4*p]<<24|r[64*c+4*p+1]<<16|r[64*c+4*p+2]<<8|r[64*c+4*p+3];u[c]=l}u[s-1][14]=8*(r.length-1)/Math.pow(2,32),u[s-1][14]=Math.floor(u[s-1][14]),u[s-1][15]=8*(r.length-1)&4294967295;for(var d=0;d<s;++d){for(var h=new Uint32Array(80),v=0;v<16;++v)h[v]=u[d][v];for(var y=16;y<80;++y)h[y]=o(h[y-3]^h[y-8]^h[y-14]^h[y-16],1);for(var g=t[0],b=t[1],w=t[2],U=t[3],A=t[4],I=0;I<80;++I){var m=Math.floor(I/20),C=o(g,5)+a(m,b,w,U)+A+e[m]+h[I]>>>0;A=U,U=w,w=o(b,30)>>>0,b=g,g=C}t[0]=t[0]+g>>>0,t[1]=t[1]+b>>>0,t[2]=t[2]+w>>>0,t[3]=t[3]+U>>>0,t[4]=t[4]+A>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,255&t[0],t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,255&t[1],t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,255&t[2],t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,255&t[3],t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,255&t[4]]}))})); \ No newline at end of file diff --git a/node_modules/uuid/dist/uuid-bin.js b/node_modules/uuid/dist/uuid-bin.js deleted file mode 100644 index 50a7a9f..0000000 --- a/node_modules/uuid/dist/uuid-bin.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict"; - -var _assert = _interopRequireDefault(require("assert")); - -var _v = _interopRequireDefault(require("./v1.js")); - -var _v2 = _interopRequireDefault(require("./v3.js")); - -var _v3 = _interopRequireDefault(require("./v4.js")); - -var _v4 = _interopRequireDefault(require("./v5.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function usage() { - console.log('Usage:'); - console.log(' uuid'); - console.log(' uuid v1'); - console.log(' uuid v3 <name> <namespace uuid>'); - console.log(' uuid v4'); - console.log(' uuid v5 <name> <namespace uuid>'); - console.log(' uuid --help'); - console.log('\nNote: <namespace uuid> may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122'); -} - -const args = process.argv.slice(2); - -if (args.indexOf('--help') >= 0) { - usage(); - process.exit(0); -} - -const version = args.shift() || 'v4'; - -switch (version) { - case 'v1': - console.log((0, _v.default)()); - break; - - case 'v3': - { - const name = args.shift(); - let namespace = args.shift(); - (0, _assert.default)(name != null, 'v3 name not specified'); - (0, _assert.default)(namespace != null, 'v3 namespace not specified'); - - if (namespace === 'URL') { - namespace = _v2.default.URL; - } - - if (namespace === 'DNS') { - namespace = _v2.default.DNS; - } - - console.log((0, _v2.default)(name, namespace)); - break; - } - - case 'v4': - console.log((0, _v3.default)()); - break; - - case 'v5': - { - const name = args.shift(); - let namespace = args.shift(); - (0, _assert.default)(name != null, 'v5 name not specified'); - (0, _assert.default)(namespace != null, 'v5 namespace not specified'); - - if (namespace === 'URL') { - namespace = _v4.default.URL; - } - - if (namespace === 'DNS') { - namespace = _v4.default.DNS; - } - - console.log((0, _v4.default)(name, namespace)); - break; - } - - default: - usage(); - process.exit(1); -} \ No newline at end of file diff --git a/node_modules/uuid/dist/v1.js b/node_modules/uuid/dist/v1.js deleted file mode 100644 index abb9b3d..0000000 --- a/node_modules/uuid/dist/v1.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _rng = _interopRequireDefault(require("./rng.js")); - -var _stringify = _interopRequireDefault(require("./stringify.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; - -let _clockseq; // Previous uuid creation time - - -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); - - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - - - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) - - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression - - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested - - - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` - - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` - - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - - b[i++] = clockseq & 0xff; // `node` - - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf || (0, _stringify.default)(b); -} - -var _default = v1; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/v3.js b/node_modules/uuid/dist/v3.js deleted file mode 100644 index 6b47ff5..0000000 --- a/node_modules/uuid/dist/v3.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _v = _interopRequireDefault(require("./v35.js")); - -var _md = _interopRequireDefault(require("./md5.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/v35.js b/node_modules/uuid/dist/v35.js deleted file mode 100644 index f784c63..0000000 --- a/node_modules/uuid/dist/v35.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(require("./stringify.js")); - -var _parse = _interopRequireDefault(require("./parse.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} \ No newline at end of file diff --git a/node_modules/uuid/dist/v4.js b/node_modules/uuid/dist/v4.js deleted file mode 100644 index 838ce0b..0000000 --- a/node_modules/uuid/dist/v4.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _rng = _interopRequireDefault(require("./rng.js")); - -var _stringify = _interopRequireDefault(require("./stringify.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function v4(options, buf, offset) { - options = options || {}; - - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - - - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - - return buf; - } - - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/v5.js b/node_modules/uuid/dist/v5.js deleted file mode 100644 index 99d615e..0000000 --- a/node_modules/uuid/dist/v5.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _v = _interopRequireDefault(require("./v35.js")); - -var _sha = _interopRequireDefault(require("./sha1.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/validate.js b/node_modules/uuid/dist/validate.js deleted file mode 100644 index fd05215..0000000 --- a/node_modules/uuid/dist/validate.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _regex = _interopRequireDefault(require("./regex.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} - -var _default = validate; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/dist/version.js b/node_modules/uuid/dist/version.js deleted file mode 100644 index b72949c..0000000 --- a/node_modules/uuid/dist/version.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _validate = _interopRequireDefault(require("./validate.js")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - return parseInt(uuid.substr(14, 1), 16); -} - -var _default = version; -exports.default = _default; \ No newline at end of file diff --git a/node_modules/uuid/package.json b/node_modules/uuid/package.json index f0ab371..d0af3f8 100644 --- a/node_modules/uuid/package.json +++ b/node_modules/uuid/package.json @@ -1,7 +1,12 @@ { "name": "uuid", - "version": "8.3.2", - "description": "RFC4122 (v1, v4, and v5) UUIDs", + "version": "11.1.1", + "description": "RFC9562 UUIDs", + "type": "module", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "commitlint": { "extends": [ "@commitlint/config-conventional" @@ -10,126 +15,118 @@ "keywords": [ "uuid", "guid", - "rfc4122" + "rfc4122", + "rfc9562" ], "license": "MIT", "bin": { - "uuid": "./dist/bin/uuid" + "uuid": "./dist/esm/bin/uuid" }, "sideEffects": false, - "main": "./dist/index.js", + "main": "./dist/cjs/index.js", "exports": { ".": { "node": { - "module": "./dist/esm-node/index.js", - "require": "./dist/index.js", - "import": "./wrapper.mjs" + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js" + }, + "browser": { + "import": "./dist/esm-browser/index.js", + "require": "./dist/cjs-browser/index.js" }, "default": "./dist/esm-browser/index.js" }, "./package.json": "./package.json" }, - "module": "./dist/esm-node/index.js", + "module": "./dist/esm/index.js", "browser": { - "./dist/md5.js": "./dist/md5-browser.js", - "./dist/rng.js": "./dist/rng-browser.js", - "./dist/sha1.js": "./dist/sha1-browser.js", - "./dist/esm-node/index.js": "./dist/esm-browser/index.js" + "./dist/esm/index.js": "./dist/esm-browser/index.js", + "./dist/cjs/index.js": "./dist/cjs-browser/index.js" }, "files": [ - "CHANGELOG.md", - "CONTRIBUTING.md", - "LICENSE.md", - "README.md", "dist", - "wrapper.mjs" + "!dist/**/test" ], "devDependencies": { - "@babel/cli": "7.11.6", - "@babel/core": "7.11.6", - "@babel/preset-env": "7.11.5", - "@commitlint/cli": "11.0.0", - "@commitlint/config-conventional": "11.0.0", - "@rollup/plugin-node-resolve": "9.0.0", - "babel-eslint": "10.1.0", - "bundlewatch": "0.3.1", - "eslint": "7.10.0", - "eslint-config-prettier": "6.12.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.22.1", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-prettier": "3.1.4", - "eslint-plugin-promise": "4.2.1", - "eslint-plugin-standard": "4.0.1", - "husky": "4.3.0", - "jest": "25.5.4", - "lint-staged": "10.4.0", + "@babel/eslint-parser": "7.25.9", + "@commitlint/cli": "19.6.1", + "@commitlint/config-conventional": "19.6.0", + "@eslint/js": "9.17.0", + "@types/eslint__js": "8.42.3", + "bundlewatch": "0.4.0", + "commander": "12.1.0", + "eslint": "9.17.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-prettier": "5.2.1", + "globals": "15.14.0", + "husky": "9.1.7", + "jest": "29.7.0", + "lint-staged": "15.2.11", + "neostandard": "0.12.0", "npm-run-all": "4.1.5", - "optional-dev-dependency": "2.0.1", - "prettier": "2.1.2", - "random-seed": "0.3.0", - "rollup": "2.28.2", - "rollup-plugin-terser": "7.0.2", - "runmd": "1.3.2", - "standard-version": "9.0.0" + "prettier": "3.4.2", + "release-please": "16.15.0", + "runmd": "1.4.1", + "standard-version": "9.5.0", + "typescript": "5.0.4", + "typescript-eslint": "8.18.2" }, "optionalDevDependencies": { - "@wdio/browserstack-service": "6.4.0", - "@wdio/cli": "6.4.0", - "@wdio/jasmine-framework": "6.4.0", - "@wdio/local-runner": "6.4.0", - "@wdio/spec-reporter": "6.4.0", - "@wdio/static-server-service": "6.4.0", - "@wdio/sync": "6.4.0" + "@wdio/browserstack-service": "9.2.1", + "@wdio/cli": "9.2.1", + "@wdio/jasmine-framework": "9.2.1", + "@wdio/local-runner": "9.2.1", + "@wdio/spec-reporter": "9.1.3", + "@wdio/static-server-service": "9.1.3" }, "scripts": { - "examples:browser:webpack:build": "cd examples/browser-webpack && npm install && npm run build", - "examples:browser:rollup:build": "cd examples/browser-rollup && npm install && npm run build", - "examples:node:commonjs:test": "cd examples/node-commonjs && npm install && npm test", - "examples:node:esmodules:test": "cd examples/node-esmodules && npm install && npm test", + "build": "./scripts/build.sh", + "build:watch": "tsc --watch -p tsconfig.esm.json", + "bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json", + "docs:diff": "npm run docs && git diff --quiet README.md", + "docs": "npm run build && npx runmd --output=README.md README_js.md", + "eslint:check": "eslint src/ test/ examples/ *.[jt]s", + "eslint:fix": "eslint --fix src/ test/ examples/ *.[jt]s", + "examples:browser:rollup:build": "cd examples/browser-rollup && npm run build", + "examples:browser:webpack:build": "cd examples/browser-webpack && npm run build", + "examples:node:commonjs:test": "cd examples/node-commonjs && npm test", + "examples:node:esmodules:test": "cd examples/node-esmodules && npm test", + "examples:node:jest:test": "cd examples/node-jest && npm test", + "examples:node:typescript:test": "cd examples/typescript && npm test", "lint": "npm run eslint:check && npm run prettier:check", - "eslint:check": "eslint src/ test/ examples/ *.js", - "eslint:fix": "eslint --fix src/ test/ examples/ *.js", - "pretest": "[ -n $CI ] || npm run build", - "test": "BABEL_ENV=commonjs node --throw-deprecation node_modules/.bin/jest test/unit/", - "pretest:browser": "optional-dev-dependency && npm run build && npm-run-all --parallel examples:browser:**", - "test:browser": "wdio run ./wdio.conf.js", + "md": "runmd --watch --output=README.md README_js.md", + "prepack": "npm run build -- --no-pack", + "prepare": "husky", + "prepublishOnly": "npm run build", + "pretest:benchmark": "npm run build", + "pretest:browser": "./scripts/iodd && npm run build && npm-run-all --parallel examples:browser:**", "pretest:node": "npm run build", + "pretest": "npm run build", + "prettier:check": "prettier --check .", + "prettier:fix": "prettier --write .", + "release": "standard-version --no-verify", + "test:benchmark": "cd examples/benchmark && npm test", + "test:browser": "wdio run ./wdio.conf.js", "test:node": "npm-run-all --parallel examples:node:**", - "test:pack": "./scripts/testpack.sh", - "pretest:benchmark": "npm run build", - "test:benchmark": "cd examples/benchmark && npm install && npm test", - "prettier:check": "prettier --ignore-path .prettierignore --check '**/*.{js,jsx,json,md}'", - "prettier:fix": "prettier --ignore-path .prettierignore --write '**/*.{js,jsx,json,md}'", - "bundlewatch": "npm run pretest:browser && bundlewatch --config bundlewatch.config.json", - "md": "runmd --watch --output=README.md README_js.md", - "docs": "( node --version | grep -q 'v12' ) && ( npm run build && runmd --output=README.md README_js.md )", - "docs:diff": "npm run docs && git diff --quiet README.md", - "build": "./scripts/build.sh", - "prepack": "npm run build", - "release": "standard-version --no-verify" + "test:watch": "node --test --enable-source-maps --watch dist/esm/test/*.js", + "test": "node --test --enable-source-maps dist/esm/test/*.js" }, "repository": { "type": "git", "url": "https://github.com/uuidjs/uuid.git" }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } - }, "lint-staged": { - "*.{js,jsx,json,md}": [ - "prettier --write" + "*": [ + "prettier --no-error-on-unmatched-pattern --write" ], "*.{js,jsx}": [ - "eslint --fix" + "eslint --no-error-on-unmatched-pattern --fix" ] }, "standard-version": { "scripts": { "postchangelog": "prettier --write CHANGELOG.md" } - } + }, + "packageManager": "npm@11.0.0" } diff --git a/node_modules/uuid/wrapper.mjs b/node_modules/uuid/wrapper.mjs deleted file mode 100644 index c31e9ce..0000000 --- a/node_modules/uuid/wrapper.mjs +++ /dev/null @@ -1,10 +0,0 @@ -import uuid from './dist/index.js'; -export const v1 = uuid.v1; -export const v3 = uuid.v3; -export const v4 = uuid.v4; -export const v5 = uuid.v5; -export const NIL = uuid.NIL; -export const version = uuid.version; -export const validate = uuid.validate; -export const stringify = uuid.stringify; -export const parse = uuid.parse; diff --git a/package-lock.json b/package-lock.json index 804ae70..7354653 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1293,13 +1293,16 @@ "license": "MIT" }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.1.tgz", + "integrity": "sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/whatwg-encoding": { @@ -1795,7 +1798,7 @@ "saxes": "^5.0.1", "tmp": "^0.2.0", "unzipper": "^0.10.11", - "uuid": "^8.3.0" + "uuid": "^11.1.1" } }, "fast-csv": { @@ -2304,9 +2307,9 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.1.tgz", + "integrity": "sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==" }, "whatwg-encoding": { "version": "3.1.1", diff --git a/package.json b/package.json index 56b4fab..cf60889 100644 --- a/package.json +++ b/package.json @@ -34,5 +34,8 @@ "dependencies": { "@actions/core": "^3.0.1", "check-http-status": "^2.2.0" + }, + "overrides": { + "uuid": "^11.1.1" } }