From 74ecd6c3663fd7ddac3f47489d7840a3590bc279 Mon Sep 17 00:00:00 2001 From: Commit User Date: Tue, 17 Sep 2024 17:09:52 +0200 Subject: [PATCH] feat: add docs and eslint upgrade --- .eslintignore | 8 - .eslintrc.js | 46 - README.md | 223 ++ docs/api/pinot-noir.ebrokererrorcode.md | 4 + .../pinot-noir.ebrokertransporterrorcode.md | 6 + docs/api/pinot-noir.epinoterrortype.md | 2 + docs/api/pinot-noir.error_codes.md | 2 + .../pinot-noir.ibrokerresponse.exceptions.md | 2 +- docs/api/pinot-noir.ibrokerresponse.md | 28 +- ...not-noir.ibrokerresponse.numdocsscanned.md | 2 + ...noir.ibrokerresponse.numsegmentsmatched.md | 2 + ...ir.ibrokerresponse.numsegmentsprocessed.md | 2 + ...noir.ibrokerresponse.numsegmentsqueried.md | 6 + ...-noir.ibrokerresponse.numserversqueries.md | 2 + ...oir.ibrokerresponse.numserversresponded.md | 2 + .../pinot-noir.ibrokerresponse.resulttable.md | 2 + .../pinot-noir.ibrokerresponse.timeusedms.md | 2 + .../pinot-noir.ibrokerresponse.totaldocs.md | 2 + .../pinot-noir.ibrokerresponse.traceinfo.md | 2 + ...noir.ibrokertransportconfig.bodytimeout.md | 2 + ...t-noir.ibrokertransportconfig.brokerurl.md | 2 + ...okertransportconfig.keepalivemaxtimeout.md | 2 + ...ibrokertransportconfig.keepalivetimeout.md | 2 + docs/api/pinot-noir.ibrokertransportconfig.md | 12 +- ...pinot-noir.ibrokertransportconfig.token.md | 2 + ...not-noir.ibrokertransportrequestoptions.md | 2 + .../pinot-noir.ipinoexception.errorcode.md | 2 + docs/api/pinot-noir.ipinoexception.md | 6 + docs/api/pinot-noir.ipinoexception.message.md | 2 + .../pinot-noir.ipinotbrokertransport.close.md | 2 + docs/api/pinot-noir.ipinotbrokertransport.md | 8 + ...inot-noir.ipinotbrokertransport.request.md | 4 + .../pinot-noir.ipinotbrokertransport.stats.md | 2 + docs/api/pinot-noir.ipinotclient.md | 6 + docs/api/pinot-noir.ipinotclient.select.md | 10 +- .../pinot-noir.ipinotclient.transportstats.md | 2 + docs/api/pinot-noir.ipinotpoolstats.md | 2 + docs/api/pinot-noir.ipinotqueryoptions.md | 2 + ...pinot-noir.ipinotsqlexception.errorcode.md | 2 + docs/api/pinot-noir.ipinotsqlexception.md | 6 + .../pinot-noir.ipinotsqlexception.message.md | 2 + docs/api/pinot-noir.iqueryresult.md | 10 +- .../pinot-noir.iqueryresult.queryoptions.md | 2 + docs/api/pinot-noir.iqueryresult.rows.md | 2 + docs/api/pinot-noir.iqueryresult.sql.md | 2 + docs/api/pinot-noir.iqueryresult.stats.md | 2 + docs/api/pinot-noir.iquerystats.docs.md | 2 + docs/api/pinot-noir.iquerystats.md | 12 + docs/api/pinot-noir.iquerystats.segments.md | 2 + docs/api/pinot-noir.iquerystats.server.md | 2 + .../api/pinot-noir.iquerystats.totaltimems.md | 2 + docs/api/pinot-noir.iquerystats.traceinfo.md | 2 + ...ot-noir.iresponseschema.columndatatypes.md | 2 + .../pinot-noir.iresponseschema.columnnames.md | 2 + docs/api/pinot-noir.iresponseschema.md | 6 + .../api/pinot-noir.iresulttable.dataschema.md | 2 + docs/api/pinot-noir.iresulttable.md | 6 + docs/api/pinot-noir.iresulttable.rows.md | 2 + docs/api/pinot-noir.md | 44 + docs/api/pinot-noir.pinotbrokerclient.md | 8 + .../pinot-noir.pinotbrokerclient.select.md | 10 +- ...t-noir.pinotbrokerclient.toqueryoptions.md | 6 +- ...t-noir.pinotbrokerclient.transportstats.md | 2 + ...not-noir.pinotbrokerjsontransport.close.md | 2 + .../pinot-noir.pinotbrokerjsontransport.md | 8 + ...t-noir.pinotbrokerjsontransport.request.md | 4 + ...not-noir.pinotbrokerjsontransport.stats.md | 2 + docs/api/pinot-noir.sql.md | 8 + .../pinot-noir.sqlformat.objecttovalues.md | 6 +- docs/api/pinot-noir.sqlutils.formatoptions.md | 6 +- docs/api/pinot-noir.sqlutils.md | 6 + .../api/pinot-noir.sqlutils.stringifyquery.md | 8 +- docs/api/pinot-noir.tpinotdatatype.md | 2 + eslint.config.mjs | 98 + etc/pinot-noir.api.md | 98 +- examples/index.ts | 2 + examples/local-pinot.ts | 32 + examples/sql-utils.ts | 13 + package.json | 39 +- pnpm-lock.yaml | 2267 ++++++----------- src/client/broker/broker-client.ts | 31 + src/client/broker/transport/json/undici.ts | 24 +- src/client/broker/transport/types.ts | 54 + src/client/broker/types.ts | 156 +- src/client/errors/pinot.ts | 19 +- src/utils/format.ts | 8 +- src/utils/sql-utils.ts | 19 + src/utils/tag.ts | 8 + tsdoc.json | 21 + 89 files changed, 1859 insertions(+), 1639 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.js create mode 100644 README.md create mode 100644 eslint.config.mjs create mode 100644 examples/index.ts create mode 100644 examples/local-pinot.ts create mode 100644 examples/sql-utils.ts create mode 100644 tsdoc.json diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index f3a20dd..0000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -logs/ -coverage/ -node_modules/ -.vscode/ -**/*.xxx.* -dist/ -examples/**/* -.eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 2d03e93..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,46 +0,0 @@ -module.exports = { - root: true, - plugins: [ - 'prettier', - '@typescript-eslint/eslint-plugin', - 'eslint-plugin-tsdoc', - ], - extends: [ - 'eslint:recommended', - 'google', - 'prettier', - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/recommended-requiring-type-checking', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - project: 'tsconfig.json', - sourceType: 'module', - ecmaVersion: 2020, - }, - env: { - es6: true, - node: true, - jest: false, - }, - - rules: { - 'new-cap': [ - 'error', - { - capIsNewExceptions: ['ObjectId', 'Fastify'], - capIsNewExceptionPattern: '^Type\\.', - }, - ], - 'require-jsdoc': 'off', - 'valid-jsdoc': 'off', - 'tsdoc/syntax': 'error', - 'prettier/prettier': 'error', - '@typescript-eslint/require-await': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/consistent-type-exports': 'error', - }, -}; diff --git a/README.md b/README.md new file mode 100644 index 0000000..c957899 --- /dev/null +++ b/README.md @@ -0,0 +1,223 @@ +# pinot-noir + +Unofficial node.js [Apache Pnot](https://pinot.apache.org/) client. Uses [undici](https://undici.nodejs.org) to make http requests to pinot brokers. + +## ToC + +- [pinot-noir](#pinot-noir) + - [ToC](#toc) + - [Features](#features) + - [Installation](#installation) + - [Usage](#usage) + - [Transport](#transport) + - [Broker client](#broker-client) + - [Constructing and performing queries](#constructing-and-performing-queries) + - [Utilities](#utilities) + - [SqlUtils](#sqlutils) + - [stringifyQuery](#stringifyquery) + - [Demo](#demo) + - [See also](#see-also) + +## Features + +- Fast http queries using "Undici" +- Built-in `sql` template tag and safe escaping of values +- Support of `raw` and `join` for complex queries +- Typescript support +- Support of Apache Pinot multi-stage engine +- Compatible with prettier sql formatter and VScode sql syntax highlighters + +## Installation + +NPM: + +```bash +npm install pinot-noir +``` + +PNPM: + +```bash +pnpm add pinot-noir +``` + +## Usage + +### Transport + +First of all you need to create transport. So far there's only one transport built-in in this lib, but you can use own implementation of [`IPinotBrokerTransport` interface](./docs/api/pinot-noir.ipinotbrokertransport.md). + +By default we use HTTP JSON transport which is based on undici http client. It requires the URL of your brocker and an API token. + +```typescript +import { PinotBrokerJSONTransport } from 'pinot-noir'; + +const pinotTransport = new PinotBrokerJSONTransport({ + brokerUrl: 'https://broker.pinot.my-cluster.example.startree.cloud', // replace with your broker url + token: '', // for docker-based demo pinot leave blank +}); +``` + +Other options are described in [API docs](./docs/api/pinot-noir.pinotbrokerjsontransport.md). + +### Broker client + +Broker client is a wrapper class that uses provided transport to make queries to pinot, handle the responses and so on. +For tests you can easily supply your broker client with mock transport. + +```typescript +import { PinotBrokerClient } from 'pinot-noir'; + +// ... init transport ... + +const pinotClient = new PinotBrokerClient({ transport: pinotTransport }); +``` + +### Constructing and performing queries + +To make sql queries this library supplies `sql` template tag which is modified version of [sql-template-tag](https://github.com/blakeembrey/sql-template-tag) library to match Apache Pinot syntax. + +```typescript +import { sql } from 'pinot-noir'; + +// ... setup transport and client ... + +interface IResult { + hist: number; +} + +const year = 2010; +const query = sql` + select sum(hits) as hits + from baseballStats + where yearID > ${year}`; +const result = await pinotClient.select(query, { timeoutMs: 1000 }); + +console.log('== Query =='); +console.log(result.sql); +console.log(''); +console.log('== Results =='); +console.table(result.rows); +console.log('== Stats =='); +console.log(result.stats); +``` + +### Utilities + +#### SqlUtils + +[Docs](./docs/api/pinot-noir.sqlutils.md) + +##### stringifyQuery + +Method is used to compile your query into single string. Can be useful in logs and allows you see resulting sql with all variables replaced. + +```typescript +import { sql, SqlUtils } from 'pinot-noir'; + +const year = 2010; +const query = sql` + select sum(hits) as hits + from baseballStats + where yearID > ${year}`; +const parameters = { + timeoutMs: 10000, +}; + +SqlUtils.stringifyQuery(query, parameters); + +// output +// SET timeoutMs = 10000; +// select sum(hits) as hits +// from baseballStats +// where yearID > 2010 +``` + +## Demo + +Follow the [Pinot quick start guide](https://docs.pinot.apache.org/basics/getting-started/running-pinot-in-docker#set-up-a-cluster) and setup cluster locally with demo baseball dataset. + +Quick copy-paste: + +```bash +docker run \ + -p 2123:2123 \ + -p 9000:9000 \ + -p 8000:8000 \ + -p 7050:7050 \ + -p 6000:6000 \ + apachepinot/pinot:latest QuickStart \ + -type batch +``` + +Verify pinot is running and explore the dataset via the following [guide](https://docs.pinot.apache.org/basics/concepts/components/exploring-pinot). + +Connect client to your broker: + +```typescript +import { PinotBrokerClient, PinotBrokerJSONTransport, sql } from 'pinot-noir'; + +const pinotTransport = new PinotBrokerJSONTransport({ + brokerUrl: 'http://127.0.0.1:8000', // replace with your broker url if needed + token: '', // localhost doesn't require any auth + connections: 32, +}); + +const pinotClient = new PinotBrokerClient({ transport: pinotTransport }); + +interface IResult { + hist: number; + homeRuns: number; + gamesCount: number; +} + +(async () => { + const year = 2010; + const query = sql` + select sum(hits) as hits, sum(homeRuns) as homeRuns, sum(numberOfGames) as gamesCount + from baseballStats + where yearID > ${year}`; + const result = await pinotClient.select(query, { timeoutMs: 1000 }); + + console.log('== Query =='); + console.log(result.sql); + console.log(''); + console.log('== Results =='); + console.table(result.rows); + console.log('== Stats =='); + console.log(result.stats); +})(); +``` + +See results + +```txt +== Query == + + select sum(hits) as hits, sum(homeRuns) as homeRuns, sum(numberOfGames) as gamesCount + from baseballStats + where yearID > 2010 + +== Results == +┌─────────┬────────┬──────────┬────────────┐ +│ (index) │ hits │ homeRuns │ gamesCount │ +├─────────┼────────┼──────────┼────────────┤ +│ 0 │ 126422 │ 14147 │ 198156 │ +└─────────┴────────┴──────────┴────────────┘ +== Stats == +{ + traceInfo: {}, + segments: { matched: 1, processed: 1, queried: 1 }, + server: { queries: undefined, responded: 1 }, + docs: { scanned: 3935, returned: 1, total: 97889 }, + totalTimeMs: 6, + minConsumingFreshnessTimeMs: 0, + numConsumingSegmentsQueried: 0, + numEntriesScannedPostFilter: 11805, + numGroupsLimitReached: false +} +``` + +## See also + +- [pinot-client-node](https://github.com/kffl/pinot-client-node#readme) - another good Apache Pinot client and inspiration for this library, which in adddition has Pinot controller client. diff --git a/docs/api/pinot-noir.ebrokererrorcode.md b/docs/api/pinot-noir.ebrokererrorcode.md index 3153cba..65be274 100644 --- a/docs/api/pinot-noir.ebrokererrorcode.md +++ b/docs/api/pinot-noir.ebrokererrorcode.md @@ -4,6 +4,8 @@ ## EBrokerErrorCode enum +Broker error codes + **Signature:** ```typescript @@ -35,5 +37,7 @@ UNKNOWN +Unknown + diff --git a/docs/api/pinot-noir.ebrokertransporterrorcode.md b/docs/api/pinot-noir.ebrokertransporterrorcode.md index 6270bae..00bab63 100644 --- a/docs/api/pinot-noir.ebrokertransporterrorcode.md +++ b/docs/api/pinot-noir.ebrokertransporterrorcode.md @@ -4,6 +4,8 @@ ## EBrokerTransportErrorCode enum +Broker error codes + **Signature:** ```typescript @@ -35,6 +37,8 @@ INVALID_RESPONSE +Invalid response from pinot + @@ -46,5 +50,7 @@ UNKNOWN +Unknown code + diff --git a/docs/api/pinot-noir.epinoterrortype.md b/docs/api/pinot-noir.epinoterrortype.md index 04fc511..e18022b 100644 --- a/docs/api/pinot-noir.epinoterrortype.md +++ b/docs/api/pinot-noir.epinoterrortype.md @@ -4,6 +4,8 @@ ## EPinotErrorType enum +Pinot error types + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.error_codes.md b/docs/api/pinot-noir.error_codes.md index aa9ae06..e5ef212 100644 --- a/docs/api/pinot-noir.error_codes.md +++ b/docs/api/pinot-noir.error_codes.md @@ -4,6 +4,8 @@ ## ERROR_CODES enum +Pinot error codes + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.exceptions.md b/docs/api/pinot-noir.ibrokerresponse.exceptions.md index e10f502..b289543 100644 --- a/docs/api/pinot-noir.ibrokerresponse.exceptions.md +++ b/docs/api/pinot-noir.ibrokerresponse.exceptions.md @@ -4,7 +4,7 @@ ## IBrokerResponse.exceptions property -Will contain the stack trace if there is any exception processing the query. +Query exceptions. Will contain the stack trace if there is any exception processing the query. **Signature:** diff --git a/docs/api/pinot-noir.ibrokerresponse.md b/docs/api/pinot-noir.ibrokerresponse.md index 52bd692..432d59d 100644 --- a/docs/api/pinot-noir.ibrokerresponse.md +++ b/docs/api/pinot-noir.ibrokerresponse.md @@ -4,6 +4,8 @@ ## IBrokerResponse interface +Pinot broker response + **Signature:** ```typescript @@ -41,7 +43,7 @@ Description -_(Optional)_ Will contain the stack trace if there is any exception processing the query. +_(Optional)_ Query exceptions. Will contain the stack trace if there is any exception processing the query. @@ -82,6 +84,8 @@ number +Total number of docs scanned + @@ -125,6 +129,8 @@ number +The number of segments processed with at least one document matched in the query response. + @@ -138,6 +144,8 @@ number +The number of segment operators used to process segments. Indicates the effectiveness of the pruning logic. For more information, see + @@ -151,6 +159,12 @@ number +The total number of segmentsQueried for a query. May be less than the total number of segments if the broker applies optimizations. + +The broker decides how many segments to query on each server, based on broker pruning logic. The server decides how many of these segments to actually look at, based on server pruning logic. After processing segments for a query, fewer may have the matching records. + +In general, `numSegmentsQueried >= numSegmentsProcessed >= numSegmentsMatched`. + @@ -164,6 +178,8 @@ number +Represents the number of servers queried by the broker (may be less than the total number of servers since the broker can apply some optimizations to minimize the number of servers). + @@ -177,6 +193,8 @@ number +This should be equal to the numServersQueried. If this is not the same, then one of more servers might have timed out. If numServersQueried != numServersResponded, the results can be considered partial and clients can retry the query with exponential back off. + @@ -190,6 +208,8 @@ number +Result table + @@ -203,6 +223,8 @@ number +Total time taken as seen by the broker before sending the response back to the client. + @@ -216,6 +238,8 @@ number +Number of documents/records in the table. + @@ -229,5 +253,7 @@ Record<string, string> +Query trace, if the query was executed with `trace` + diff --git a/docs/api/pinot-noir.ibrokerresponse.numdocsscanned.md b/docs/api/pinot-noir.ibrokerresponse.numdocsscanned.md index a748c7b..e161184 100644 --- a/docs/api/pinot-noir.ibrokerresponse.numdocsscanned.md +++ b/docs/api/pinot-noir.ibrokerresponse.numdocsscanned.md @@ -4,6 +4,8 @@ ## IBrokerResponse.numDocsScanned property +Total number of docs scanned + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.numsegmentsmatched.md b/docs/api/pinot-noir.ibrokerresponse.numsegmentsmatched.md index 2745a01..b8483d1 100644 --- a/docs/api/pinot-noir.ibrokerresponse.numsegmentsmatched.md +++ b/docs/api/pinot-noir.ibrokerresponse.numsegmentsmatched.md @@ -4,6 +4,8 @@ ## IBrokerResponse.numSegmentsMatched property +The number of segments processed with at least one document matched in the query response. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.numsegmentsprocessed.md b/docs/api/pinot-noir.ibrokerresponse.numsegmentsprocessed.md index fd8af9f..5820bf6 100644 --- a/docs/api/pinot-noir.ibrokerresponse.numsegmentsprocessed.md +++ b/docs/api/pinot-noir.ibrokerresponse.numsegmentsprocessed.md @@ -4,6 +4,8 @@ ## IBrokerResponse.numSegmentsProcessed property +The number of segment operators used to process segments. Indicates the effectiveness of the pruning logic. For more information, see + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.numsegmentsqueried.md b/docs/api/pinot-noir.ibrokerresponse.numsegmentsqueried.md index 2849a40..0296b87 100644 --- a/docs/api/pinot-noir.ibrokerresponse.numsegmentsqueried.md +++ b/docs/api/pinot-noir.ibrokerresponse.numsegmentsqueried.md @@ -4,6 +4,12 @@ ## IBrokerResponse.numSegmentsQueried property +The total number of segmentsQueried for a query. May be less than the total number of segments if the broker applies optimizations. + +The broker decides how many segments to query on each server, based on broker pruning logic. The server decides how many of these segments to actually look at, based on server pruning logic. After processing segments for a query, fewer may have the matching records. + +In general, `numSegmentsQueried >= numSegmentsProcessed >= numSegmentsMatched`. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.numserversqueries.md b/docs/api/pinot-noir.ibrokerresponse.numserversqueries.md index b072e08..d0db89c 100644 --- a/docs/api/pinot-noir.ibrokerresponse.numserversqueries.md +++ b/docs/api/pinot-noir.ibrokerresponse.numserversqueries.md @@ -4,6 +4,8 @@ ## IBrokerResponse.numServersQueries property +Represents the number of servers queried by the broker (may be less than the total number of servers since the broker can apply some optimizations to minimize the number of servers). + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.numserversresponded.md b/docs/api/pinot-noir.ibrokerresponse.numserversresponded.md index d4281a5..484341a 100644 --- a/docs/api/pinot-noir.ibrokerresponse.numserversresponded.md +++ b/docs/api/pinot-noir.ibrokerresponse.numserversresponded.md @@ -4,6 +4,8 @@ ## IBrokerResponse.numServersResponded property +This should be equal to the numServersQueried. If this is not the same, then one of more servers might have timed out. If numServersQueried != numServersResponded, the results can be considered partial and clients can retry the query with exponential back off. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.resulttable.md b/docs/api/pinot-noir.ibrokerresponse.resulttable.md index 4c1812b..a22eb07 100644 --- a/docs/api/pinot-noir.ibrokerresponse.resulttable.md +++ b/docs/api/pinot-noir.ibrokerresponse.resulttable.md @@ -4,6 +4,8 @@ ## IBrokerResponse.resultTable property +Result table + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.timeusedms.md b/docs/api/pinot-noir.ibrokerresponse.timeusedms.md index ef37121..15976cf 100644 --- a/docs/api/pinot-noir.ibrokerresponse.timeusedms.md +++ b/docs/api/pinot-noir.ibrokerresponse.timeusedms.md @@ -4,6 +4,8 @@ ## IBrokerResponse.timeUsedMs property +Total time taken as seen by the broker before sending the response back to the client. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.totaldocs.md b/docs/api/pinot-noir.ibrokerresponse.totaldocs.md index 1eb5f6d..7021009 100644 --- a/docs/api/pinot-noir.ibrokerresponse.totaldocs.md +++ b/docs/api/pinot-noir.ibrokerresponse.totaldocs.md @@ -4,6 +4,8 @@ ## IBrokerResponse.totalDocs property +Number of documents/records in the table. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokerresponse.traceinfo.md b/docs/api/pinot-noir.ibrokerresponse.traceinfo.md index 3ee3831..5cce237 100644 --- a/docs/api/pinot-noir.ibrokerresponse.traceinfo.md +++ b/docs/api/pinot-noir.ibrokerresponse.traceinfo.md @@ -4,6 +4,8 @@ ## IBrokerResponse.traceInfo property +Query trace, if the query was executed with `trace` + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokertransportconfig.bodytimeout.md b/docs/api/pinot-noir.ibrokertransportconfig.bodytimeout.md index 7775461..204263f 100644 --- a/docs/api/pinot-noir.ibrokertransportconfig.bodytimeout.md +++ b/docs/api/pinot-noir.ibrokertransportconfig.bodytimeout.md @@ -4,6 +4,8 @@ ## IBrokerTransportConfig.bodyTimeout property +The timeout after which a request will time out, in milliseconds + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokertransportconfig.brokerurl.md b/docs/api/pinot-noir.ibrokertransportconfig.brokerurl.md index 0134421..f8717de 100644 --- a/docs/api/pinot-noir.ibrokertransportconfig.brokerurl.md +++ b/docs/api/pinot-noir.ibrokertransportconfig.brokerurl.md @@ -4,6 +4,8 @@ ## IBrokerTransportConfig.brokerUrl property +Broker URL + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokertransportconfig.keepalivemaxtimeout.md b/docs/api/pinot-noir.ibrokertransportconfig.keepalivemaxtimeout.md index 4e672de..2cd2625 100644 --- a/docs/api/pinot-noir.ibrokertransportconfig.keepalivemaxtimeout.md +++ b/docs/api/pinot-noir.ibrokertransportconfig.keepalivemaxtimeout.md @@ -4,6 +4,8 @@ ## IBrokerTransportConfig.keepAliveMaxTimeout property +The maximum allowed `keepAliveTimeout` + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokertransportconfig.keepalivetimeout.md b/docs/api/pinot-noir.ibrokertransportconfig.keepalivetimeout.md index 0c15d6b..9bd0a66 100644 --- a/docs/api/pinot-noir.ibrokertransportconfig.keepalivetimeout.md +++ b/docs/api/pinot-noir.ibrokertransportconfig.keepalivetimeout.md @@ -4,6 +4,8 @@ ## IBrokerTransportConfig.keepAliveTimeout property +Connection keep-alive timeout + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokertransportconfig.md b/docs/api/pinot-noir.ibrokertransportconfig.md index fd65403..d0b916f 100644 --- a/docs/api/pinot-noir.ibrokertransportconfig.md +++ b/docs/api/pinot-noir.ibrokertransportconfig.md @@ -4,6 +4,8 @@ ## IBrokerTransportConfig interface +Pinot broker transport config options + **Signature:** ```typescript @@ -41,7 +43,7 @@ number -_(Optional)_ +_(Optional)_ The timeout after which a request will time out, in milliseconds @@ -56,6 +58,8 @@ URL \| string +Broker URL + @@ -84,7 +88,7 @@ number -_(Optional)_ +_(Optional)_ The maximum allowed `keepAliveTimeout` @@ -99,7 +103,7 @@ number -_(Optional)_ +_(Optional)_ Connection keep-alive timeout @@ -114,5 +118,7 @@ string +Pinot API access token + diff --git a/docs/api/pinot-noir.ibrokertransportconfig.token.md b/docs/api/pinot-noir.ibrokertransportconfig.token.md index e28f7d3..27eb8f0 100644 --- a/docs/api/pinot-noir.ibrokertransportconfig.token.md +++ b/docs/api/pinot-noir.ibrokertransportconfig.token.md @@ -4,6 +4,8 @@ ## IBrokerTransportConfig.token property +Pinot API access token + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ibrokertransportrequestoptions.md b/docs/api/pinot-noir.ibrokertransportrequestoptions.md index c70c774..d0866c4 100644 --- a/docs/api/pinot-noir.ibrokertransportrequestoptions.md +++ b/docs/api/pinot-noir.ibrokertransportrequestoptions.md @@ -4,6 +4,8 @@ ## IBrokerTransportRequestOptions interface +Pinot broker HTTP request options + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinoexception.errorcode.md b/docs/api/pinot-noir.ipinoexception.errorcode.md index 86f6692..f579234 100644 --- a/docs/api/pinot-noir.ipinoexception.errorcode.md +++ b/docs/api/pinot-noir.ipinoexception.errorcode.md @@ -4,6 +4,8 @@ ## IPinoException.errorCode property +Pinot error code + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinoexception.md b/docs/api/pinot-noir.ipinoexception.md index 62bb4a3..162bde3 100644 --- a/docs/api/pinot-noir.ipinoexception.md +++ b/docs/api/pinot-noir.ipinoexception.md @@ -4,6 +4,8 @@ ## IPinoException interface +Pinot exception + **Signature:** ```typescript @@ -41,6 +43,8 @@ number +Pinot error code + @@ -54,5 +58,7 @@ string +Error message + diff --git a/docs/api/pinot-noir.ipinoexception.message.md b/docs/api/pinot-noir.ipinoexception.message.md index 21a8fd1..90b8b18 100644 --- a/docs/api/pinot-noir.ipinoexception.message.md +++ b/docs/api/pinot-noir.ipinoexception.message.md @@ -4,6 +4,8 @@ ## IPinoException.message property +Error message + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinotbrokertransport.close.md b/docs/api/pinot-noir.ipinotbrokertransport.close.md index 5b19b24..06f76ba 100644 --- a/docs/api/pinot-noir.ipinotbrokertransport.close.md +++ b/docs/api/pinot-noir.ipinotbrokertransport.close.md @@ -4,6 +4,8 @@ ## IPinotBrokerTransport.close() method +Closes connection to pinot broker + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinotbrokertransport.md b/docs/api/pinot-noir.ipinotbrokertransport.md index 8acc7ac..7f11fc6 100644 --- a/docs/api/pinot-noir.ipinotbrokertransport.md +++ b/docs/api/pinot-noir.ipinotbrokertransport.md @@ -4,6 +4,8 @@ ## IPinotBrokerTransport interface +Pinot broker transport interface. Implement it create your own. + **Signature:** ```typescript @@ -41,6 +43,8 @@ Description +Pool statitstics (number of in-flight requests and so on) + @@ -61,6 +65,8 @@ Description +Closes connection to pinot broker + @@ -68,5 +74,7 @@ Description +Perform HTTP request to pinot + diff --git a/docs/api/pinot-noir.ipinotbrokertransport.request.md b/docs/api/pinot-noir.ipinotbrokertransport.request.md index bf89eb9..8e68cd8 100644 --- a/docs/api/pinot-noir.ipinotbrokertransport.request.md +++ b/docs/api/pinot-noir.ipinotbrokertransport.request.md @@ -4,6 +4,8 @@ ## IPinotBrokerTransport.request() method +Perform HTTP request to pinot + **Signature:** ```typescript @@ -40,3 +42,5 @@ Description **Returns:** Promise<TResponse> + +Pinot response diff --git a/docs/api/pinot-noir.ipinotbrokertransport.stats.md b/docs/api/pinot-noir.ipinotbrokertransport.stats.md index aa1765d..3a1b133 100644 --- a/docs/api/pinot-noir.ipinotbrokertransport.stats.md +++ b/docs/api/pinot-noir.ipinotbrokertransport.stats.md @@ -4,6 +4,8 @@ ## IPinotBrokerTransport.stats property +Pool statitstics (number of in-flight requests and so on) + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinotclient.md b/docs/api/pinot-noir.ipinotclient.md index 87b7cd2..a79c87d 100644 --- a/docs/api/pinot-noir.ipinotclient.md +++ b/docs/api/pinot-noir.ipinotclient.md @@ -4,6 +4,8 @@ ## IPinotClient interface +Pinot client interface. + **Signature:** ```typescript @@ -41,6 +43,8 @@ Description +Transport stats. + @@ -61,5 +65,7 @@ Description +Execute pinot sql query + diff --git a/docs/api/pinot-noir.ipinotclient.select.md b/docs/api/pinot-noir.ipinotclient.select.md index bc3cad7..c45a792 100644 --- a/docs/api/pinot-noir.ipinotclient.select.md +++ b/docs/api/pinot-noir.ipinotclient.select.md @@ -4,6 +4,8 @@ ## IPinotClient.select() method +Execute pinot sql query + **Signature:** ```typescript @@ -35,6 +37,8 @@ Sql +Sql query body + @@ -46,7 +50,7 @@ options -_(Optional)_ +_(Optional)_ Query options @@ -59,10 +63,12 @@ boolean -_(Optional)_ +_(Optional)_ Pass trace parameter to pinot **Returns:** Promise<[IQueryResult](./pinot-noir.iqueryresult.md)<TResult\[\]>> + +Result rows with stats diff --git a/docs/api/pinot-noir.ipinotclient.transportstats.md b/docs/api/pinot-noir.ipinotclient.transportstats.md index deb0842..effc0ee 100644 --- a/docs/api/pinot-noir.ipinotclient.transportstats.md +++ b/docs/api/pinot-noir.ipinotclient.transportstats.md @@ -4,6 +4,8 @@ ## IPinotClient.transportStats property +Transport stats. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinotpoolstats.md b/docs/api/pinot-noir.ipinotpoolstats.md index dce64ea..52ae6c8 100644 --- a/docs/api/pinot-noir.ipinotpoolstats.md +++ b/docs/api/pinot-noir.ipinotpoolstats.md @@ -4,6 +4,8 @@ ## IPinotPoolStats interface +Pinot transport pool statistics + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinotqueryoptions.md b/docs/api/pinot-noir.ipinotqueryoptions.md index ddc5a58..860fc55 100644 --- a/docs/api/pinot-noir.ipinotqueryoptions.md +++ b/docs/api/pinot-noir.ipinotqueryoptions.md @@ -4,6 +4,8 @@ ## IPinotQueryOptions interface +Query options + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinotsqlexception.errorcode.md b/docs/api/pinot-noir.ipinotsqlexception.errorcode.md index 1ff2060..66f685c 100644 --- a/docs/api/pinot-noir.ipinotsqlexception.errorcode.md +++ b/docs/api/pinot-noir.ipinotsqlexception.errorcode.md @@ -4,6 +4,8 @@ ## IPinotSqlException.errorCode property +Error code + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.ipinotsqlexception.md b/docs/api/pinot-noir.ipinotsqlexception.md index 35f64ca..5d7871f 100644 --- a/docs/api/pinot-noir.ipinotsqlexception.md +++ b/docs/api/pinot-noir.ipinotsqlexception.md @@ -4,6 +4,8 @@ ## IPinotSqlException interface +Apache Pinot exception + **Signature:** ```typescript @@ -41,6 +43,8 @@ number +Error code + @@ -54,5 +58,7 @@ string +Error message + diff --git a/docs/api/pinot-noir.ipinotsqlexception.message.md b/docs/api/pinot-noir.ipinotsqlexception.message.md index 877a957..f0087f1 100644 --- a/docs/api/pinot-noir.ipinotsqlexception.message.md +++ b/docs/api/pinot-noir.ipinotsqlexception.message.md @@ -4,6 +4,8 @@ ## IPinotSqlException.message property +Error message + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iqueryresult.md b/docs/api/pinot-noir.iqueryresult.md index 8babcef..57ed66f 100644 --- a/docs/api/pinot-noir.iqueryresult.md +++ b/docs/api/pinot-noir.iqueryresult.md @@ -4,6 +4,8 @@ ## IQueryResult interface +Query result + **Signature:** ```typescript @@ -41,7 +43,7 @@ string \| undefined -_(Optional)_ +_(Optional)_ Query options @@ -56,6 +58,8 @@ TRows +Data rows + @@ -69,6 +73,8 @@ string +Compiled SQL query + @@ -82,5 +88,7 @@ string +Query stats + diff --git a/docs/api/pinot-noir.iqueryresult.queryoptions.md b/docs/api/pinot-noir.iqueryresult.queryoptions.md index a3f6b17..f37075e 100644 --- a/docs/api/pinot-noir.iqueryresult.queryoptions.md +++ b/docs/api/pinot-noir.iqueryresult.queryoptions.md @@ -4,6 +4,8 @@ ## IQueryResult.queryOptions property +Query options + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iqueryresult.rows.md b/docs/api/pinot-noir.iqueryresult.rows.md index e0873c0..c2d1c59 100644 --- a/docs/api/pinot-noir.iqueryresult.rows.md +++ b/docs/api/pinot-noir.iqueryresult.rows.md @@ -4,6 +4,8 @@ ## IQueryResult.rows property +Data rows + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iqueryresult.sql.md b/docs/api/pinot-noir.iqueryresult.sql.md index 4c61f96..d9c25c3 100644 --- a/docs/api/pinot-noir.iqueryresult.sql.md +++ b/docs/api/pinot-noir.iqueryresult.sql.md @@ -4,6 +4,8 @@ ## IQueryResult.sql property +Compiled SQL query + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iqueryresult.stats.md b/docs/api/pinot-noir.iqueryresult.stats.md index ae593ae..36d3ddc 100644 --- a/docs/api/pinot-noir.iqueryresult.stats.md +++ b/docs/api/pinot-noir.iqueryresult.stats.md @@ -4,6 +4,8 @@ ## IQueryResult.stats property +Query stats + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iquerystats.docs.md b/docs/api/pinot-noir.iquerystats.docs.md index b70bffc..976c7fa 100644 --- a/docs/api/pinot-noir.iquerystats.docs.md +++ b/docs/api/pinot-noir.iquerystats.docs.md @@ -4,6 +4,8 @@ ## IQueryStats.docs property +Docs stats + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iquerystats.md b/docs/api/pinot-noir.iquerystats.md index 9ea7e82..e0059d4 100644 --- a/docs/api/pinot-noir.iquerystats.md +++ b/docs/api/pinot-noir.iquerystats.md @@ -4,6 +4,8 @@ ## IQueryStats interface +Pinot query statistics. Just converted and categorized pinot response stats + **Signature:** ```typescript @@ -41,6 +43,8 @@ Description +Docs stats + @@ -106,6 +110,8 @@ boolean +Segment stats + @@ -119,6 +125,8 @@ boolean +Server stats + @@ -132,6 +140,8 @@ number +Query time in ms + @@ -145,5 +155,7 @@ Record<string, string> +Tracing info + diff --git a/docs/api/pinot-noir.iquerystats.segments.md b/docs/api/pinot-noir.iquerystats.segments.md index 6437417..a8d0ba7 100644 --- a/docs/api/pinot-noir.iquerystats.segments.md +++ b/docs/api/pinot-noir.iquerystats.segments.md @@ -4,6 +4,8 @@ ## IQueryStats.segments property +Segment stats + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iquerystats.server.md b/docs/api/pinot-noir.iquerystats.server.md index 3a4ed53..5f5c03f 100644 --- a/docs/api/pinot-noir.iquerystats.server.md +++ b/docs/api/pinot-noir.iquerystats.server.md @@ -4,6 +4,8 @@ ## IQueryStats.server property +Server stats + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iquerystats.totaltimems.md b/docs/api/pinot-noir.iquerystats.totaltimems.md index 6b4b9e2..b1f9f32 100644 --- a/docs/api/pinot-noir.iquerystats.totaltimems.md +++ b/docs/api/pinot-noir.iquerystats.totaltimems.md @@ -4,6 +4,8 @@ ## IQueryStats.totalTimeMs property +Query time in ms + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iquerystats.traceinfo.md b/docs/api/pinot-noir.iquerystats.traceinfo.md index e940669..79cdb07 100644 --- a/docs/api/pinot-noir.iquerystats.traceinfo.md +++ b/docs/api/pinot-noir.iquerystats.traceinfo.md @@ -4,6 +4,8 @@ ## IQueryStats.traceInfo property +Tracing info + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iresponseschema.columndatatypes.md b/docs/api/pinot-noir.iresponseschema.columndatatypes.md index 82ed374..6b5011d 100644 --- a/docs/api/pinot-noir.iresponseschema.columndatatypes.md +++ b/docs/api/pinot-noir.iresponseschema.columndatatypes.md @@ -4,6 +4,8 @@ ## IResponseSchema.columnDataTypes property +Type for each column. Can be used for proper data parsing. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iresponseschema.columnnames.md b/docs/api/pinot-noir.iresponseschema.columnnames.md index 1b4ec0f..6b2a7ed 100644 --- a/docs/api/pinot-noir.iresponseschema.columnnames.md +++ b/docs/api/pinot-noir.iresponseschema.columnnames.md @@ -4,6 +4,8 @@ ## IResponseSchema.columnNames property +Result column names + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iresponseschema.md b/docs/api/pinot-noir.iresponseschema.md index e816926..fa0fe09 100644 --- a/docs/api/pinot-noir.iresponseschema.md +++ b/docs/api/pinot-noir.iresponseschema.md @@ -4,6 +4,8 @@ ## IResponseSchema interface +Response data schema + **Signature:** ```typescript @@ -41,6 +43,8 @@ string\[\] +Type for each column. Can be used for proper data parsing. + @@ -54,5 +58,7 @@ string\[\] +Result column names + diff --git a/docs/api/pinot-noir.iresulttable.dataschema.md b/docs/api/pinot-noir.iresulttable.dataschema.md index 9ccdb25..ea94d16 100644 --- a/docs/api/pinot-noir.iresulttable.dataschema.md +++ b/docs/api/pinot-noir.iresulttable.dataschema.md @@ -4,6 +4,8 @@ ## IResultTable.dataSchema property +Schema that describes the schema of the response + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.iresulttable.md b/docs/api/pinot-noir.iresulttable.md index cc498b1..2d30207 100644 --- a/docs/api/pinot-noir.iresulttable.md +++ b/docs/api/pinot-noir.iresulttable.md @@ -4,6 +4,8 @@ ## IResultTable interface +Pinot result table + **Signature:** ```typescript @@ -41,6 +43,8 @@ Description +Schema that describes the schema of the response + @@ -54,5 +58,7 @@ Description +Actual content with values. This is an array of arrays. The number of rows depends on the limit value in the query. The number of columns in each row is equal to the length of resultTable.dataSchema.columnNames + diff --git a/docs/api/pinot-noir.iresulttable.rows.md b/docs/api/pinot-noir.iresulttable.rows.md index 6eaf2f7..741a221 100644 --- a/docs/api/pinot-noir.iresulttable.rows.md +++ b/docs/api/pinot-noir.iresulttable.rows.md @@ -4,6 +4,8 @@ ## IResultTable.rows property +Actual content with values. This is an array of arrays. The number of rows depends on the limit value in the query. The number of columns in each row is equal to the length of resultTable.dataSchema.columnNames + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.md b/docs/api/pinot-noir.md index fec0ea9..0838b88 100644 --- a/docs/api/pinot-noir.md +++ b/docs/api/pinot-noir.md @@ -21,6 +21,8 @@ Description +Pinot DB client. + @@ -28,6 +30,8 @@ Description +Pinot broker JSON transport based on "undici" http client. + @@ -49,6 +53,8 @@ Description +Sql utils class. + @@ -69,6 +75,8 @@ Description +Broker error codes + @@ -76,6 +84,8 @@ Description +Broker error codes + @@ -83,6 +93,8 @@ Description +Pinot error types + @@ -90,6 +102,8 @@ Description +Pinot error codes + @@ -110,6 +124,8 @@ Description +SQL template tag + @@ -130,6 +146,8 @@ Description +Pinot broker response + @@ -137,6 +155,8 @@ Description +Pinot broker transport config options + @@ -144,6 +164,8 @@ Description +Pinot broker HTTP request options + @@ -151,6 +173,8 @@ Description +Pinot exception + @@ -158,6 +182,8 @@ Description +Pinot broker transport interface. Implement it create your own. + @@ -165,6 +191,8 @@ Description +Pinot client interface. + @@ -179,6 +207,8 @@ Description +Pinot transport pool statistics + @@ -186,6 +216,8 @@ Description +Query options + @@ -193,6 +225,8 @@ Description +Apache Pinot exception + @@ -200,6 +234,8 @@ Description +Query result + @@ -207,6 +243,8 @@ Description +Pinot query statistics. Just converted and categorized pinot response stats + @@ -214,6 +252,8 @@ Description +Response data schema + @@ -221,6 +261,8 @@ Description +Pinot result table + @@ -241,5 +283,7 @@ Description +Available Pinot data types + diff --git a/docs/api/pinot-noir.pinotbrokerclient.md b/docs/api/pinot-noir.pinotbrokerclient.md index cdff188..08bbff8 100644 --- a/docs/api/pinot-noir.pinotbrokerclient.md +++ b/docs/api/pinot-noir.pinotbrokerclient.md @@ -4,6 +4,8 @@ ## PinotBrokerClient class +Pinot DB client. + **Signature:** ```typescript @@ -90,6 +92,8 @@ Description +Transport stats. + @@ -116,6 +120,8 @@ Description +Execute pinot sql query + @@ -127,5 +133,7 @@ Description +Converts and serializes query options to pinot supported fromat + diff --git a/docs/api/pinot-noir.pinotbrokerclient.select.md b/docs/api/pinot-noir.pinotbrokerclient.select.md index 13b5c62..5ccd9fc 100644 --- a/docs/api/pinot-noir.pinotbrokerclient.select.md +++ b/docs/api/pinot-noir.pinotbrokerclient.select.md @@ -4,6 +4,8 @@ ## PinotBrokerClient.select() method +Execute pinot sql query + **Signature:** ```typescript @@ -35,6 +37,8 @@ Sql +Sql query body + @@ -46,7 +50,7 @@ options -_(Optional)_ +_(Optional)_ Query options @@ -59,10 +63,12 @@ boolean -_(Optional)_ +_(Optional)_ Pass trace parameter to pinot **Returns:** Promise<[IQueryResult](./pinot-noir.iqueryresult.md)<TResult\[\]>> + +Result rows with stats diff --git a/docs/api/pinot-noir.pinotbrokerclient.toqueryoptions.md b/docs/api/pinot-noir.pinotbrokerclient.toqueryoptions.md index 9f42b35..f074305 100644 --- a/docs/api/pinot-noir.pinotbrokerclient.toqueryoptions.md +++ b/docs/api/pinot-noir.pinotbrokerclient.toqueryoptions.md @@ -4,6 +4,8 @@ ## PinotBrokerClient.toQueryOptions() method +Converts and serializes query options to pinot supported fromat + **Signature:** ```typescript @@ -35,10 +37,12 @@ options -_(Optional)_ +_(Optional)_ Query options **Returns:** string \| undefined + +Seriialized options diff --git a/docs/api/pinot-noir.pinotbrokerclient.transportstats.md b/docs/api/pinot-noir.pinotbrokerclient.transportstats.md index 3e3a4e9..5df250b 100644 --- a/docs/api/pinot-noir.pinotbrokerclient.transportstats.md +++ b/docs/api/pinot-noir.pinotbrokerclient.transportstats.md @@ -4,6 +4,8 @@ ## PinotBrokerClient.transportStats property +Transport stats. + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.pinotbrokerjsontransport.close.md b/docs/api/pinot-noir.pinotbrokerjsontransport.close.md index c997b18..fffe198 100644 --- a/docs/api/pinot-noir.pinotbrokerjsontransport.close.md +++ b/docs/api/pinot-noir.pinotbrokerjsontransport.close.md @@ -4,6 +4,8 @@ ## PinotBrokerJSONTransport.close() method +Closes connection to pinot broker + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.pinotbrokerjsontransport.md b/docs/api/pinot-noir.pinotbrokerjsontransport.md index c0c7f2b..2d85bdf 100644 --- a/docs/api/pinot-noir.pinotbrokerjsontransport.md +++ b/docs/api/pinot-noir.pinotbrokerjsontransport.md @@ -4,6 +4,8 @@ ## PinotBrokerJSONTransport class +Pinot broker JSON transport based on "undici" http client. + **Signature:** ```typescript @@ -90,6 +92,8 @@ Pool +HTTP pool statitstics + @@ -133,6 +137,8 @@ Description +Closes connection to pinot broker + @@ -142,5 +148,7 @@ Description +Perform HTTP request to pinot + diff --git a/docs/api/pinot-noir.pinotbrokerjsontransport.request.md b/docs/api/pinot-noir.pinotbrokerjsontransport.request.md index c02a0f1..e451303 100644 --- a/docs/api/pinot-noir.pinotbrokerjsontransport.request.md +++ b/docs/api/pinot-noir.pinotbrokerjsontransport.request.md @@ -4,6 +4,8 @@ ## PinotBrokerJSONTransport.request() method +Perform HTTP request to pinot + **Signature:** ```typescript @@ -40,3 +42,5 @@ Description **Returns:** Promise<TResponse> + +Pinot response diff --git a/docs/api/pinot-noir.pinotbrokerjsontransport.stats.md b/docs/api/pinot-noir.pinotbrokerjsontransport.stats.md index 1b9ab63..464ef88 100644 --- a/docs/api/pinot-noir.pinotbrokerjsontransport.stats.md +++ b/docs/api/pinot-noir.pinotbrokerjsontransport.stats.md @@ -4,6 +4,8 @@ ## PinotBrokerJSONTransport.stats property +HTTP pool statitstics + **Signature:** ```typescript diff --git a/docs/api/pinot-noir.sql.md b/docs/api/pinot-noir.sql.md index 4688a50..ba39e37 100644 --- a/docs/api/pinot-noir.sql.md +++ b/docs/api/pinot-noir.sql.md @@ -4,6 +4,8 @@ ## sql() function +SQL template tag + **Signature:** ```typescript @@ -35,6 +37,8 @@ readonly string\[\] +sql template + @@ -46,8 +50,12 @@ readonly RawValue\[\] +template values + **Returns:** Sql + +SQL statement diff --git a/docs/api/pinot-noir.sqlformat.objecttovalues.md b/docs/api/pinot-noir.sqlformat.objecttovalues.md index e222be7..6c12367 100644 --- a/docs/api/pinot-noir.sqlformat.objecttovalues.md +++ b/docs/api/pinot-noir.sqlformat.objecttovalues.md @@ -7,9 +7,7 @@ **Signature:** ```typescript -static objectToValues(object: { - [key: string]: unknown; - }, timeZone?: string): string; +static objectToValues(object: Record, timeZone?: string): string; ``` ## Parameters @@ -33,7 +31,7 @@ object -{ \[key: string\]: unknown; } +Record<string, unknown> diff --git a/docs/api/pinot-noir.sqlutils.formatoptions.md b/docs/api/pinot-noir.sqlutils.formatoptions.md index 3f1de02..5e0fe31 100644 --- a/docs/api/pinot-noir.sqlutils.formatoptions.md +++ b/docs/api/pinot-noir.sqlutils.formatoptions.md @@ -4,6 +4,8 @@ ## SqlUtils.formatOptions() method +Format pinot options to make them embeddable into query. + **Signature:** ```typescript @@ -35,10 +37,12 @@ options -_(Optional)_ +_(Optional)_ Pinot query options **Returns:** string + +Serialized options diff --git a/docs/api/pinot-noir.sqlutils.md b/docs/api/pinot-noir.sqlutils.md index 20bb3ff..870f39c 100644 --- a/docs/api/pinot-noir.sqlutils.md +++ b/docs/api/pinot-noir.sqlutils.md @@ -4,6 +4,8 @@ ## SqlUtils class +Sql utils class. + **Signature:** ```typescript @@ -35,6 +37,8 @@ Description +Format pinot options to make them embeddable into query. + @@ -46,5 +50,7 @@ Description +Compile and transform sql query with options into string. Might be helpful for logging and copy-paste debugging. + diff --git a/docs/api/pinot-noir.sqlutils.stringifyquery.md b/docs/api/pinot-noir.sqlutils.stringifyquery.md index f38012c..464d61b 100644 --- a/docs/api/pinot-noir.sqlutils.stringifyquery.md +++ b/docs/api/pinot-noir.sqlutils.stringifyquery.md @@ -4,6 +4,8 @@ ## SqlUtils.stringifyQuery() method +Compile and transform sql query with options into string. Might be helpful for logging and copy-paste debugging. + **Signature:** ```typescript @@ -35,6 +37,8 @@ Sql +Pinot sql query + @@ -46,10 +50,12 @@ options -_(Optional)_ +_(Optional)_ Pinot query options **Returns:** string + +Serialized query string diff --git a/docs/api/pinot-noir.tpinotdatatype.md b/docs/api/pinot-noir.tpinotdatatype.md index 2952a0b..514a86f 100644 --- a/docs/api/pinot-noir.tpinotdatatype.md +++ b/docs/api/pinot-noir.tpinotdatatype.md @@ -4,6 +4,8 @@ ## TPinotDataType type +Available Pinot data types + **Signature:** ```typescript diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..e079056 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,98 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { FlatCompat } from '@eslint/eslintrc'; +import js from '@eslint/js'; +import typescriptEslintEslintPlugin from '@typescript-eslint/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; +import importX from 'eslint-plugin-import-x'; +import prettier from 'eslint-plugin-prettier'; +import tsdoc from 'eslint-plugin-tsdoc'; +// import globals from 'globals'; +import tseslint from 'typescript-eslint'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + js.configs.recommended, + importX.flatConfigs.recommended, + importX.flatConfigs.typescript, + ...tseslint.configs.strict, + ...tseslint.configs.stylistic, + { + ignores: [ + '**/logs/', + '**/coverage/', + '**/node_modules/', + '**/.vscode/', + '**/*.xxx.*', + '**/dist/', + 'examples/**/*', + '**/eslint.config.mjs', + '**/.prettierrc.js', + '**/.releaserc.js', + '**/.release/', + ], + }, + ...compat.extends( + 'google', + 'prettier', + 'plugin:@typescript-eslint/recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:@typescript-eslint/recommended-requiring-type-checking', + ), + { + settings: { + 'import/resolver': { + typescript: { + alwaysTryTypes: true, // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` + project: 'tsconfig.json', + }, + }, + }, + plugins: { + prettier, + '@typescript-eslint': typescriptEslintEslintPlugin, + tsdoc, + }, + + languageOptions: { + parser: tsParser, + ecmaVersion: 2020, + sourceType: 'module', + + parserOptions: { + project: 'tsconfig.json', + }, + }, + + rules: { + 'import-x/no-unresolved': 'error', + + 'new-cap': [ + 'error', + { + capIsNewExceptions: ['ObjectId', 'Fastify'], + capIsNewExceptionPattern: '^Type\\.', + }, + ], + + 'require-jsdoc': 'off', + 'valid-jsdoc': 'off', + 'tsdoc/syntax': 'error', + 'prettier/prettier': 'error', + '@typescript-eslint/require-await': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/consistent-type-exports': 'error', + '@typescript-eslint/no-extraneous-class': 'off', + '@typescript-eslint/no-empty-object-type': 'off', + }, + }, +]; diff --git a/etc/pinot-noir.api.md b/etc/pinot-noir.api.md index 64cc169..046e65e 100644 --- a/etc/pinot-noir.api.md +++ b/etc/pinot-noir.api.md @@ -16,23 +16,20 @@ import { Sql } from '@no-esm/sql-template-tag'; export { bulk } -// @public (undocumented) +// @public export const enum EBrokerErrorCode { - // (undocumented) UNKNOWN = 0 } -// @public (undocumented) +// @public export const enum EBrokerTransportErrorCode { - // (undocumented) INVALID_RESPONSE = 1, - // (undocumented) UNKNOWN = 0 } export { empty } -// @public (undocumented) +// @public export enum EPinotErrorType { // (undocumented) PARSE = 3, @@ -44,7 +41,7 @@ export enum EPinotErrorType { UNKNOWN = 0 } -// @public (undocumented) +// @public export enum ERROR_CODES { // (undocumented) ACCESS_DENIED_ERROR_CODE = 180, @@ -114,79 +111,57 @@ export enum ERROR_CODES { UNKNOWN_ERROR_CODE = 1000 } -// @public (undocumented) +// @public export interface IBrokerResponse { exceptions?: IPinoException[]; // (undocumented) minConsumingFreshnessTimeMs: number; // (undocumented) numConsumingSegmentsQueried: number; - // (undocumented) numDocsScanned: number; numEntriesScannedPostFilter: number; numGroupsLimitReached: boolean; - // (undocumented) numSegmentsMatched: number; - // (undocumented) numSegmentsProcessed: number; - // (undocumented) numSegmentsQueried: number; - // (undocumented) numServersQueries: number; - // (undocumented) numServersResponded: number; - // (undocumented) resultTable: IResultTable; - // (undocumented) timeUsedMs: number; - // (undocumented) totalDocs: number; - // (undocumented) traceInfo: Record; } -// @public (undocumented) +// @public export interface IBrokerTransportConfig { - // (undocumented) bodyTimeout?: number; - // (undocumented) brokerUrl: URL | string; connections?: number; - // (undocumented) keepAliveMaxTimeout?: number; - // (undocumented) keepAliveTimeout?: number; - // (undocumented) token: string; } -// @public (undocumented) +// @public export interface IBrokerTransportRequestOptions extends Pick { } -// @public (undocumented) +// @public export interface IPinoException { - // (undocumented) errorCode: number; - // (undocumented) message: string; } -// @public (undocumented) +// @public export interface IPinotBrokerTransport { - // (undocumented) close(): Promise; - // (undocumented) request({ method, headers, path, body, query, }: IBrokerTransportRequestOptions): Promise; - // (undocumented) stats: IPinotPoolStats; } -// @public (undocumented) +// @public export interface IPinotClient { - // (undocumented) select(query: Sql, options?: IPinotQueryOptions, trace?: boolean): Promise>; - // (undocumented) transportStats: IPinotPoolStats; } @@ -206,11 +181,11 @@ export interface IPinotErrorConstructorArgs> { type?: EPinotErrorType; } -// @public (undocumented) +// @public export interface IPinotPoolStats extends PoolStats { } -// @public (undocumented) +// @public export interface IPinotQueryOptions { andScanReordering?: boolean; enableNullHandling?: boolean; @@ -231,27 +206,22 @@ export interface IPinotQueryOptions { useStarTree?: boolean; } -// @public (undocumented) +// @public export interface IPinotSqlException { - // (undocumented) errorCode: number; - // (undocumented) message: string; } -// @public (undocumented) +// @public export interface IQueryResult { - // (undocumented) + queryOptions?: string | undefined; rows: TRows; - // (undocumented) sql: string; - // (undocumented) stats: IQueryStats; } -// @public (undocumented) +// @public export interface IQueryStats { - // (undocumented) docs: { scanned: number; returned: number; @@ -265,42 +235,34 @@ export interface IQueryStats { numEntriesScannedPostFilter: number; // (undocumented) numGroupsLimitReached: boolean; - // (undocumented) segments: { queried: number; processed: number; matched: number; }; - // (undocumented) server: { queries: number; responded: number; }; - // (undocumented) totalTimeMs: number; - // (undocumented) traceInfo: Record; } -// @public (undocumented) +// @public export interface IResponseSchema { - // (undocumented) columnDataTypes: string[]; - // (undocumented) columnNames: string[]; } -// @public (undocumented) +// @public export interface IResultTable { - // (undocumented) dataSchema: IResponseSchema; - // (undocumented) rows: (number | string)[][]; } export { join } -// @public (undocumented) +// @public export class PinotBrokerClient implements IPinotClient { constructor(deps: { transport: IPinotBrokerTransport; @@ -309,22 +271,18 @@ export class PinotBrokerClient implements IPinotClient { protected readonly deps: { transport: IPinotBrokerTransport; }; - // (undocumented) select(query: Sql, options?: IPinotQueryOptions, trace?: boolean): Promise>; - // (undocumented) + static toQueryOptions(options?: IPinotQueryOptions): string | undefined; get transportStats(): IPinotPoolStats; } -// @public (undocumented) +// @public export class PinotBrokerJSONTransport implements IPinotBrokerTransport { constructor({ brokerUrl, token, bodyTimeout, connections, keepAliveMaxTimeout, }: IBrokerTransportConfig); - // (undocumented) close(): Promise; // (undocumented) protected readonly pool: Pool; - // (undocumented) request({ method, headers, path, body, query, }: IBrokerTransportRequestOptions): Promise; - // (undocumented) get stats(): IPinotPoolStats; // (undocumented) protected readonly token: string; @@ -349,7 +307,7 @@ export { RawValue } export { Sql } -// @public (undocumented) +// @public export const sql: (strings: readonly string[], ...values: readonly RawValue[]) => Sql; // @public (undocumented) @@ -367,9 +325,7 @@ export class SqlFormat { // (undocumented) static format(sql: string, values: unknown[] | null | undefined, stringifyObjects?: boolean, timeZone?: string): string; // (undocumented) - static objectToValues(object: { - [key: string]: unknown; - }, timeZone?: string): string; + static objectToValues(object: Record, timeZone?: string): string; // (undocumented) static raw(sql: string): { toSqlFormat: () => string; @@ -378,7 +334,13 @@ export class SqlFormat { static zeroPad(number: number, length: number): string; } -// @public (undocumented) +// @public +export class SqlUtils { + static formatOptions(options?: IPinotQueryOptions): string; + static stringifyQuery(query: Sql, options?: IPinotQueryOptions): string; +} + +// @public export type TPinotDataType = 'INT' | 'LONG' | 'FLOAT' | 'DOUBLE' | 'BIG_DECIMAL' | 'BOOLEAN' | 'TIMESTAMP' | 'STRING' | 'JSON' | 'BYTES'; // (No @packageDocumentation comment for this package) diff --git a/examples/index.ts b/examples/index.ts new file mode 100644 index 0000000..ff8f0c8 --- /dev/null +++ b/examples/index.ts @@ -0,0 +1,2 @@ +import './local-pinot'; +import './sql-utils'; diff --git a/examples/local-pinot.ts b/examples/local-pinot.ts new file mode 100644 index 0000000..98be83d --- /dev/null +++ b/examples/local-pinot.ts @@ -0,0 +1,32 @@ +import { PinotBrokerClient, PinotBrokerJSONTransport, sql } from '../src'; + +const pinotTransport = new PinotBrokerJSONTransport({ + brokerUrl: 'http://127.0.0.1:8000', // replace with your broker url if needed + token: '', + connections: 32, +}); + +const pinotClient = new PinotBrokerClient({ transport: pinotTransport }); + +interface IResult { + hist: number; + homeRuns: number; + gamesCount: number; +} + +(async () => { + const year = 2010; + const query = sql` + select sum(hits) as hits, sum(homeRuns) as homeRuns, sum(numberOfGames) as gamesCount + from baseballStats + where yearID > ${year}`; + const result = await pinotClient.select(query, { timeoutMs: 1000 }); + + console.log('== Query =='); + console.log(result.sql); + console.log(''); + console.log('== Results =='); + console.table(result.rows); + console.log('== Stats =='); + console.log(result.stats); +})(); diff --git a/examples/sql-utils.ts b/examples/sql-utils.ts new file mode 100644 index 0000000..85f11c0 --- /dev/null +++ b/examples/sql-utils.ts @@ -0,0 +1,13 @@ +import { sql, SqlUtils } from '../src'; + +const year = 2010; +const query = sql` + select sum(hits) as hits + from baseballStats + where yearID > ${year}`; +const parameters = { + timeoutMs: 10000, +}; + +console.log('== Sql Utils =='); +console.log(SqlUtils.stringifyQuery(query, parameters)); diff --git a/package.json b/package.json index 2a844c9..605f891 100644 --- a/package.json +++ b/package.json @@ -35,8 +35,9 @@ "build:clean": "rm -rf dist", "build:docs": "api-extractor run -l && api-documenter markdown -i ./temp -o ./docs/api && pretty-quick", "build:node": "tsc -p tsconfig.build.json", + "examples": "tsx examples/index.ts", "lint": "pnpm run lint:types && pnpm run lint:codestyle && pnpm run lint:packages", - "lint:codestyle": "eslint . --ext js,jsx,ts,tsx", + "lint:codestyle": "eslint --fix", "lint:packages": "pnpm audit --prod --audit-level=high", "lint:types": "tsc -p tsconfig.json", "release": "semantic-release", @@ -45,46 +46,56 @@ }, "dependencies": { "@no-esm/sql-template-tag": "^5.2.2", - "undici": "^6.19.2" + "undici": "^6.19.8" }, "devDependencies": { + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.10.0", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", - "@microsoft/api-documenter": "^7.25.4", - "@microsoft/api-extractor": "^7.47.0", + "@microsoft/api-documenter": "^7.25.14", + "@microsoft/api-extractor": "^7.47.9", "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.0", "@semantic-release/exec": "^6.0.3", "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^10.1.0", + "@semantic-release/github": "^10.3.4", "@semantic-release/npm": "^12.0.1", "@semantic-release/release-notes-generator": "^14.0.1", "@tsconfig/node-lts": "^20.1.3", "@tsconfig/strictest": "^2.0.5", - "@types/node": "^20.14.10", - "@typescript-eslint/eslint-plugin": "^7.16.0", + "@types/eslint__js": "^8.42.3", + "@types/node": "^22.5.5", + "@typescript-eslint/eslint-plugin": "^8.5.0", "conventional-changelog-conventionalcommits": "^8.0.0", - "eslint": "^8.57.0", + "eslint": "^9.10.0", "eslint-config-google": "^0.14.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-prettier": "^5.1.3", + "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-import-x": "^4.2.1", + "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-tsdoc": "^0.3.0", + "globals": "^15.9.0", "globstar": "^1.0.0", "prettier": "^3.3.3", "prettier-plugin-jsdoc": "^1.3.0", - "prettier-plugin-packagejson": "^2.5.0", + "prettier-plugin-packagejson": "^2.5.2", "prettier-plugin-sh": "^0.14.0", "prettier-plugin-sort-json": "^4.0.0", "pretty-quick": "^4.0.0", - "semantic-release": "^24.0.0", - "tsx": "^4.16.2", - "typescript": "^5.5.3" + "semantic-release": "^24.1.1", + "tsx": "^4.19.1", + "typescript": "^5.6.2", + "typescript-eslint": "^8.5.0" }, "packageManager": "pnpm@9.5.0+sha512.140036830124618d624a2187b50d04289d5a087f326c9edfc0ccd733d76c4f52c3a313d4fc148794a2a9d81553016004e6742e8cf850670268a7387fc220c903", "engines": { "node": ">=18", "pnpm": ">=9" }, + "volta": { + "node": "22.8.0", + "pnpm": "9.9.0" + }, "publishConfig": { "access": "public", "main": "dist/index.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0486bdd..66cb2ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,72 +12,87 @@ importers: specifier: ^5.2.2 version: 5.2.2 undici: - specifier: ^6.19.2 - version: 6.19.2 + specifier: ^6.19.8 + version: 6.19.8 devDependencies: + '@eslint/eslintrc': + specifier: ^3.1.0 + version: 3.1.0 + '@eslint/js': + specifier: ^9.10.0 + version: 9.10.0 '@ianvs/prettier-plugin-sort-imports': specifier: ^4.3.1 version: 4.3.1(prettier@3.3.3) '@microsoft/api-documenter': - specifier: ^7.25.4 - version: 7.25.4(@types/node@20.14.10) + specifier: ^7.25.14 + version: 7.25.14(@types/node@22.5.5) '@microsoft/api-extractor': - specifier: ^7.47.0 - version: 7.47.0(@types/node@20.14.10) + specifier: ^7.47.9 + version: 7.47.9(@types/node@22.5.5) '@semantic-release/changelog': specifier: ^6.0.3 - version: 6.0.3(semantic-release@24.0.0(typescript@5.5.3)) + version: 6.0.3(semantic-release@24.1.1(typescript@5.6.2)) '@semantic-release/commit-analyzer': specifier: ^13.0.0 - version: 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) + version: 13.0.0(semantic-release@24.1.1(typescript@5.6.2)) '@semantic-release/exec': specifier: ^6.0.3 - version: 6.0.3(semantic-release@24.0.0(typescript@5.5.3)) + version: 6.0.3(semantic-release@24.1.1(typescript@5.6.2)) '@semantic-release/git': specifier: ^10.0.1 - version: 10.0.1(semantic-release@24.0.0(typescript@5.5.3)) + version: 10.0.1(semantic-release@24.1.1(typescript@5.6.2)) '@semantic-release/github': - specifier: ^10.1.0 - version: 10.1.0(semantic-release@24.0.0(typescript@5.5.3)) + specifier: ^10.3.4 + version: 10.3.4(semantic-release@24.1.1(typescript@5.6.2)) '@semantic-release/npm': specifier: ^12.0.1 - version: 12.0.1(semantic-release@24.0.0(typescript@5.5.3)) + version: 12.0.1(semantic-release@24.1.1(typescript@5.6.2)) '@semantic-release/release-notes-generator': specifier: ^14.0.1 - version: 14.0.1(semantic-release@24.0.0(typescript@5.5.3)) + version: 14.0.1(semantic-release@24.1.1(typescript@5.6.2)) '@tsconfig/node-lts': specifier: ^20.1.3 version: 20.1.3 '@tsconfig/strictest': specifier: ^2.0.5 version: 2.0.5 + '@types/eslint__js': + specifier: ^8.42.3 + version: 8.42.3 '@types/node': - specifier: ^20.14.10 - version: 20.14.10 + specifier: ^22.5.5 + version: 22.5.5 '@typescript-eslint/eslint-plugin': - specifier: ^7.16.0 - version: 7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) + specifier: ^8.5.0 + version: 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2) conventional-changelog-conventionalcommits: specifier: ^8.0.0 version: 8.0.0 eslint: - specifier: ^8.57.0 - version: 8.57.0 + specifier: ^9.10.0 + version: 9.10.0 eslint-config-google: specifier: ^0.14.0 - version: 0.14.0(eslint@8.57.0) + version: 0.14.0(eslint@9.10.0) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.0) - eslint-plugin-import: - specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0) + version: 9.1.0(eslint@9.10.0) + eslint-import-resolver-typescript: + specifier: ^3.6.3 + version: 3.6.3(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-plugin-import-x@4.2.1(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0) + eslint-plugin-import-x: + specifier: ^4.2.1 + version: 4.2.1(eslint@9.10.0)(typescript@5.6.2) eslint-plugin-prettier: - specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3) + specifier: ^5.2.1 + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.10.0))(eslint@9.10.0)(prettier@3.3.3) eslint-plugin-tsdoc: specifier: ^0.3.0 version: 0.3.0 + globals: + specifier: ^15.9.0 + version: 15.9.0 globstar: specifier: ^1.0.0 version: 1.0.0 @@ -88,8 +103,8 @@ importers: specifier: ^1.3.0 version: 1.3.0(prettier@3.3.3) prettier-plugin-packagejson: - specifier: ^2.5.0 - version: 2.5.0(prettier@3.3.3) + specifier: ^2.5.2 + version: 2.5.2(prettier@3.3.3) prettier-plugin-sh: specifier: ^0.14.0 version: 0.14.0(prettier@3.3.3) @@ -100,14 +115,17 @@ importers: specifier: ^4.0.0 version: 4.0.0(prettier@3.3.3) semantic-release: - specifier: ^24.0.0 - version: 24.0.0(typescript@5.5.3) + specifier: ^24.1.1 + version: 24.1.1(typescript@5.6.2) tsx: - specifier: ^4.16.2 - version: 4.16.2 + specifier: ^4.19.1 + version: 4.19.1 typescript: - specifier: ^5.5.3 - version: 5.5.3 + specifier: ^5.6.2 + version: 5.6.2 + typescript-eslint: + specifier: ^8.5.0 + version: 8.5.0(eslint@9.10.0)(typescript@5.6.2) packages: @@ -119,40 +137,28 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.9': - resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.9': - resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.9': - resolution: {integrity: sha512-G8v3jRg+z8IwY1jHFxvCNhOPYPterE4XljNgdGTYfSTtzzwjIswIzIaSPSLs3R7yFuqnqNeay5rjICfqVr+/6A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.24.8': - resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.24.7': resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.9': - resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -161,10 +167,6 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} @@ -177,170 +179,176 @@ packages: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.8': - resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.8': - resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.8': - resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.9': - resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -350,30 +358,37 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.10.0': + resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@eslint/plugin-kit@0.1.0': + resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} '@ianvs/prettier-plugin-sort-imports@4.3.1': resolution: {integrity: sha512-ZHwbyjkANZOjaBm3ZosADD2OUYGFzQGxfy67HmGZU94mHqe7g1LCMA7YYKB1Cq+UTPCBqlAYapY0KXAjKEw8Sg==} @@ -402,15 +417,15 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@microsoft/api-documenter@7.25.4': - resolution: {integrity: sha512-hGERhz4L11zni1ifapBK3zhHFcX1QIGoTf0WzoCC0mI2IXfWDJ5ToYMZTPO6qPmn3ElrZtSWcoaHVkaRz16Q/Q==} + '@microsoft/api-documenter@7.25.14': + resolution: {integrity: sha512-nysAB+j4l5Al3XvCdee6tw0rw4fXpnlIq9En2opcc3DgITeoehiaYYoZZqoqOQSKlSUDWF7Z55GGsvntVrcBkg==} hasBin: true - '@microsoft/api-extractor-model@7.29.2': - resolution: {integrity: sha512-hAYajOjQan3uslhKJRwvvHIdLJ+ZByKqdSsJ/dgHFxPtEbdKpzMDO8zuW4K5gkSMYl5D0LbNwxkhxr51P2zsmw==} + '@microsoft/api-extractor-model@7.29.8': + resolution: {integrity: sha512-t3Z/xcO6TRbMcnKGVMs4uMzv/gd5j0NhMiJIGjD4cJMeFJ1Hf8wnLSx37vxlRlL0GWlGJhnFgxvnaL6JlS+73g==} - '@microsoft/api-extractor@7.47.0': - resolution: {integrity: sha512-LT8yvcWNf76EpDC+8/ArTVSYePvuDQ+YbAUrsTcpg3ptiZ93HIcMCozP/JOxDt+rrsFfFHcpfoselKfPyRI0GQ==} + '@microsoft/api-extractor@7.47.9': + resolution: {integrity: sha512-TTq30M1rikVsO5wZVToQT/dGyJY7UXJmjiRtkHPLb74Prx3Etw8+bX7Bv7iLuby6ysb7fuu1NFWqma+csym8Jw==} hasBin: true '@microsoft/tsdoc-config@0.17.0': @@ -435,6 +450,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + '@octokit/auth-token@5.1.1': resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} engines: {node: '>= 18'} @@ -495,31 +514,31 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@2.2.2': - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@rushstack/node-core-library@5.4.1': - resolution: {integrity: sha512-WNnwdS8r9NZ/2K3u29tNoSRldscFa7SxU0RT+82B6Dy2I4Hl2MeCSKm4EXLXPKeNzLGvJ1cqbUhTLviSF8E6iA==} + '@rushstack/node-core-library@5.9.0': + resolution: {integrity: sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/rig-package@0.5.2': - resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + '@rushstack/rig-package@0.5.3': + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - '@rushstack/terminal@0.13.0': - resolution: {integrity: sha512-Ou44Q2s81BqJu3dpYedAX54am9vn245F0HzqVrfJCMQk5pGgoKKOBOjkbfZC9QKcGNaECh6pwH2s5noJt7X6ew==} + '@rushstack/terminal@0.14.2': + resolution: {integrity: sha512-2fC1wqu1VCExKC0/L+0noVcFQEXEnoBOtCIex1TOjBzEDWcw8KzJjjj7aTP6mLxepG0XIyn9OufeFb6SFsa+sg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/ts-command-line@4.22.0': - resolution: {integrity: sha512-Qj28t6MO3HRgAZ72FDeFsrpdE6wBWxF3VENgvrXh7JF2qIT+CrXiOJIesW80VFZB9QwObSpkB1ilx794fGQg6g==} + '@rushstack/ts-command-line@4.22.8': + resolution: {integrity: sha512-XbFjOoV7qZHJnSuFUHv0pKaFA4ixyCuki+xMjsMfDwfvQjs5MYG0IK5COal3tRnG7KCDe2l/G+9LrzYE/RJhgg==} '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -556,8 +575,8 @@ packages: peerDependencies: semantic-release: '>=18.0.0' - '@semantic-release/github@10.1.0': - resolution: {integrity: sha512-g4RHBaCWJjGcEy95TeTdajlmUoP5jAaF5trGkFXHKsT/VpCwawhZbNW66+sUr0c2CIAdfpCxxmK+E7GyWBWJDw==} + '@semantic-release/github@10.3.4': + resolution: {integrity: sha512-JghCkEk7e2u+iauMje8lgHH11pbtaz9yTdMn/PyfulCdBshIwpp+Mu/NR8Ml216auEUtvmBpQX5+Cth2TsVUVw==} engines: {node: '>=20.8.1'} peerDependencies: semantic-release: '>=20.1.0' @@ -598,8 +617,17 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/eslint__js@8.42.3': + resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -607,8 +635,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.14.10': - resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + '@types/node@22.5.5': + resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -616,69 +644,65 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@7.16.0': - resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.5.0': + resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@7.16.0': - resolution: {integrity: sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.5.0': + resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@7.16.0': - resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.5.0': + resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.16.0': - resolution: {integrity: sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@8.5.0': + resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@7.16.0': - resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.5.0': + resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.16.0': - resolution: {integrity: sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.5.0': + resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@7.16.0': - resolution: {integrity: sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.5.0': + resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@7.16.0': - resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@typescript-eslint/visitor-keys@8.5.0': + resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -766,41 +790,9 @@ packages: argv-formatter@1.0.0: resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -823,15 +815,11 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -840,8 +828,8 @@ packages: resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} engines: {node: '>=0.10.0'} - caniuse-lite@1.0.30001642: - resolution: {integrity: sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==} + caniuse-lite@1.0.30001660: + resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -914,7 +902,7 @@ packages: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -968,18 +956,6 @@ packages: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -988,8 +964,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1011,14 +987,6 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} @@ -1041,10 +1009,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -1056,8 +1020,8 @@ packages: duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - electron-to-chromium@1.4.827: - resolution: {integrity: sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==} + electron-to-chromium@1.5.23: + resolution: {integrity: sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1065,8 +1029,12 @@ packages: emojilib@2.4.0: resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - env-ci@11.0.0: - resolution: {integrity: sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + env-ci@11.1.0: + resolution: {integrity: sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==} engines: {node: ^18.17 || >=20.6.1} env-paths@2.2.1: @@ -1080,40 +1048,13 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-string-regexp@1.0.5: @@ -1143,8 +1084,21 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + eslint-import-resolver-typescript@3.6.3: + resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.11.0: + resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1164,18 +1118,14 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} + eslint-plugin-import-x@4.2.1: + resolution: {integrity: sha512-WWi2GedccIJa0zXxx3WDnTgouGQTtdYK1nhXMwywbqqAgB0Ov+p1pYBsWh3VaB0bvBOwLse6OfVII7jZD9xo5Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-prettier@5.1.3: - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -1191,22 +1141,31 @@ packages: eslint-plugin-tsdoc@0.3.0: resolution: {integrity: sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.10.0: + resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -1237,8 +1196,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.3.0: - resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==} + execa@9.3.1: + resolution: {integrity: sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==} engines: {node: ^18.19.0 || >=20.5.0} fast-deep-equal@3.1.3: @@ -1268,9 +1227,9 @@ packages: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -1292,16 +1251,13 @@ packages: resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} engines: {node: '>=18'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} @@ -1313,9 +1269,6 @@ packages: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1328,13 +1281,6 @@ packages: resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} engines: {node: '>=18'} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gauge@1.2.7: resolution: {integrity: sha512-fVbU2wRE91yDvKUnrIaQlHKAWKY5e08PmztCrwuH5YVQ+Z/p3d0ny2T48o6uvAAXHIUnfaQdHkmxYbQft1eHVA==} deprecated: This package is no longer supported. @@ -1347,10 +1293,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} @@ -1371,12 +1313,8 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} git-hooks-list@3.1.0: resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} @@ -1396,25 +1334,17 @@ packages: resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} deprecated: Glob versions prior to v9 are no longer supported - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + engines: {node: '>=18'} globby@13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} @@ -1428,9 +1358,6 @@ packages: resolution: {integrity: sha512-UNXhfJYrwD6DNxMU4C9GJI1NhCMNvdsFnAGPLJHAeGW1io9l3N2FN7UUH76gQXhAUGNY+1rsVSkQnU59VRvxuQ==} hasBin: true - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -1445,9 +1372,6 @@ packages: engines: {node: '>=0.4.7'} hasBin: true - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -1456,21 +1380,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} @@ -1489,6 +1398,10 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@8.0.0: + resolution: {integrity: sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==} + engines: {node: ^18.17.0 || >=20.5.0} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -1505,12 +1418,12 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - human-signals@7.0.0: - resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} engines: {node: '>=18.18.0'} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} import-fresh@3.3.0: @@ -1554,10 +1467,6 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - into-stream@7.0.0: resolution: {integrity: sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==} engines: {node: '>=12'} @@ -1566,34 +1475,14 @@ packages: resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} engines: {node: '>=0.10.0'} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-bun-module@1.2.1: + resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -1612,14 +1501,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -1636,14 +1517,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -1656,31 +1529,13 @@ packages: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - - is-unicode-supported@2.0.0: - resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1729,10 +1584,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -1904,8 +1755,8 @@ packages: micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime@4.0.4: @@ -1938,9 +1789,6 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -1963,8 +1811,8 @@ packages: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-package-data@6.0.2: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} @@ -1982,8 +1830,8 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm@10.8.2: - resolution: {integrity: sha512-x/AIjFIKRllrhcb48dqUNAAZl0ig9+qMuN91RpZo3Cb2+zuibfh+KISl6+kVVyktDz230JKc208UkQwwMqyB+w==} + npm@10.8.3: + resolution: {integrity: sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true bundledDependencies: @@ -2072,30 +1920,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -2223,8 +2047,8 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2242,10 +2066,6 @@ packages: resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} engines: {node: '>=4'} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2260,8 +2080,8 @@ packages: peerDependencies: prettier: ^3.0.0 - prettier-plugin-packagejson@2.5.0: - resolution: {integrity: sha512-6XkH3rpin5QEQodBSVNg+rBo4r91g/1mCaRwS1YGdQJZ6jwqrg2UchBsIG9tpS1yK1kNBvOt84OILsX8uHzBGg==} + prettier-plugin-packagejson@2.5.2: + resolution: {integrity: sha512-w+TmoLv2pIa+siplW1cCj2ujEXQQS6z7wmWLOiLQK/2QVl7Wy6xh/ZUpqQw8tbKMXDodmSW4GONxlA33xpdNOg==} peerDependencies: prettier: '>= 1.16.0' peerDependenciesMeta: @@ -2285,8 +2105,8 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-ms@9.0.0: - resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + pretty-ms@9.1.0: + resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==} engines: {node: '>=18'} pretty-quick@4.0.0: @@ -2324,10 +2144,6 @@ packages: readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} - registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} @@ -2359,27 +2175,14 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - - semantic-release@24.0.0: - resolution: {integrity: sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==} + semantic-release@24.1.1: + resolution: {integrity: sha512-4Ax2GxD411jUe9IdhOjMLuN+6wAj+aKjvOGngByrpD/iKL+UKN/2puQglhyI4gxNyy9XzEBMzBwbqpnEwbXGEg==} engines: {node: '>=20.8.1'} hasBin: true @@ -2400,19 +2203,11 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - sh-syntax@0.4.2: resolution: {integrity: sha512-/l2UZ5fhGZLVZa16XQM9/Vq/hezGGbdHeVEA01uWjOL1+7Ek/gt6FquW0iKKws4a9AYPYvlz6RyVvjh3JxOteg==} engines: {node: '>=16.0.0'} @@ -2425,10 +2220,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -2444,10 +2235,6 @@ packages: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} engines: {node: '>=8'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} @@ -2459,8 +2246,8 @@ packages: sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - sort-package-json@2.10.0: - resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} + sort-package-json@2.10.1: + resolution: {integrity: sha512-d76wfhgUuGypKqY72Unm5LFnMpACbdxXsLPcL27pOsSrmVqH3PztFp1uq+Z22suk15h7vXmTesuh2aEjdCqb5w==} hasBin: true source-map@0.6.1: @@ -2479,8 +2266,8 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} split2@1.0.0: resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==} @@ -2488,6 +2275,9 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} @@ -2503,17 +2293,6 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -2565,21 +2344,21 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-hyperlinks@3.0.0: - resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + supports-hyperlinks@3.1.0: + resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} engines: {node: '>=14.18'} supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.9.0: - resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} - engines: {node: ^14.18.0 || >=16.0.0} + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} temp-dir@3.0.0: resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} @@ -2624,14 +2403,11 @@ packages: peerDependencies: typescript: '>=4.2.0' - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tsx@4.16.2: - resolution: {integrity: sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==} + tsx@4.19.1: + resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} engines: {node: '>=18.0.0'} hasBin: true @@ -2639,10 +2415,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -2651,49 +2423,39 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.21.0: - resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==} + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + typescript-eslint@8.5.0: + resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true typescript@5.4.2: resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true - typescript@5.5.3: - resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true - uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - undici@6.19.2: - resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} + undici@6.19.8: + resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} engines: {node: '>=18.17'} unicode-emoji-modifier-base@1.0.0: @@ -2741,13 +2503,6 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2830,131 +2585,110 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 - '@babel/compat-data@7.24.9': {} + '@babel/compat-data@7.25.4': {} - '@babel/core@7.24.9': + '@babel/core@7.25.2': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.9': + '@babel/generator@7.25.6': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-compilation-targets@7.24.8': + '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.24.9 + '@babel/compat-data': 7.25.4 '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 + browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.9 - '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.9 - '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.24.8': + '@babel/helpers@7.25.6': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 '@babel/highlight@7.24.7': dependencies: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 - '@babel/parser@7.24.8': + '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.6 - '@babel/template@7.24.7': + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 - '@babel/traverse@7.24.8': + '@babel/traverse@7.25.6': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - debug: 4.3.5 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.9': + '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 @@ -2963,89 +2697,100 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@esbuild/aix-ppc64@0.21.5': + '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.21.5': + '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.21.5': + '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-ia32@0.21.5': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-x64@0.21.5': + '@esbuild/win32-ia32@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@esbuild/win32-x64@0.23.1': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0)': dependencies: - eslint: 8.57.0 + eslint: 9.10.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.11.1': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color - '@eslint/eslintrc@2.1.4': + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 + debug: 4.3.7 + espree: 10.1.0 + globals: 14.0.0 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -3053,29 +2798,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@9.10.0': {} - '@humanwhocodes/config-array@0.11.14': + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.1.0': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + levn: 0.4.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.0': {} '@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3)': dependencies: - '@babel/core': 7.24.9 - '@babel/generator': 7.24.9 - '@babel/parser': 7.24.8 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/core': 7.25.2 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 prettier: 3.3.3 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -3096,35 +2839,35 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@microsoft/api-documenter@7.25.4(@types/node@20.14.10)': + '@microsoft/api-documenter@7.25.14(@types/node@22.5.5)': dependencies: - '@microsoft/api-extractor-model': 7.29.2(@types/node@20.14.10) + '@microsoft/api-extractor-model': 7.29.8(@types/node@22.5.5) '@microsoft/tsdoc': 0.15.0 - '@rushstack/node-core-library': 5.4.1(@types/node@20.14.10) - '@rushstack/terminal': 0.13.0(@types/node@20.14.10) - '@rushstack/ts-command-line': 4.22.0(@types/node@20.14.10) + '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5) + '@rushstack/terminal': 0.14.2(@types/node@22.5.5) + '@rushstack/ts-command-line': 4.22.8(@types/node@22.5.5) js-yaml: 3.13.1 resolve: 1.22.8 transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.29.2(@types/node@20.14.10)': + '@microsoft/api-extractor-model@7.29.8(@types/node@22.5.5)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.4.1(@types/node@20.14.10) + '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.0(@types/node@20.14.10)': + '@microsoft/api-extractor@7.47.9(@types/node@22.5.5)': dependencies: - '@microsoft/api-extractor-model': 7.29.2(@types/node@20.14.10) + '@microsoft/api-extractor-model': 7.29.8(@types/node@22.5.5) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.4.1(@types/node@20.14.10) - '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.13.0(@types/node@20.14.10) - '@rushstack/ts-command-line': 4.22.0(@types/node@20.14.10) + '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.14.2(@types/node@22.5.5) + '@rushstack/ts-command-line': 4.22.8(@types/node@22.5.5) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.8 @@ -3157,6 +2900,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@nolyfill/is-core-module@1.0.39': {} + '@octokit/auth-token@5.1.1': {} '@octokit/core@6.1.2': @@ -3223,13 +2968,13 @@ snapshots: dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@2.2.2': + '@pnpm/npm-conf@2.3.1': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@rushstack/node-core-library@5.4.1(@types/node@20.14.10)': + '@rushstack/node-core-library@5.9.0(@types/node@22.5.5)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -3240,23 +2985,23 @@ snapshots: resolve: 1.22.8 semver: 7.5.4 optionalDependencies: - '@types/node': 20.14.10 + '@types/node': 22.5.5 - '@rushstack/rig-package@0.5.2': + '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.13.0(@types/node@20.14.10)': + '@rushstack/terminal@0.14.2(@types/node@22.5.5)': dependencies: - '@rushstack/node-core-library': 5.4.1(@types/node@20.14.10) + '@rushstack/node-core-library': 5.9.0(@types/node@22.5.5) supports-color: 8.1.1 optionalDependencies: - '@types/node': 20.14.10 + '@types/node': 22.5.5 - '@rushstack/ts-command-line@4.22.0(@types/node@20.14.10)': + '@rushstack/ts-command-line@4.22.8(@types/node@22.5.5)': dependencies: - '@rushstack/terminal': 0.13.0(@types/node@20.14.10) + '@rushstack/terminal': 0.14.2(@types/node@22.5.5) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -3265,25 +3010,25 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@semantic-release/changelog@6.0.3(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/changelog@6.0.3(semantic-release@24.1.1(typescript@5.6.2))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 fs-extra: 11.2.0 lodash: 4.17.21 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.6.2) - '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/commit-analyzer@13.0.0(semantic-release@24.1.1(typescript@5.6.2))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.5 + debug: 4.3.7 import-from-esm: 1.3.4 lodash-es: 4.17.21 - micromatch: 4.0.7 - semantic-release: 24.0.0(typescript@5.5.3) + micromatch: 4.0.8 + semantic-release: 24.1.1(typescript@5.6.2) transitivePeerDependencies: - supports-color @@ -3291,33 +3036,33 @@ snapshots: '@semantic-release/error@4.0.0': {} - '@semantic-release/exec@6.0.3(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/exec@6.0.3(semantic-release@24.1.1(typescript@5.6.2))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - debug: 4.3.5 + debug: 4.3.7 execa: 5.1.1 lodash: 4.17.21 parse-json: 5.2.0 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.6.2) transitivePeerDependencies: - supports-color - '@semantic-release/git@10.0.1(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/git@10.0.1(semantic-release@24.1.1(typescript@5.6.2))': dependencies: '@semantic-release/error': 3.0.0 aggregate-error: 3.1.0 - debug: 4.3.5 + debug: 4.3.7 dir-glob: 3.0.1 execa: 5.1.1 lodash: 4.17.21 - micromatch: 4.0.7 + micromatch: 4.0.8 p-reduce: 2.1.0 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.6.2) transitivePeerDependencies: - supports-color - '@semantic-release/github@10.1.0(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/github@10.3.4(semantic-release@24.1.1(typescript@5.6.2))': dependencies: '@octokit/core': 6.1.2 '@octokit/plugin-paginate-rest': 11.3.3(@octokit/core@6.1.2) @@ -3325,7 +3070,7 @@ snapshots: '@octokit/plugin-throttling': 9.3.1(@octokit/core@6.1.2) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - debug: 4.3.5 + debug: 4.3.7 dir-glob: 3.0.1 globby: 14.0.2 http-proxy-agent: 7.0.2 @@ -3334,41 +3079,41 @@ snapshots: lodash-es: 4.17.21 mime: 4.0.4 p-filter: 4.1.0 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.6.2) url-join: 5.0.0 transitivePeerDependencies: - supports-color - '@semantic-release/npm@12.0.1(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/npm@12.0.1(semantic-release@24.1.1(typescript@5.6.2))': dependencies: '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - execa: 9.3.0 + execa: 9.3.1 fs-extra: 11.2.0 lodash-es: 4.17.21 nerf-dart: 1.0.0 normalize-url: 8.0.1 - npm: 10.8.2 + npm: 10.8.3 rc: 1.2.8 read-pkg: 9.0.1 registry-auth-token: 5.0.2 - semantic-release: 24.0.0(typescript@5.5.3) - semver: 7.6.2 + semantic-release: 24.1.1(typescript@5.6.2) + semver: 7.6.3 tempy: 3.1.0 - '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.0.0(typescript@5.5.3))': + '@semantic-release/release-notes-generator@14.0.1(semantic-release@24.1.1(typescript@5.6.2))': dependencies: conventional-changelog-angular: 8.0.0 conventional-changelog-writer: 8.0.0 conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.0.0 - debug: 4.3.5 + debug: 4.3.7 get-stream: 7.0.1 import-from-esm: 1.3.4 into-stream: 7.0.0 lodash-es: 4.17.21 read-package-up: 11.0.0 - semantic-release: 24.0.0(typescript@5.5.3) + semantic-release: 24.1.1(typescript@5.6.2) transitivePeerDependencies: - supports-color @@ -3388,107 +3133,116 @@ snapshots: dependencies: '@types/ms': 0.7.34 - '@types/json5@0.0.29': {} + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/eslint__js@8.42.3': + dependencies: + '@types/eslint': 9.6.1 + + '@types/estree@1.0.5': {} + + '@types/json-schema@7.0.15': {} '@types/mdast@4.0.4': dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 '@types/ms@0.7.34': {} - '@types/node@20.14.10': + '@types/node@22.5.5': dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 '@types/normalize-package-data@2.4.4': {} '@types/semver@7.5.8': {} - '@types/unist@3.0.2': {} + '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': + '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2)': dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/type-utils': 7.16.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.16.0 - eslint: 8.57.0 + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.5.0 + eslint: 9.10.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.3) + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3)': + '@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.16.0 - debug: 4.3.5 - eslint: 8.57.0 + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.5.0 + debug: 4.3.7 + eslint: 9.10.0 optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.16.0': + '@typescript-eslint/scope-manager@8.5.0': dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 - '@typescript-eslint/type-utils@7.16.0(eslint@8.57.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0)(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.5.3) - debug: 4.3.5 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.5.3) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.2 transitivePeerDependencies: + - eslint - supports-color - '@typescript-eslint/types@7.16.0': {} + '@typescript-eslint/types@8.5.0': {} - '@typescript-eslint/typescript-estree@7.16.0(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 - debug: 4.3.5 - globby: 11.1.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 + debug: 4.3.7 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.3) + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.16.0(eslint@8.57.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.5.0(eslint@9.10.0)(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - eslint: 8.57.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + eslint: 9.10.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.16.0': + '@typescript-eslint/visitor-keys@8.5.0': dependencies: - '@typescript-eslint/types': 7.16.0 + '@typescript-eslint/types': 8.5.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} - acorn-jsx@5.3.2(acorn@8.12.1): dependencies: acorn: 8.12.1 @@ -3497,7 +3251,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -3573,62 +3327,8 @@ snapshots: argv-formatter@1.0.0: {} - array-buffer-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - array-ify@1.0.0: {} - array-includes@3.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - - array-union@2.1.0: {} - - array.prototype.findlastindex@1.2.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - - array.prototype.flatmap@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - - arraybuffer.prototype.slice@1.0.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.0.0 - balanced-match@1.0.2: {} before-after-hook@3.0.2: {} @@ -3650,26 +3350,18 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.2: + browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001642 - electron-to-chromium: 1.4.827 - node-releases: 2.0.14 - update-browserslist-db: 1.1.0(browserslist@4.23.2) - - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 + caniuse-lite: 1.0.30001660 + electron-to-chromium: 1.5.23 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) callsites@3.1.0: {} camelcase@2.1.1: {} - caniuse-lite@1.0.30001642: {} + caniuse-lite@1.0.30001660: {} chalk@2.4.2: dependencies: @@ -3769,7 +3461,7 @@ snapshots: conventional-commits-filter: 5.0.0 handlebars: 4.7.8 meow: 13.2.0 - semver: 7.6.2 + semver: 7.6.3 conventional-commits-filter@5.0.0: {} @@ -3783,14 +3475,14 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.5.3): + cosmiconfig@9.0.0(typescript@5.6.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.2 cross-spawn@7.0.3: dependencies: @@ -3802,31 +3494,13 @@ snapshots: dependencies: type-fest: 1.4.0 - data-view-buffer@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - - data-view-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - - data-view-byte-offset@1.0.0: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - debug@3.2.7: dependencies: ms: 2.1.3 - debug@4.3.5: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 decamelize@1.2.0: {} @@ -3838,18 +3512,6 @@ snapshots: deep-is@0.1.4: {} - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - delegates@1.0.0: {} dequal@2.0.3: {} @@ -3866,10 +3528,6 @@ snapshots: dependencies: path-type: 4.0.0 - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -3882,13 +3540,18 @@ snapshots: dependencies: readable-stream: 2.3.8 - electron-to-chromium@1.4.827: {} + electron-to-chromium@1.5.23: {} emoji-regex@8.0.0: {} emojilib@2.4.0: {} - env-ci@11.0.0: + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + env-ci@11.1.0: dependencies: execa: 8.0.1 java-properties: 1.0.2 @@ -3901,108 +3564,34 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.3: - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.2 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 - - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - - es-errors@1.3.0: {} - - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - - esbuild@0.21.5: + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.1.2: {} + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -4010,114 +3599,122 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-google@0.14.0(eslint@8.57.0): + eslint-config-google@0.14.0(eslint@9.10.0): dependencies: - eslint: 8.57.0 + eslint: 9.10.0 - eslint-config-prettier@9.1.0(eslint@8.57.0): + eslint-config-prettier@9.1.0(eslint@9.10.0): dependencies: - eslint: 8.57.0 + eslint: 9.10.0 eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.14.0 + is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-plugin-import-x@4.2.1(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0): dependencies: - debug: 3.2.7 + '@nolyfill/is-core-module': 1.0.39 + debug: 4.3.7 + enhanced-resolve: 5.17.1 + eslint: 9.10.0 + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-plugin-import-x@4.2.1(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0))(eslint@9.10.0) + fast-glob: 3.3.2 + get-tsconfig: 4.8.1 + is-bun-module: 1.2.1 + is-glob: 4.0.3 optionalDependencies: - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.3) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 + eslint-plugin-import-x: 4.2.1(eslint@9.10.0)(typescript@5.6.2) transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0): + eslint-module-utils@2.11.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-plugin-import-x@4.2.1(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0))(eslint@9.10.0): dependencies: - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 + optionalDependencies: + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + eslint: 9.10.0 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-plugin-import-x@4.2.1(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import-x@4.2.1(eslint@9.10.0)(typescript@5.6.2): + dependencies: + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + debug: 4.3.7 + doctrine: 3.0.0 + eslint: 9.10.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - hasown: 2.0.2 - is-core-module: 2.14.0 + get-tsconfig: 4.8.1 is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.3) + minimatch: 9.0.5 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.7.0 transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color + - typescript - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3): + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.10.0))(eslint@9.10.0)(prettier@3.3.3): dependencies: - eslint: 8.57.0 + eslint: 9.10.0 prettier: 3.3.3 prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 + synckit: 0.9.1 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@8.57.0) + '@types/eslint': 9.6.1 + eslint-config-prettier: 9.1.0(eslint@9.10.0) eslint-plugin-tsdoc@0.3.0: dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - eslint-scope@7.2.2: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint-visitor-keys@4.0.0: {} + + eslint@9.10.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.10.0 + '@eslint/plugin-kit': 0.1.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 - doctrine: 3.0.0 + debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 @@ -4127,11 +3724,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@9.6.1: + espree@10.1.0: dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.0.0 esprima@4.0.1: {} @@ -4171,17 +3768,17 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.3.0: + execa@9.3.1: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.3 figures: 6.1.0 get-stream: 9.0.1 - human-signals: 7.0.0 + human-signals: 8.0.0 is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 5.3.0 - pretty-ms: 9.0.0 + pretty-ms: 9.1.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 yoctocolors: 2.1.1 @@ -4196,7 +3793,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} @@ -4212,11 +3809,11 @@ snapshots: figures@6.1.0: dependencies: - is-unicode-supported: 2.0.0 + is-unicode-supported: 2.1.0 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 fill-range@7.1.1: dependencies: @@ -4238,18 +3835,13 @@ snapshots: semver-regex: 4.0.5 super-regex: 1.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flatted@3.3.1: {} - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 - from2@2.3.0: dependencies: inherits: 2.0.4 @@ -4267,8 +3859,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs.realpath@1.0.0: {} - fsevents@2.3.3: optional: true @@ -4276,15 +3866,6 @@ snapshots: function-timeout@1.0.2: {} - function.prototype.name@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - functions-have-names: 1.2.3 - - functions-have-names@1.2.3: {} - gauge@1.2.7: dependencies: ansi: 0.3.1 @@ -4297,14 +3878,6 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - get-stdin@9.0.0: {} get-stream@6.0.1: {} @@ -4318,13 +3891,7 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-symbol-description@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - - get-tsconfig@4.7.5: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -4355,40 +3922,17 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.0.1 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 + globals@15.9.0: {} globby@13.2.2: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 4.0.0 @@ -4396,7 +3940,7 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -4409,10 +3953,6 @@ snapshots: onetime: 1.1.0 yargs: 3.32.0 - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 - graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} @@ -4426,26 +3966,12 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.18.0 - - has-bigints@1.0.2: {} + uglify-js: 3.19.3 has-flag@3.0.0: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.0 - - has-proto@1.0.3: {} - - has-symbols@1.0.3: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.0.3 - has-unicode@2.0.1: {} hasown@2.0.2: @@ -4460,17 +3986,21 @@ snapshots: dependencies: lru-cache: 10.4.3 + hosted-git-info@8.0.0: + dependencies: + lru-cache: 10.4.3 + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -4478,9 +4008,9 @@ snapshots: human-signals@5.0.0: {} - human-signals@7.0.0: {} + human-signals@8.0.0: {} - ignore@5.3.1: {} + ignore@5.3.2: {} import-fresh@3.3.0: dependencies: @@ -4489,7 +4019,7 @@ snapshots: import-from-esm@1.3.4: dependencies: - debug: 4.3.5 + debug: 4.3.7 import-meta-resolve: 4.1.0 transitivePeerDependencies: - supports-color @@ -4515,12 +4045,6 @@ snapshots: ini@1.3.8: {} - internal-slot@1.0.7: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.6 - into-stream@7.0.0: dependencies: from2: 2.3.0 @@ -4528,36 +4052,16 @@ snapshots: invert-kv@1.0.0: {} - is-array-buffer@3.0.4: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-arrayish@0.2.1: {} - is-bigint@1.0.4: - dependencies: - has-bigints: 1.0.2 - - is-boolean-object@1.1.2: + is-bun-module@1.2.1: dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} + semver: 7.6.3 - is-core-module@2.14.0: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: - dependencies: - is-typed-array: 1.1.13 - - is-date-object@1.0.5: - dependencies: - has-tostringtag: 1.0.2 - is-extglob@2.1.1: {} is-fullwidth-code-point@1.0.0: @@ -4570,12 +4074,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-negative-zero@2.0.3: {} - - is-number-object@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - is-number@7.0.0: {} is-obj@2.0.0: {} @@ -4584,43 +4082,16 @@ snapshots: is-plain-obj@4.1.0: {} - is-regex@1.1.4: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - - is-shared-array-buffer@1.0.3: - dependencies: - call-bind: 1.0.7 - is-stream@2.0.1: {} is-stream@3.0.0: {} is-stream@4.0.1: {} - is-string@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - - is-symbol@1.0.4: - dependencies: - has-symbols: 1.0.3 - - is-typed-array@1.1.13: - dependencies: - which-typed-array: 1.1.15 - - is-unicode-supported@2.0.0: {} - - is-weakref@1.0.2: - dependencies: - call-bind: 1.0.7 + is-unicode-supported@2.1.0: {} isarray@1.0.0: {} - isarray@2.0.5: {} - isexe@2.0.0: {} issue-parser@7.0.1: @@ -4660,10 +4131,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} jsonfile@4.0.0: @@ -4747,14 +4214,14 @@ snapshots: cli-table3: 0.6.5 marked: 12.0.2 node-emoji: 2.1.3 - supports-hyperlinks: 3.0.0 + supports-hyperlinks: 3.1.0 marked@12.0.2: {} mdast-util-from-markdown@2.0.1: dependencies: '@types/mdast': 4.0.4 - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 decode-named-character-reference: 1.0.2 devlop: 1.1.0 mdast-util-to-string: 4.0.0 @@ -4892,7 +4359,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5 + debug: 4.3.7 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -4911,7 +4378,7 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 @@ -4938,8 +4405,6 @@ snapshots: mri@1.2.0: {} - ms@2.1.2: {} - ms@2.1.3: {} mvdan-sh@0.10.1: {} @@ -4963,12 +4428,12 @@ snapshots: emojilib: 2.4.0 skin-tone: 2.0.0 - node-releases@2.0.14: {} + node-releases@2.0.18: {} normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.6.2 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-url@8.0.1: {} @@ -4981,7 +4446,7 @@ snapshots: dependencies: path-key: 4.0.0 - npm@10.8.2: {} + npm@10.8.3: {} npmlog@1.2.1: dependencies: @@ -4995,36 +4460,6 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.2: {} - - object-keys@1.1.1: {} - - object.assign@4.1.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - - object.values@1.2.0: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -5104,7 +4539,7 @@ snapshots: dependencies: '@babel/code-frame': 7.24.7 index-to-position: 0.1.2 - type-fest: 4.21.0 + type-fest: 4.26.1 parse-ms@4.0.0: {} @@ -5132,7 +4567,7 @@ snapshots: path-type@5.0.0: {} - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -5145,8 +4580,6 @@ snapshots: find-up: 2.1.0 load-json-file: 4.0.0 - possible-typed-array-names@1.0.0: {} - prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.0: @@ -5162,10 +4595,10 @@ snapshots: transitivePeerDependencies: - supports-color - prettier-plugin-packagejson@2.5.0(prettier@3.3.3): + prettier-plugin-packagejson@2.5.2(prettier@3.3.3): dependencies: - sort-package-json: 2.10.0 - synckit: 0.9.0 + sort-package-json: 2.10.1 + synckit: 0.9.1 optionalDependencies: prettier: 3.3.3 @@ -5181,7 +4614,7 @@ snapshots: prettier@3.3.3: {} - pretty-ms@9.0.0: + pretty-ms@9.1.0: dependencies: parse-ms: 4.0.0 @@ -5189,12 +4622,12 @@ snapshots: dependencies: execa: 5.1.1 find-up: 5.0.0 - ignore: 5.3.1 + ignore: 5.3.2 mri: 1.2.0 - picocolors: 1.0.1 + picocolors: 1.1.0 picomatch: 3.0.1 prettier: 3.3.3 - tslib: 2.6.3 + tslib: 2.7.0 process-nextick-args@2.0.1: {} @@ -5215,14 +4648,14 @@ snapshots: dependencies: find-up-simple: 1.0.0 read-pkg: 9.0.1 - type-fest: 4.21.0 + type-fest: 4.26.1 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 8.1.0 - type-fest: 4.21.0 + type-fest: 4.26.1 unicorn-magic: 0.1.0 readable-stream@2.3.8: @@ -5235,16 +4668,9 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - regexp.prototype.flags@1.5.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 - registry-auth-token@5.0.2: dependencies: - '@pnpm/npm-conf': 2.2.2 + '@pnpm/npm-conf': 2.3.1 require-directory@2.1.1: {} @@ -5258,63 +4684,46 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.14.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 reusify@1.0.4: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - safe-array-concat@1.1.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - isarray: 2.0.5 - safe-buffer@5.1.2: {} - safe-regex-test@1.0.3: + semantic-release@24.1.1(typescript@5.6.2): dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-regex: 1.1.4 - - semantic-release@24.0.0(typescript@5.5.3): - dependencies: - '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.0.0(typescript@5.5.3)) + '@semantic-release/commit-analyzer': 13.0.0(semantic-release@24.1.1(typescript@5.6.2)) '@semantic-release/error': 4.0.0 - '@semantic-release/github': 10.1.0(semantic-release@24.0.0(typescript@5.5.3)) - '@semantic-release/npm': 12.0.1(semantic-release@24.0.0(typescript@5.5.3)) - '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.0.0(typescript@5.5.3)) + '@semantic-release/github': 10.3.4(semantic-release@24.1.1(typescript@5.6.2)) + '@semantic-release/npm': 12.0.1(semantic-release@24.1.1(typescript@5.6.2)) + '@semantic-release/release-notes-generator': 14.0.1(semantic-release@24.1.1(typescript@5.6.2)) aggregate-error: 5.0.0 - cosmiconfig: 9.0.0(typescript@5.5.3) - debug: 4.3.5 - env-ci: 11.0.0 - execa: 9.3.0 + cosmiconfig: 9.0.0(typescript@5.6.2) + debug: 4.3.7 + env-ci: 11.1.0 + execa: 9.3.1 figures: 6.1.0 find-versions: 6.0.0 get-stream: 6.0.1 git-log-parser: 1.2.1 hook-std: 3.0.0 - hosted-git-info: 7.0.2 + hosted-git-info: 8.0.0 import-from-esm: 1.3.4 lodash-es: 4.17.21 marked: 12.0.2 marked-terminal: 7.1.0(marked@12.0.2) - micromatch: 4.0.7 + micromatch: 4.0.8 p-each-series: 3.0.0 p-reduce: 3.0.0 read-package-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.3 semver-diff: 4.0.0 signale: 1.4.0 yargs: 17.7.2 @@ -5324,7 +4733,7 @@ snapshots: semver-diff@4.0.0: dependencies: - semver: 7.6.2 + semver: 7.6.3 semver-regex@4.0.5: {} @@ -5334,27 +4743,11 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.6.2: {} - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 + semver@7.6.3: {} sh-syntax@0.4.2: dependencies: - tslib: 2.6.3 + tslib: 2.7.0 shebang-command@2.0.0: dependencies: @@ -5362,13 +4755,6 @@ snapshots: shebang-regex@3.0.0: {} - side-channel@1.0.6: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 - signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -5383,15 +4769,13 @@ snapshots: dependencies: unicode-emoji-modifier-base: 1.0.0 - slash@3.0.0: {} - slash@4.0.0: {} slash@5.1.0: {} sort-object-keys@1.1.3: {} - sort-package-json@2.10.0: + sort-package-json@2.10.1: dependencies: detect-indent: 7.0.1 detect-newline: 4.0.1 @@ -5399,7 +4783,7 @@ snapshots: git-hooks-list: 3.1.0 globby: 13.2.2 is-plain-obj: 4.1.0 - semver: 7.6.2 + semver: 7.6.3 sort-object-keys: 1.1.3 source-map@0.6.1: {} @@ -5409,16 +4793,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.18: {} + spdx-license-ids@3.0.20: {} split2@1.0.0: dependencies: @@ -5426,6 +4810,8 @@ snapshots: sprintf-js@1.0.3: {} + stable-hash@0.0.4: {} + stream-combiner2@1.1.1: dependencies: duplexer2: 0.1.4 @@ -5445,25 +4831,6 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.trim@1.2.9: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - - string.prototype.trimend@1.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -5505,22 +4872,19 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@3.0.0: + supports-hyperlinks@3.1.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 supports-preserve-symlinks-flag@1.0.0: {} - synckit@0.8.8: + synckit@0.9.1: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.3 + tslib: 2.7.0 - synckit@0.9.0: - dependencies: - '@pkgr/core': 0.1.1 - tslib: 2.6.3 + tapable@2.2.1: {} temp-dir@3.0.0: {} @@ -5558,23 +4922,16 @@ snapshots: traverse@0.6.8: {} - ts-api-utils@1.3.0(typescript@5.5.3): + ts-api-utils@1.3.0(typescript@5.6.2): dependencies: - typescript: 5.5.3 + typescript: 5.6.2 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 + tslib@2.7.0: {} - tslib@2.6.3: {} - - tsx@4.16.2: + tsx@4.19.1: dependencies: - esbuild: 0.21.5 - get-tsconfig: 4.7.5 + esbuild: 0.23.1 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -5582,63 +4939,33 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - type-fest@1.4.0: {} type-fest@2.19.0: {} - type-fest@4.21.0: {} + type-fest@4.26.1: {} - typed-array-buffer@1.0.2: + typescript-eslint@8.5.0(eslint@9.10.0)(typescript@5.6.2): dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-typed-array: 1.1.13 - - typed-array-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - - typed-array-byte-offset@1.0.2: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - - typed-array-length@1.0.6: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 + '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint + - supports-color typescript@5.4.2: {} - typescript@5.5.3: {} + typescript@5.6.2: {} - uglify-js@3.18.0: + uglify-js@3.19.3: optional: true - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - - undici-types@5.26.5: {} + undici-types@6.19.8: {} - undici@6.19.2: {} + undici@6.19.8: {} unicode-emoji-modifier-base@1.0.0: {} @@ -5650,7 +4977,7 @@ snapshots: unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 3.0.2 + '@types/unist': 3.0.3 universal-user-agent@7.0.2: {} @@ -5658,11 +4985,11 @@ snapshots: universalify@2.0.1: {} - update-browserslist-db@1.1.0(browserslist@4.23.2): + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 uri-js@4.4.1: dependencies: @@ -5677,22 +5004,6 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - which-boxed-primitive@1.0.2: - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - - which-typed-array@1.1.15: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -5733,7 +5044,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -5743,7 +5054,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/src/client/broker/broker-client.ts b/src/client/broker/broker-client.ts index b453699..c355cf1 100644 --- a/src/client/broker/broker-client.ts +++ b/src/client/broker/broker-client.ts @@ -11,6 +11,11 @@ import { type IQueryResult, } from './types'; +/** + * Pinot DB client. + * + * @public + */ export class PinotClient implements IPinotClient { constructor( protected readonly deps: { @@ -18,8 +23,22 @@ export class PinotClient implements IPinotClient { }, ) {} + /** + * Standard pinot sql endpoint + * + * @private + */ private static ENDPOINTS = { sql: '/query/sql' }; + /** + * Converts and serializes query options to pinot supported fromat + * + * @public + * @static + * + * @param options - Query options + * @returns Seriialized options + */ public static toQueryOptions( options?: IPinotQueryOptions, ): string | undefined { @@ -32,10 +51,22 @@ export class PinotClient implements IPinotClient { : undefined; } + /** + * Transport stats. + */ public get transportStats(): IPinotPoolStats { return this.deps.transport.stats; } + /** + * Execute pinot sql query + * + * @public + * @param query - Sql query body + * @param options - Query options + * @param trace - Pass trace parameter to pinot + * @returns Result rows with stats + */ public async select( query: Sql, options?: IPinotQueryOptions, diff --git a/src/client/broker/transport/json/undici.ts b/src/client/broker/transport/json/undici.ts index 9dcce19..d04dd48 100644 --- a/src/client/broker/transport/json/undici.ts +++ b/src/client/broker/transport/json/undici.ts @@ -8,6 +8,11 @@ import { type IPinotBrokerTransport, } from '../types'; +/** + * Pinot broker JSON transport based on "undici" http client. + * + * @public + */ export class PinotBrokerJSONTransport implements IPinotBrokerTransport { protected readonly pool: Pool; protected readonly token: string; @@ -29,6 +34,14 @@ export class PinotBrokerJSONTransport implements IPinotBrokerTransport { this.token = token; } + /** + * Perform HTTP request to pinot + * + * @public + * @param param0 - Request options + * @returns Pinot response + */ + async request({ method = 'POST', headers, @@ -64,8 +77,9 @@ export class PinotBrokerJSONTransport implements IPinotBrokerTransport { let body: string | undefined; try { body = await response.body.text(); - } catch (error) { - // do nothing + } catch { + // failed to parse body + body = undefined; } throw new PinotError({ @@ -103,10 +117,16 @@ export class PinotBrokerJSONTransport implements IPinotBrokerTransport { } } + /** + * Closes connection to pinot broker + */ async close(): Promise { return this.pool.close(); } + /** + * HTTP pool statitstics + */ get stats(): IPinotPoolStats { return this.pool.stats; } diff --git a/src/client/broker/transport/types.ts b/src/client/broker/transport/types.ts index ffae80b..7422383 100644 --- a/src/client/broker/transport/types.ts +++ b/src/client/broker/transport/types.ts @@ -1,25 +1,64 @@ import { Dispatcher } from 'undici'; import { IPinotPoolStats } from '../types'; +/** + * Pinot broker transport config options + * + * @public + */ export interface IBrokerTransportConfig { + /** + * Broker URL + */ brokerUrl: URL | string; + /** + * Pinot API access token + */ token: string; + /** + * The timeout after which a request will time out, in milliseconds + */ bodyTimeout?: number; + /** + * Connection keep-alive timeout + */ keepAliveTimeout?: number; /** * Max pool connections. `undefined` = unlimited. + * * @defaultValue undefined (unlimited) */ connections?: number; + /** + * The maximum allowed `keepAliveTimeout` + */ keepAliveMaxTimeout?: number; } +/** + * Pinot broker HTTP request options + * + * @public + */ export interface IBrokerTransportRequestOptions extends Pick< Dispatcher.RequestOptions, 'method' | 'headers' | 'path' | 'body' | 'query' > {} + +/** + * Pinot broker transport interface. Implement it create your own. + * + * @public + */ export interface IPinotBrokerTransport { + /** + * Perform HTTP request to pinot + * + * @public + * @param param0 - Request options + * @returns Pinot response + */ request({ method, headers, @@ -27,11 +66,26 @@ export interface IPinotBrokerTransport { body, query, }: IBrokerTransportRequestOptions): Promise; + /** + * Closes connection to pinot broker + */ close(): Promise; + /** + * Pool statitstics (number of in-flight requests and so on) + */ stats: IPinotPoolStats; } +/** + * Broker error codes + */ export const enum EBrokerTransportErrorCode { + /** + * Unknown code + */ UNKNOWN, + /** + * Invalid response from pinot + */ INVALID_RESPONSE, } diff --git a/src/client/broker/types.ts b/src/client/broker/types.ts index 3cd6e5f..a587760 100644 --- a/src/client/broker/types.ts +++ b/src/client/broker/types.ts @@ -1,25 +1,70 @@ import type PoolStats from 'undici/types/pool-stats'; import type { Sql } from '../../utils/tag'; +/** + * Pinot transport pool statistics + * + * @public + */ export interface IPinotPoolStats extends PoolStats { // } +/** + * Response data schema + * + * @public + */ + export interface IResponseSchema { + /** + * Type for each column. Can be used for proper data parsing. + */ columnDataTypes: string[]; + /** + * Result column names + **/ columnNames: string[]; } +/** + * Pinot result table + * + * @public + */ export interface IResultTable { + /** + * Schema that describes the schema of the response + */ dataSchema: IResponseSchema; + /** + * Actual content with values. + * This is an array of arrays. + * The number of rows depends on the limit value in the query. + * The number of columns in each row is equal to the length of resultTable.dataSchema.columnNames + */ rows: (number | string)[][]; } +/** + * Pinot exception + * + * @public + */ export interface IPinoException { + /** + * Pinot error code + */ errorCode: number; + /** + * Error message + */ message: string; } +/** + * Available Pinot data types + */ export type TPinotDataType = | 'INT' | 'LONG' @@ -32,19 +77,62 @@ export type TPinotDataType = | 'JSON' | 'BYTES'; +/** + * Pinot broker response + * + * @public + * @see {@link https://docs.pinot.apache.org/users/api/querying-pinot-using-standard-sql/response-format | pinot response format docs} for detailed description + */ export interface IBrokerResponse { + /** + * Result table + */ resultTable: IResultTable; /** + * Query exceptions. * Will contain the stack trace if there is any exception processing the query. */ exceptions?: IPinoException[]; + /** + * Query trace, if the query was executed with `trace` + */ traceInfo: Record; + /** + * Represents the number of servers queried by the broker (may be less than the total number of servers since the broker can apply some optimizations to minimize the number of servers). + */ numServersQueries: number; + /** + * This should be equal to the numServersQueried. If this is not the same, then one of more servers might have timed out. + * If numServersQueried != numServersResponded, the results can be considered partial and clients can retry the query with exponential back off. + */ numServersResponded: number; + /** + * The total number of segmentsQueried for a query. + * May be less than the total number of segments if the broker applies optimizations. + * + * The broker decides how many segments to query on each server, based on broker pruning logic. + * The server decides how many of these segments to actually look at, based on server pruning logic. + * After processing segments for a query, fewer may have the matching records. + * + * In general, `numSegmentsQueried >= numSegmentsProcessed >= numSegmentsMatched`. + */ numSegmentsQueried: number; + /** + * The number of segment operators used to process segments. + * Indicates the effectiveness of the pruning logic. For more information, see + * + * @see {@link https://docs.pinot.apache.org/users/user-guide-query/query-syntax/explain-plan | Single-stage query engine} for more info + * @see {@link https://docs.pinot.apache.org/users/user-guide-query/query-syntax/explain-plan-multi-stage | Multi-stage query engine} for more info + */ numSegmentsProcessed: number; + /** + * The number of segments processed with at least one document matched in the query response. + */ numSegmentsMatched: number; numConsumingSegmentsQueried: number; + /** + * Total number of docs scanned + */ numDocsScanned: number; /** @@ -61,28 +149,52 @@ export interface IBrokerResponse { * The default value for numGroupsLimit is 100k, and should be sufficient for most use cases. */ numGroupsLimitReached: boolean; + /** + * Number of documents/records in the table. + */ totalDocs: number; + /** + * Total time taken as seen by the broker before sending the response back to the client. + */ timeUsedMs: number; minConsumingFreshnessTimeMs: number; } +/** + * Pinot query statistics. + * Just converted and categorized pinot response stats + */ export interface IQueryStats { + /** + * Tracing info + */ traceInfo: Record; - + /** + * Segment stats + */ segments: { queried: number; processed: number; matched: number; }; + /** + * Server stats + */ server: { queries: number; responded: number; }; + /** + * Docs stats + */ docs: { scanned: number; returned: number; total: number; }; + /** + * Query time in ms + */ totalTimeMs: number; minConsumingFreshnessTimeMs: number; @@ -91,18 +203,44 @@ export interface IQueryStats { numGroupsLimitReached: boolean; } +/** + * Query result + */ export interface IQueryResult { + /** + * Data rows + */ rows: TRows; + /** + * Query stats + */ stats: IQueryStats; + /** + * Compiled SQL query + */ sql: string; + /** + * Query options + */ queryOptions?: string | undefined; } // TODO: add some codes +/** + * Broker error codes + */ export const enum EBrokerErrorCode { + /** + * Unknown + */ UNKNOWN, } +/** + * Query options + * + * @see {@link https://docs.pinot.apache.org/users/user-guide-query/query-options | Pinot query options} for actual info + */ export interface IPinotQueryOptions { /** Timeout of the query in milliseconds. */ timeoutMs?: number; @@ -159,11 +297,27 @@ export interface IPinotQueryOptions { maxQueryResponseSizeBytes?: number; } +/** + * Pinot client interface. + */ export interface IPinotClient { + /** + * Execute pinot sql query + * + * @public + * @param query Sql query body + * @param options Query options + * @param trace Pass trace parameter to pinot + * @returns Result rows with stats + */ select( query: Sql, options?: IPinotQueryOptions, trace?: boolean, ): Promise>; + + /** + * Transport stats. + */ transportStats: IPinotPoolStats; } diff --git a/src/client/errors/pinot.ts b/src/client/errors/pinot.ts index 3774377..0fd8366 100644 --- a/src/client/errors/pinot.ts +++ b/src/client/errors/pinot.ts @@ -1,3 +1,6 @@ +/** + * Pinot error types + */ export enum EPinotErrorType { UNKNOWN, TRANSPORT, @@ -5,6 +8,9 @@ export enum EPinotErrorType { PARSE, } +/** + * Pinot error codes + */ export enum ERROR_CODES { JSON_PARSING_ERROR_CODE = 100, JSON_COMPILATION_ERROR_CODE = 101, @@ -50,8 +56,17 @@ export interface IPinotErrorConstructorArgs> { data?: TData; } +/** + * Apache Pinot exception + */ export interface IPinotSqlException { + /** + * Error message + */ message: string; + /** + * Error code + */ errorCode: number; } @@ -74,7 +89,9 @@ export class PinotError> extends Error { this.type = type; this.code = type * 1000 + - (exceptions?.length === 1 && !code ? exceptions[0]!.errorCode : code); + (exceptions?.length === 1 && exceptions[0] && !code + ? exceptions[0].errorCode + : code); this.cause = cause; this.exceptions = exceptions; this.data = data; diff --git a/src/utils/format.ts b/src/utils/format.ts index e5b3f00..afb7656 100644 --- a/src/utils/format.ts +++ b/src/utils/format.ts @@ -3,7 +3,7 @@ export class SqlFormat { private static QUAL_GLOBAL_REGEXP = /\./g; // eslint-disable-next-line no-control-regex private static CHARS_GLOBAL_REGEXP = /[\0\b\t\n\r\x1a"'\\]/g; - private static CHARS_ESCAPE_MAP: { [key: string]: string } = { + private static CHARS_ESCAPE_MAP: Record = { '\0': '\\0', '\b': '\\b', '\t': '\\t', @@ -56,7 +56,7 @@ export class SqlFormat { return SqlFormat.escapeString(val.toString()); } else { return SqlFormat.objectToValues( - val as { [key: string]: unknown }, + val as Record, timeZone, ); } @@ -181,7 +181,7 @@ export class SqlFormat { } static objectToValues( - object: { [key: string]: unknown }, + object: Record, timeZone?: string, ): string { return Object.keys(object) @@ -243,7 +243,7 @@ export class SqlFormat { const match = tz.match(/([+\-\s])(\d{2}):?(\d{2})?/); if (match) { const sign = match[1] === '-' ? -1 : 1; - const hours = parseInt(match[2]!, 10); + const hours = parseInt(match[2] ?? '0', 10); const minutes = match[3] ? parseInt(match[3], 10) : 0; return sign * (hours + minutes / 60) * 60; } diff --git a/src/utils/sql-utils.ts b/src/utils/sql-utils.ts index 65db7cf..2a8f896 100644 --- a/src/utils/sql-utils.ts +++ b/src/utils/sql-utils.ts @@ -2,7 +2,18 @@ import { Sql } from '@no-esm/sql-template-tag'; import { IPinotQueryOptions } from '../client/clients'; import { SqlFormat } from './format'; +/** + * Sql utils class. + * + * @public + */ export class SqlUtils { + /** + * Format pinot options to make them embeddable into query. + * + * @param options - Pinot query options + * @returns Serialized options + */ static formatOptions(options?: IPinotQueryOptions): string { if (!options) { return ''; @@ -23,6 +34,14 @@ export class SqlUtils { .join('\n'); } + /** + * Compile and transform sql query with options into string. + * Might be helpful for logging and copy-paste debugging. + * + * @param query - Pinot sql query + * @param options - Pinot query options + * @returns Serialized query string + */ static stringifyQuery(query: Sql, options?: IPinotQueryOptions) { const sql = SqlFormat.format(query.sql, query.values); diff --git a/src/utils/tag.ts b/src/utils/tag.ts index c404c32..dbfa7df 100644 --- a/src/utils/tag.ts +++ b/src/utils/tag.ts @@ -8,6 +8,14 @@ export { type RawValue, type Sql, } from '@no-esm/sql-template-tag'; + +/** + * SQL template tag + * + * @param strings - sql template + * @param values - template values + * @returns SQL statement + */ export const sql = ( strings: readonly string[], ...values: readonly RawValue[] diff --git a/tsdoc.json b/tsdoc.json new file mode 100644 index 0000000..3d4a09e --- /dev/null +++ b/tsdoc.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", + "tagDefinitions": [ + { + "syntaxKind": "block", + "tagName": "@description" + }, + { + "syntaxKind": "modifier", + "tagName": "@implements" + }, + { + "syntaxKind": "modifier", + "tagName": "@private" + }, + { + "syntaxKind": "modifier", + "tagName": "@static" + } + ] +}