diff --git a/asset/asset.json b/asset/asset.json index 8f549560..048c0161 100644 --- a/asset/asset.json +++ b/asset/asset.json @@ -1,5 +1,5 @@ { "name": "elasticsearch", - "version": "4.1.0", + "version": "4.2.0", "minimum_teraslice_version": "2.0.0" } diff --git a/asset/package.json b/asset/package.json index 6ced5e53..7c765c83 100644 --- a/asset/package.json +++ b/asset/package.json @@ -1,7 +1,7 @@ { "name": "asset", "displayName": "Asset", - "version": "4.1.0", + "version": "4.2.0", "private": true, "description": "", "license": "MIT", @@ -20,7 +20,7 @@ "dependencies": { "@terascope/data-mate": "~1.7.4", "@terascope/elasticsearch-api": "~4.8.1", - "@terascope/elasticsearch-asset-apis": "~1.1.0", + "@terascope/elasticsearch-asset-apis": "~1.2.0", "@terascope/job-components": "~1.9.3", "@terascope/teraslice-state-storage": "~1.8.1", "@terascope/utils": "~1.7.3", diff --git a/asset/src/__lib/ReaderAPIFetcher.ts b/asset/src/__lib/ReaderAPIFetcher.ts index bad023ef..4cb04a4a 100644 --- a/asset/src/__lib/ReaderAPIFetcher.ts +++ b/asset/src/__lib/ReaderAPIFetcher.ts @@ -14,6 +14,7 @@ export class ReaderAPIFetcher extends Fetcher { await super.initialize(); const { context, api, opConfig } = this; + if (isPromAvailable(context)) { await this.context.apis.foundation.promMetrics.addGauge( 'elasticsearch_records_read', diff --git a/asset/src/elasticsearch_bulk/interfaces.ts b/asset/src/elasticsearch_bulk/interfaces.ts index 28721e17..3e52bb09 100644 --- a/asset/src/elasticsearch_bulk/interfaces.ts +++ b/asset/src/elasticsearch_bulk/interfaces.ts @@ -1,7 +1,7 @@ import { OpConfig } from '@terascope/job-components'; import { ElasticsearchAPISenderConfig } from '../elasticsearch_sender_api/interfaces.js'; -export interface ElasticsearchBulkConfig extends ElasticsearchAPISenderConfig, OpConfig { +export interface ElasticsearchBulkConfig extends ElasticsearchAPISenderConfig, Omit { api_name: string; connection: string; } diff --git a/asset/src/elasticsearch_reader_api/schema.ts b/asset/src/elasticsearch_reader_api/schema.ts index fbab3f03..04535b73 100644 --- a/asset/src/elasticsearch_reader_api/schema.ts +++ b/asset/src/elasticsearch_reader_api/schema.ts @@ -240,6 +240,16 @@ export const schema = { doc: 'Use the original fetch algorithm, that sets query size to windowSize without extra retry logic', default: false, format: Boolean + }, + total_optimization: { + doc: 'Setting to true will disable tracking total hits for fetches, and only track up to the config size for counts, but will track totals if recurse_optimization is set to true for slicers.', + default: false, + format: Boolean + }, + recurse_optimization: { + doc: 'Setting to true will change the recursive behavior of slicers to better match ratios of counts and size instead of just splitting in half or into individual keys', + default: false, + format: Boolean } }; diff --git a/asset/src/id_reader/slicer.ts b/asset/src/id_reader/slicer.ts index 3d90d6ee..dc3b6495 100644 --- a/asset/src/id_reader/slicer.ts +++ b/asset/src/id_reader/slicer.ts @@ -20,6 +20,7 @@ export default class ESIDSlicer extends ParallelSlicer { this.api = await apiManager.create(apiName, {}); const apiConfig = apiManager.getConfig(apiName); + if (!apiConfig) throw new Error(`Could not find api config for api_name ${apiName}`); this.config = apiConfig; @@ -30,6 +31,7 @@ export default class ESIDSlicer extends ParallelSlicer { this.slicerRanges = await this.api.makeIDSlicerRanges({ numOfSlicers: this.executionConfig.slicers, }); + await super.initialize(recoveryData); } diff --git a/asset/src/spaces_reader_api/schema.ts b/asset/src/spaces_reader_api/schema.ts index c40134ee..8e0e6848 100644 --- a/asset/src/spaces_reader_api/schema.ts +++ b/asset/src/spaces_reader_api/schema.ts @@ -44,16 +44,15 @@ const apiSchema = { default: undefined, format: String }, - includeTotals: { - doc: 'By default, data fetching is optimized by disabling total count calculation to achieve ' - + 'faster query execution. If you require total counts in your queries set this value to true ' - + `Some endpoints support setting to a fixed integer to limit the count up to that number then ` - + `stop... set to 'number' to count up to the query or slice size then stop. `, + total_optimization: { + doc: 'Setting to true will optimize tracking total hits by turning off for fetches, and only track up to the config size for counts.', + default: true, + format: Boolean + }, + recurse_optimization: { + doc: 'Setting to true will change the recursive behavior of slicers to better match ratios of counts and size instead of just splitting in half or into individual keys', default: false, - format(val: unknown) { - if (val === 'number' || typeof val !== 'number') return; - throw new Error(`Invalid parameter includeTotals, must be a boolean or string 'number', got ${getTypeOf(val)}`); - } + format: Boolean } }; diff --git a/package.json b/package.json index 2c4d76d0..085f2758 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "elasticsearch-assets", "displayName": "Elasticsearch Assets", - "version": "4.1.0", + "version": "4.2.0", "private": true, "description": "bundle of processors for teraslice", "homepage": "https://github.com/terascope/elasticsearch-assets#readme", @@ -46,7 +46,7 @@ "devDependencies": { "@terascope/data-types": "~1.7.3", "@terascope/elasticsearch-api": "~4.8.1", - "@terascope/elasticsearch-asset-apis": "~1.1.0", + "@terascope/elasticsearch-asset-apis": "~1.2.0", "@terascope/eslint-config": "~1.1.5", "@terascope/job-components": "~1.9.3", "@terascope/scripts": "~1.10.0", diff --git a/packages/elasticsearch-asset-apis/package.json b/packages/elasticsearch-asset-apis/package.json index 69a9c97f..fb0e2c69 100644 --- a/packages/elasticsearch-asset-apis/package.json +++ b/packages/elasticsearch-asset-apis/package.json @@ -1,7 +1,7 @@ { "name": "@terascope/elasticsearch-asset-apis", "displayName": "Elasticsearch Asset Apis", - "version": "1.1.0", + "version": "1.2.0", "description": "Elasticsearch reader and sender apis", "homepage": "https://github.com/terascope/elasticsearch-assets", "repository": "git@github.com:terascope/elasticsearch-assets.git", diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/ElasticsearchReaderAPI.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/ElasticsearchReaderAPI.ts index 44ea5b58..d4455184 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/ElasticsearchReaderAPI.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/ElasticsearchReaderAPI.ts @@ -20,6 +20,7 @@ import { dateOptions, processInterval, dateFormat, dateFormatSeconds, parseDate, delayedStreamSegment, determineIDSlicerRanges, determineDateSlicerRanges, + idSlicerOptimized } from './algorithms/index.js'; import { ESReaderOptions, DateSegments, InputDateSegments, @@ -82,6 +83,7 @@ export class ElasticsearchReaderAPI { async count(queryParams: ReaderSlice = {}): Promise { const query = buildQuery(this.config, { ...queryParams, count: 0 }); + // TODO: change this to search probably return this.client.count(query as any); } @@ -407,7 +409,8 @@ export class ElasticsearchReaderAPI { baseKeyArray, startingKeyDepth: this.config.starting_key_depth, countFn: this.count, - size + size, + keyType: this.config.key_type }; if (recoveryData && recoveryData.length > 0) { @@ -426,6 +429,10 @@ export class ElasticsearchReaderAPI { slicerConfig.retryData = parsedRetry[slicerID]; } + if (this.config.recurse_optimization) { + return idSlicerOptimized(slicerConfig); + } + return idSlicer(slicerConfig); } @@ -595,7 +602,8 @@ export class ElasticsearchReaderAPI { subslice_key_threshold: subsliceKeyThreshold, key_type: keyType, id_field_name: idFieldName, - starting_key_depth: startingKeyDepth + starting_key_depth: startingKeyDepth, + recurse_optimization = false } = this.config; if (!this.windowSize) await this.setWindowSize(); @@ -613,7 +621,8 @@ export class ElasticsearchReaderAPI { subsliceKeyThreshold, keyType, idFieldName, - startingKeyDepth + startingKeyDepth, + recurse_optimization }; if (isPersistent) { @@ -668,7 +677,7 @@ export class ElasticsearchReaderAPI { if (date) return parseDate(date); // we are in auto, so we determine each part - const query: AnyObject = { + const query: ClientParams.SearchParams = { index: this.config.index, size: 1, body: { @@ -677,7 +686,8 @@ export class ElasticsearchReaderAPI { order: order === 'start' ? 'asc' : 'desc' } }] - } + }, + track_total_hits: false }; if (this.config.query) { diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/SpacesReaderClient.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/SpacesReaderClient.ts index 27b9032a..599c3fb5 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/SpacesReaderClient.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/SpacesReaderClient.ts @@ -2,7 +2,7 @@ import tls from 'tls'; import { Logger, TSError, get, isNil, AnyObject, withoutNil, DataEntity, - isBoolean, isKey, + isKey, } from '@terascope/utils'; import { ClientParams, ClientResponse } from '@terascope/types'; import { DataTypeConfig } from '@terascope/data-types'; @@ -148,7 +148,7 @@ export class SpacesReaderClient implements ReaderClient { const fieldsQuery = fields ? { fields: fields.join(',') } : {}; const mustQuery = get(queryConfig, 'body.query.bool.must', null); - function parseQueryConfig(mustArray: null | any[], trackTotalHits?: any): AnyObject { + function parseQueryConfig(mustArray: null | any[]): AnyObject { const queryOptions: Record string> = { query_string: _parseEsQ, range: _parseDate, @@ -194,7 +194,7 @@ export class SpacesReaderClient implements ReaderClient { token: config.token, q: luceneQuery, size, - track_total_hits: trackTotalHits + track_total_hits: queryConfig.track_total_hits }); } @@ -258,20 +258,7 @@ export class SpacesReaderClient implements ReaderClient { return `(${terms.join(' OR ')})`; } - let trackTotalHits: boolean | number = false; - - if (isBoolean(config.includeTotals)) { - trackTotalHits = config.includeTotals; - } - if (config.includeTotals === 'number') { - trackTotalHits = size + 1; - } - if (size === 0) { - // in case client uses a search API instead of count API - trackTotalHits = true; - } - - return parseQueryConfig(mustQuery, trackTotalHits); + return parseQueryConfig(mustQuery); } async getDataType(): Promise { @@ -279,7 +266,8 @@ export class SpacesReaderClient implements ReaderClient { token: this.config.token, q: '_exists_:_key', size: 0, - include_type_config: true + include_type_config: true, + track_total_hits: false }; const spaceResults = await this.makeRequest(query); diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/date-helpers.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/date-helpers.ts index e332b32a..69db9dff 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/date-helpers.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/date-helpers.ts @@ -466,3 +466,25 @@ export async function determineDateSlicerRanges( determineDateSlicerRange(config, id) ))); } + +export function splitTime( + start: moment.Moment, + end: moment.Moment, + limit: moment.Moment, + timeResolution: string, + ratio: number +) { + let diff = Math.floor(end.diff(start) * ratio); + + if (moment.utc(start).add(diff, 'ms') + .isAfter(limit)) { + diff = moment.utc(limit).diff(start); + } + + if (timeResolution === 'ms') { + return diff; + } + + const secondDiff = Math.floor(diff / 1000); + return secondDiff; +} diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/dateSlicer.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/dateSlicer.ts index 9a55f38b..229ae725 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/dateSlicer.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/dateSlicer.ts @@ -23,6 +23,7 @@ import { dateFormatSeconds, dateOptions, determineDateSlicerRange, + splitTime } from './date-helpers.js'; import { getKeyArray } from './id-helpers.js'; @@ -36,27 +37,6 @@ interface DateParams { size: number; } -function splitTime( - start: moment.Moment, - end: moment.Moment, - limit: moment.Moment, - timeResolution: string -) { - let diff = Math.floor(end.diff(start) / 2); - - if (moment.utc(start).add(diff, 'ms') - .isAfter(limit)) { - diff = moment.utc(limit).diff(start); - } - - if (timeResolution === 'ms') { - return diff; - } - - const secondDiff = Math.floor(diff / 1000); - return secondDiff; -} - export function dateSlicer(args: SlicerArgs): () => Promise { const { events, @@ -75,7 +55,8 @@ export function dateSlicer(args: SlicerArgs): () => Promise { subsliceKeyThreshold, idFieldName = null, startingKeyDepth = 0, - keyType = IDType.base64url + keyType = IDType.base64url, + recurse_optimization } = args; if (!args.interval) { @@ -123,12 +104,16 @@ export function dateSlicer(args: SlicerArgs): () => Promise { } if (count > size) { + // old way splits in half, new way create a ratio to try to get closer + // and minimize the amount of slicing + const ratio = recurse_optimization ? size / count : 0.5; + // if size is to big after increasing slice, use alternative division behavior if (isExpandedSlice) { // recurse down to the appropriate size const newStart = moment.utc(dateParams.prevEnd); // get diff from new start - const diff = splitTime(newStart, end, limit, timeResolution); + const diff = splitTime(newStart, end, limit, timeResolution, ratio); const newEnd = moment.utc(newStart).add(diff, timeResolution); if (!newEnd.isValid()) { @@ -159,7 +144,7 @@ export function dateSlicer(args: SlicerArgs): () => Promise { } // find difference in milliseconds and divide in half - const diff = splitTime(start, end, limit, timeResolution); + const diff = splitTime(start, end, limit, timeResolution, ratio); const newEnd = moment.utc(start).add(diff, timeResolution); // prevent recursive call if difference is one millisecond if (diff <= 0) { @@ -188,6 +173,7 @@ export function dateSlicer(args: SlicerArgs): () => Promise { dateParams.prevEnd = moment.utc(end); let newEnd = moment.utc(dateParams.end).add(step, unit); + if (newEnd.isSameOrAfter(dateParams.limit)) { // set to limit makeLimitQuery = true; @@ -261,7 +247,8 @@ export function dateSlicer(args: SlicerArgs): () => Promise { baseKeyArray: keyArray, countFn, size: querySize, - startingKeyDepth + startingKeyDepth, + keyType }; const idSlicers = idSlicer(idSlicerArs); diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/id-helpers.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/id-helpers.ts index 411ed505..6f9660c3 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/id-helpers.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/id-helpers.ts @@ -6,77 +6,26 @@ import { ReaderSlice } from '../interfaces.js'; -export const base64url = Object.freeze(['a', +const lowerCaseHexChars = Object.freeze([ + 'a', 'b', 'c', 'd', 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'm', - 'n', - 'o', - 'p', - 'q', - 'r', - 's', - 't', - 'u', - 'v', - 'w', - 'x', - 'y', - 'z', + 'f' +]); + +const upperCaseHexChars = Object.freeze([ 'A', 'B', 'C', 'D', 'E', - 'F', - 'G', - 'H', - 'I', - 'J', - 'K', - 'L', - 'M', - 'N', - 'O', - 'P', - 'Q', - 'R', - 'S', - 'T', - 'U', - 'V', - 'W', - 'X', - 'Y', - 'Z', - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - '\-', - '_']); + 'F' +]); -export const base64 = Object.freeze(['a', - 'b', - 'c', - 'd', - 'e', - 'f', +const lowerCaseChars = Object.freeze([ + ...lowerCaseHexChars, 'g', 'h', 'i', @@ -97,12 +46,10 @@ export const base64 = Object.freeze(['a', 'x', 'y', 'z', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F', +]); + +const upperCaseChars = Object.freeze([ + ...upperCaseHexChars, 'G', 'H', 'I', @@ -123,6 +70,9 @@ export const base64 = Object.freeze(['a', 'X', 'Y', 'Z', +]); + +const numerics = Object.freeze([ '0', '1', '2', @@ -133,14 +83,188 @@ export const base64 = Object.freeze(['a', '7', '8', '9', +]); + +const base64URLSpecialChars = Object.freeze([ '\-', - '_', + '_' +]); + +const base64SpecialChars = Object.freeze([ + ...base64URLSpecialChars, '+', - '/']); + '/' +]); + +export const base64url = Object.freeze([ + ...lowerCaseChars, + ...upperCaseChars, + ...numerics, + ...base64URLSpecialChars +]); + +export const base64 = Object.freeze([ + ...lowerCaseChars, + ...upperCaseChars, + ...numerics, + ...base64SpecialChars +]); + +export const hexadecimal = Object.freeze([ + ...numerics, + ...lowerCaseHexChars +]); + +export const HEXADECIMAL = Object.freeze([ + ...numerics, + ...upperCaseHexChars +]); + +export class SplitKeyTracker { + private ind = 0; + private keyList: (string | number)[][] = []; + private totalKeys: number; + + constructor( + type: keyof typeof IDType, + ) { + if (type === IDType.base64url) { + const specialChars = [...base64URLSpecialChars].reverse(); + // @ts-expect-error + specialChars.__uniqueChars = true; + + this.keyList.push( + [...lowerCaseChars].reverse(), + [...upperCaseChars].reverse(), + [...numerics].reverse(), + specialChars, + ); + this.totalKeys = base64url.length; + } else if (type === IDType.base64) { + const specialChars = [...base64SpecialChars].reverse(); + // @ts-expect-error + specialChars.__uniqueChars = true; + this.keyList.push( + [...lowerCaseChars].reverse(), + [...upperCaseChars].reverse(), + [...numerics].reverse(), + specialChars, + ); + this.totalKeys = base64.length; + } else if (type === IDType.hexadecimal) { + this.keyList.push( + [...numerics].reverse(), + [...lowerCaseHexChars].reverse(), + ); + this.totalKeys = hexadecimal.length; + } else if (type === IDType.HEXADECIMAL) { + this.keyList.push( + [...numerics].reverse(), + [...upperCaseHexChars].reverse(), + ); + this.totalKeys = HEXADECIMAL.length; + } else { + throw new Error(`Unsupported key type ${type}`); + } + } + + forward(str: string) { + const char = str[0]; + if (!base64.includes(char)) { + throw new Error(`Input ${str} does not contain valid characters`); + } + + for (let list of this.keyList) { + const keyFound = list.includes(char); + + if (keyFound) { + let correctSpot = false; + + while (!correctSpot) { + const key = list.pop(); + this.ind += 1; + // we found it, put it back in for next slice + if (key === char) { + correctSpot = true; + list.push(key); + this.ind -= 1; + } + } + } else { + // we empty out and move the marker + this.ind += list.length; + list = []; + } + } + } + + split(size: number): string { + if (size <= 0) { + throw new Error('Cannot take a negative number or a zero'); + } + + let results = ''; + let keysToTake = Math.min(size, this.totalKeys - this.ind); + + // we are all done already + if (this.ind >= this.totalKeys) return results; -export const hexadecimal = Object.freeze(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']); + while (keysToTake > 0) { + for (const list of this.keyList) { + if (list.length > 0) { + const numInList = keysToTake < list.length ? keysToTake : list.length; + const firstChar = list.pop(); -export const HEXADECIMAL = Object.freeze(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']); + // we just popped so we increase + this.ind += 1; + keysToTake -= 1; + + // @ts-expect-error + if (list.__uniqueChars) { + results += `${firstChar}`; + + // no more special chars + if (list.length !== 0) { + // its 1 because we already popped once + for (let i = 1; i < numInList; i++) { + const nextChar = list.pop(); + keysToTake -= 1; + this.ind += 1; + + results += `${nextChar}`; + } + } + + if (keysToTake <= 0) { + break; + } + } else { + let lastChar = firstChar; + + // its 1 because we already popped once + for (let i = 1; i < numInList; i++) { + lastChar = list.pop(); + keysToTake -= 1; + this.ind += 1; + } + + if (firstChar === lastChar) { + results += `${firstChar}`; + } else { + results += `${firstChar}-${lastChar}`; + } + + if (keysToTake <= 0) { + break; + } + } + } + } + } + + return results; + } +} export function getKeyArray(keyType: IDType): readonly string[] { if (keyType === IDType.base64url) return base64url; @@ -189,7 +313,7 @@ export async function determineIDSlicerRanges( counter = 0; } } - + // TODO: why is this doing a count? return pMap(list, async (keys) => { const count = await getCount( generateCountQueryForKeys(keys) diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/idSlicer-refactor.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/idSlicer-refactor.ts new file mode 100644 index 00000000..ec791686 --- /dev/null +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/idSlicer-refactor.ts @@ -0,0 +1,268 @@ +import { TSError, isNumber } from '@terascope/utils'; +import { + IDSlicerArgs, ReaderSlice, IDSlicerResults, + IDType +} from '../interfaces.js'; +import { generateCountQueryForKeys, SplitKeyTracker } from './id-helpers.js'; + +export function idSlicerOptimized(args: IDSlicerArgs): () => Promise { + const { + events, + retryData, + range, + baseKeyArray, + keySet, + countFn, + startingKeyDepth, + size, + keyType + } = args; + + const createRatio = createRatioFN(size, baseKeyArray.length); + + async function determineKeySlice( + generator: KeyGenerator, + genResponse: boolean | number, + rangeObj?: ReaderSlice + ): Promise { + const data = generator.next(genResponse); + if (data.done) return null; + + async function getKeySlice(esQuery: ReaderSlice): Promise { + const count = await countFn(esQuery); + + if (count > size) { + events.emit('slicer:slice:recursion'); + const ratio = createRatio(count); + + return determineKeySlice(generator, ratio, rangeObj); + } + + if (count !== 0) { + // the closing of this path happens at keyGenerator + return { + ...esQuery, + count + }; + } + + // if count is zero then close path to prevent further iteration + return determineKeySlice(generator, true, rangeObj); + } + + return getKeySlice( + generateCountQueryForKeys( + [data.value], + rangeObj + ) + ); + } + + function keyGenerator( + baseArray: readonly string[], + keysArray: readonly string[], + retryKey?: string, + dateRange?: ReaderSlice + ) { + // if there is a starting depth, use the key depth generator, if not use default generator + const gen = startingKeyDepth > 0 + ? generateKeyDepth(baseArray, keysArray, startingKeyDepth, keyType) + : generateKeys(baseArray, keysArray, keyType); + let closePath = false; + + if (retryKey) { + let foundKey = false; + let skipKey = false; + closePath = true; + + while (!foundKey) { + const key = gen.next(skipKey).value; + if (key === null) { + foundKey = true; + } else { + // reset skipKey if used + if (skipKey) { + skipKey = false; + } + if (compareKeys(key, retryKey)) { + skipKey = true; + } else if (key === retryKey) { + foundKey = true; + } + } + } + } + + return async function slicer() { + try { + const results = await determineKeySlice(gen, closePath, dateRange); + closePath = true; + return results; + } catch (err) { + throw new TSError(err, { + reason: 'Failure to make slice for id_slicer' + }); + } + }; + } + + return keyGenerator(baseKeyArray, keySet, retryData, range); +} + +// return true if the keys do not match +function compareKeys(key: string, retryKey: string): boolean { + for (let i = 0; i < key.length; i += 1) { + if (key[i] !== retryKey[i]) { + return true; + } + } + + return false; +} + +type KeyGenerator = Generator; + +export function* recurse( + baseArray: readonly string[], + str: string, + keyType: IDType +): KeyGenerator { + for (const key of baseArray) { + const newStr = str + key; + const resp = yield newStr; + + // false == go deeper, true == all done, number = split keys + if (resp === false) { + yield * recurse(baseArray, newStr, keyType); + } else if (isNumber(resp)) { + yield * splitKeys(baseArray, newStr, keyType, resp); + } + } + + return null; +} + +export function* splitKeys( + baseArray: readonly string[], + str: string, + keyType: IDType, + ratio: number, + forwardTo?: string +): KeyGenerator { + let isLimitOfSplitting = false; + const tracker = new SplitKeyTracker(keyType); + + if (forwardTo) { + tracker.forward(forwardTo); + } + + let isDone = false; + + while (!isDone) { + const split = tracker.split(ratio); + + if (split.length === 0) { + isDone = true; + return null; + } + + if (split.length === 1) { + isLimitOfSplitting = true; + } + + const response = yield `${str}[${split}]`; + + if (isNumber(response)) { + if (isLimitOfSplitting) { + // if we have to split further and we are at limit, do normal recursion + // on that key + yield * recurse(baseArray, `${str}${split}`, keyType); + isDone = true; + } else { + const newRatio = Math.max( + Math.floor(ratio * (response / baseArray.length)), + 1 + ); + yield * splitKeys(baseArray, str, keyType, newRatio, split); + isDone = true; + } + } + } + + return null; +} + +function* recurseDepth( + baseArray: readonly string[], + str: string, + startingKeyDepth: number, + keyType: IDType +): KeyGenerator { + for (const key of baseArray) { + const newStr = str + key; + + if (newStr.length >= startingKeyDepth) { + const response = yield newStr; + + if (response === false) { + yield * recurse(baseArray, newStr, keyType); + } else if (isNumber(response)) { + yield * splitKeys(baseArray, newStr, keyType, response); + } + } else { + yield * recurse(baseArray, newStr, keyType); + } + } + + return null; +} + +export function* generateKeys( + baseArray: readonly string[], + keysArray: readonly string[], + keyType: IDType +): KeyGenerator { + for (const startKey of keysArray) { + const response = yield startKey; + // false == go deeper, true == all done, number = split keys + if (response === false) { + yield * recurse(baseArray, startKey, keyType); + } else if (isNumber(response)) { + yield * splitKeys(baseArray, startKey, keyType, response); + } + } + + return null; +} + +function* generateKeyDepth( + baseArray: readonly string[], + keysArray: readonly string[], + startingKeyDepth: number, + keyType: IDType +): KeyGenerator { + for (const startKey of keysArray) { + yield * recurseDepth(baseArray, startKey, startingKeyDepth, keyType); + } + + return null; +} + +export function createRatioFN(size: number, arrayLength: number) { + const limit = size * arrayLength; + + return function _createRatio(count: number): number | boolean { + if (count >= limit) { + // false means do a regular key recursion + return false; + } + const ratio = Math.floor(arrayLength * (size / count)); + // if we cant even group by two then there is nothing to be gained + // over the regular recurse calling + if (ratio <= 1) { + return false; + } + + return ratio; + }; +} diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/index.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/index.ts index 1fafaace..32380c8c 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/index.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/algorithms/index.ts @@ -2,3 +2,4 @@ export * from './date-helpers.js'; export * from './dateSlicer.js'; export * from './id-helpers.js'; export * from './idSlicer.js'; +export * from './idSlicer-refactor.js'; diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/interfaces.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/interfaces.ts index f72a2208..d5d0b66d 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/interfaces.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/interfaces.ts @@ -192,6 +192,7 @@ export interface IDSlicerArgs { startingKeyDepth: number; countFn: CountFn; size: number; + keyType: IDType; } export type RecoveryData = { @@ -247,6 +248,7 @@ export interface SlicerArgs { */ windowState?: WindowState; countFn: CountFn; + recurse_optimization: boolean; } export interface SlicerDates extends DateSegments { @@ -355,6 +357,8 @@ export interface ESReaderOptions { response_type?: FetchResponseType; type_config?: DataTypeConfig; useSimpleFetch?: boolean; + total_optimization?: boolean; + recurse_optimization?: boolean; } export interface SpacesAPIConfig extends ESReaderOptions { @@ -365,7 +369,6 @@ export interface SpacesAPIConfig extends ESReaderOptions { retry?: number; variables?: xLuceneVariables; caCertificate?: string; - includeTotals?: boolean | 'number'; } export interface DetermineSliceResults { diff --git a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/utils.ts b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/utils.ts index a5b2d9d3..f39c5cac 100644 --- a/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/utils.ts +++ b/packages/elasticsearch-asset-apis/src/elasticsearch-reader-api/utils.ts @@ -4,8 +4,6 @@ import { ESReaderOptions, ReaderSlice } from './interfaces.js'; /** * Build the elasticsearch DSL query - * - * @todo this should be switch to return an xLucene query */ export function buildQuery( opConfig: ESReaderOptions, params: ReaderSlice @@ -18,8 +16,26 @@ export function buildQuery( size: params.count, body: _buildRangeQuery(opConfig, params), }; - // TODO: fix _source reference in @terascope/types - if (opConfig.fields) query._source = opConfig.fields as any; + + if (opConfig.total_optimization) { + let trackCount: number | boolean = false; + + if (params.count === 0) { + if (opConfig.recurse_optimization) { + trackCount = true; + } else { + trackCount = opConfig.size + 1; + } + } + + query.track_total_hits = trackCount; + } else { + query.track_total_hits = true; + } + + if (opConfig.fields) { + query._source = opConfig.fields; + } return query; } @@ -51,13 +67,24 @@ function _buildRangeQuery( if (!isString(idFieldName)) { throw new Error('Missing id_field_name for id slicer'); } - body.query.bool.must.push({ - bool: { - should: params.keys.map((key) => ({ - wildcard: { [idFieldName]: `${key}*` } - })) - } - }); + + if (opConfig.recurse_optimization) { + body.query.bool.must.push({ + bool: { + should: params.keys.map((key) => ({ + regexp: { [idFieldName]: `${key}.*` } + })) + } + }); + } else { + body.query.bool.must.push({ + bool: { + should: params.keys.map((key) => ({ + wildcard: { [idFieldName]: `${key}*` } + })) + } + }); + } } // elasticsearch lucene based query diff --git a/packages/elasticsearch-asset-apis/test/bulk-send-spec.ts b/packages/elasticsearch-asset-apis/test/db-tests/bulk-send-spec.ts similarity index 99% rename from packages/elasticsearch-asset-apis/test/bulk-send-spec.ts rename to packages/elasticsearch-asset-apis/test/db-tests/bulk-send-spec.ts index 6fbbea28..a0224829 100644 --- a/packages/elasticsearch-asset-apis/test/bulk-send-spec.ts +++ b/packages/elasticsearch-asset-apis/test/db-tests/bulk-send-spec.ts @@ -5,8 +5,8 @@ import elasticAPI from '@terascope/elasticsearch-api'; import { TEST_INDEX_PREFIX, waitForData, cleanupIndex, fetch, makeClient -} from '../test/helpers/index.js'; -import { createElasticsearchBulkSender } from '../src/elasticsearch-bulk-sender/index.js'; +} from '../helpers/index.js'; +import { createElasticsearchBulkSender } from '../../src/elasticsearch-bulk-sender/index.js'; describe('elasticsearch bulk sender module', () => { const META_ROUTE = 'standard:route'; diff --git a/packages/elasticsearch-asset-apis/test/condensed-data-spec.ts b/packages/elasticsearch-asset-apis/test/db-tests/condensed-data-spec.ts similarity index 97% rename from packages/elasticsearch-asset-apis/test/condensed-data-spec.ts rename to packages/elasticsearch-asset-apis/test/db-tests/condensed-data-spec.ts index 290bf0eb..a66e001f 100644 --- a/packages/elasticsearch-asset-apis/test/condensed-data-spec.ts +++ b/packages/elasticsearch-asset-apis/test/db-tests/condensed-data-spec.ts @@ -7,8 +7,8 @@ import { populateIndex, waitForData, makeClient -} from './helpers'; -import condensedData from './fixtures/data/condensed-spread.js'; +} from '../helpers'; +import condensedData from '../fixtures/data/condensed-spread.js'; import { createElasticsearchReaderAPI, ESReaderOptions, @@ -18,7 +18,7 @@ import { ElasticsearchReaderClient, ReaderSlice, FetchResponseType -} from '../src/index.js'; +} from '../../src/index.js'; describe('ReaderAPI with condensed time data', () => { const readerIndex = `${TEST_INDEX_PREFIX}_elasticsearch_api_condensed_`; diff --git a/packages/elasticsearch-asset-apis/test/cross-cluster-spec.ts b/packages/elasticsearch-asset-apis/test/db-tests/cross-cluster-spec.ts similarity index 98% rename from packages/elasticsearch-asset-apis/test/cross-cluster-spec.ts rename to packages/elasticsearch-asset-apis/test/db-tests/cross-cluster-spec.ts index c8f2975d..57a6c6a3 100644 --- a/packages/elasticsearch-asset-apis/test/cross-cluster-spec.ts +++ b/packages/elasticsearch-asset-apis/test/db-tests/cross-cluster-spec.ts @@ -9,7 +9,7 @@ import { populateIndex, waitForData, makeClient -} from './helpers/index.js'; +} from '../helpers/index.js'; import { createElasticsearchReaderAPI, ElasticsearchReaderClient, @@ -17,7 +17,7 @@ import { FetchResponseType, IDType, ReaderSlice -} from '../src/index.js'; +} from '../../src/index.js'; describe('Reader API', () => { const readerIndex = `${TEST_INDEX_PREFIX}_elasticsearch_api_dataframe_cross_cluster`; diff --git a/packages/elasticsearch-asset-apis/test/reader-api-spec.ts b/packages/elasticsearch-asset-apis/test/db-tests/reader-api-spec.ts similarity index 99% rename from packages/elasticsearch-asset-apis/test/reader-api-spec.ts rename to packages/elasticsearch-asset-apis/test/db-tests/reader-api-spec.ts index 623d0632..87da891d 100644 --- a/packages/elasticsearch-asset-apis/test/reader-api-spec.ts +++ b/packages/elasticsearch-asset-apis/test/db-tests/reader-api-spec.ts @@ -12,7 +12,7 @@ import { populateIndex, waitForData, makeClient -} from './helpers/index.js'; +} from '../helpers/index.js'; import { createElasticsearchReaderAPI, DateSlicerRange, @@ -22,7 +22,7 @@ import { IDType, InputDateSegments, ReaderSlice -} from '../src/index.js'; +} from '../../src/index.js'; describe('Reader API', () => { const readerIndex = `${TEST_INDEX_PREFIX}_elasticsearch_api_dataframe_`; diff --git a/packages/elasticsearch-asset-apis/test/helpers/mock-client.ts b/packages/elasticsearch-asset-apis/test/helpers/mock-client.ts index bc2d57cd..ab65e6f4 100644 --- a/packages/elasticsearch-asset-apis/test/helpers/mock-client.ts +++ b/packages/elasticsearch-asset-apis/test/helpers/mock-client.ts @@ -1,8 +1,4 @@ -import { - AnyObject, - isPlainObject, - isObjectEntity -} from '@terascope/utils'; +import { isPlainObject, isObjectEntity } from '@terascope/utils'; function createData() { return { @@ -14,16 +10,16 @@ function createData() { }; } -function validateQuery(obj: AnyObject) { +function validateQuery(obj: Record) { if (!isPlainObject(obj)) throw new Error('query must be an object'); if (!obj.index || typeof obj.index !== 'string') throw new Error('query must specify an index'); } interface BulkData { - body: AnyObject[]; + body: Record[]; } -function getMeta(meta: AnyObject | undefined) { +function getMeta(meta: Record | undefined) { if (meta == null) return false; if (meta.index) return 'index'; if (meta.create) return 'create'; @@ -54,17 +50,17 @@ function validateBulk(data: BulkData) { if (getMeta(secondDoc)) throw new Error('an elasticsearch meta object must be paired with data if it is not a delete operation'); if (!isObjectEntity(secondDoc)) throw new Error('data paired with elasticsearch bulk meta must be an object'); - if (Object.keys(secondDoc as AnyObject).length === 0) throw new Error('data must not be an empty object'); + if (Object.keys(secondDoc as Record).length === 0) throw new Error('data must not be an empty object'); } } } export class MockClient { - sequence!: any[]; - indices: AnyObject; - cluster: AnyObject; + sequence!: Record[]; + indices: Record; + cluster: Record; deepRecursiveResponseCount: boolean | number; - searchQuery: AnyObject; + searchQuery: Record; constructor(_sequence?: any[], deepRecursiveResponseCount: boolean | number = false) { const defaultSequence = [ @@ -106,13 +102,13 @@ export class MockClient { }; } - async search(query: AnyObject): Promise { + async search(query: Record): Promise> { validateQuery(query); this.searchQuery = query; const { sequence } = this; if (sequence.length > 0) { - return sequence.shift(); + return sequence.shift() as Record; } const total = this.deepRecursiveResponseCount || 0; @@ -122,7 +118,7 @@ export class MockClient { }; } - setSequenceData(data: AnyObject[]): void { + setSequenceData(data: Record[]): void { this.sequence = data.map( (obj: any) => ({ _shards: { failed: 0 }, diff --git a/packages/elasticsearch-asset-apis/test/date-range/date_slicer_fn-spec.ts b/packages/elasticsearch-asset-apis/test/unit/date_slicer_fn-spec.ts similarity index 89% rename from packages/elasticsearch-asset-apis/test/date-range/date_slicer_fn-spec.ts rename to packages/elasticsearch-asset-apis/test/unit/date_slicer_fn-spec.ts index 66e2e057..3fcc4de7 100644 --- a/packages/elasticsearch-asset-apis/test/date-range/date_slicer_fn-spec.ts +++ b/packages/elasticsearch-asset-apis/test/unit/date_slicer_fn-spec.ts @@ -1,16 +1,11 @@ import 'jest-extended'; import { EventEmitter } from 'node:events'; -import { - AnyObject, - debugLogger, - times, - pDelay, -} from '@terascope/utils'; +import { debugLogger, times, pDelay } from '@terascope/utils'; import moment from 'moment'; import { WindowState, SlicerArgs, ParsedInterval, SlicerDateConfig, DateSegments, - ReaderSlice, dateSlicer, + ReaderSlice, dateSlicer, splitTime, dateFormatSeconds, dateFormat, divideRange } from '../../src/index.js'; import { MockClient } from '../helpers/index.js'; @@ -19,7 +14,7 @@ interface TestConfig { slicers?: number; lifecycle?: 'once' | 'persistent'; id?: number; - config?: AnyObject; + config?: Record; client?: MockClient; interval: ParsedInterval; latencyInterval?: ParsedInterval; @@ -27,6 +22,8 @@ interface TestConfig { primaryRange?: DateSegments; timeResolution?: string; windowState?: WindowState; + recurse_optimization?: boolean; + size?: number; } describe('date slicer function', () => { @@ -48,7 +45,9 @@ describe('date slicer function', () => { primaryRange, config, timeResolution = 's', - windowState + windowState, + recurse_optimization = false, + size = 1000 }: TestConfig) { let client = _client; @@ -60,9 +59,10 @@ describe('date slicer function', () => { if (lifecycle === 'persistent') { if (!primaryRange || !latencyInterval) throw new Error('Invalid test config'); } + const readerConfig = { time_resolution: timeResolution, - size: 1000, + size, }; async function countFn() { @@ -75,12 +75,11 @@ describe('date slicer function', () => { const { time_resolution: timeResolutionParam, - size, subslice_by_key: subsliceByKey, subslice_key_threshold: subsliceKeyThreshold, key_type: keyType, id_field_name: idFieldName, - starting_key_depth: startingKeyDepth + starting_key_depth: startingKeyDepth, } = opConfig; const slicerArgs: SlicerArgs = { @@ -102,6 +101,7 @@ describe('date slicer function', () => { primaryRange, windowState: _windowState, countFn, + recurse_optimization }; return dateSlicer(slicerArgs); @@ -225,6 +225,47 @@ describe('date slicer function', () => { expect(results).toEqual(expectedResults); }); + + it('with recursive optimization', async () => { + const timeResolution = 's'; + const recursiveCount = 800; + const largeCount = 1300; + const size = 1000; + const ratio = size / largeCount; + const interval: ParsedInterval = [5, 'm']; + const start = makeDate(dateFormatSeconds); + const end = moment.utc(start).add(2, 'm'); + const limit = moment.utc(start).add(interval[0], interval[1]); + const diff = splitTime(start, end, limit, timeResolution, ratio); + const client = new MockClient([{ count: largeCount }], recursiveCount); + + const testConfig: TestConfig = { + interval, + dates: { + start, + end, + limit + }, + client, + size, + timeResolution, + recurse_optimization: true + }; + + const expectedResults = { + start: moment(moment.utc(start).format(dateFormatSeconds)).toISOString(), + end: moment(moment.utc(start).add(diff, 's') + .format(dateFormatSeconds)).toISOString(), + limit: moment(moment.utc(limit).format(dateFormatSeconds)).toISOString(), + count: 800, + holes: [] + }; + + const slicer = makeSlicer(testConfig); + const results = await slicer(); + + expect(results).toEqual(expectedResults); + }); }); describe('can run persistently', () => { diff --git a/packages/elasticsearch-asset-apis/test/unit/id-helpers-spec.ts b/packages/elasticsearch-asset-apis/test/unit/id-helpers-spec.ts new file mode 100644 index 00000000..7ac10874 --- /dev/null +++ b/packages/elasticsearch-asset-apis/test/unit/id-helpers-spec.ts @@ -0,0 +1,162 @@ +import { SplitKeyTracker, IDType } from '../../src/index.js'; + +describe('id-helpers', () => { + describe('SplitKeyTracker', () => { + it('can create a tracker', () => { + const tracker = new SplitKeyTracker(IDType.hexadecimal); + + expect(tracker).toBeDefined(); + expect(tracker.split).toBeFunction(); + }); + + it('will throw if using a wrong tracker type', () => { + expect( + () => new SplitKeyTracker('something' as unknown as IDType) + ).toThrow(); + }); + + describe(`${IDType.hexadecimal}`, () => { + it('can correctly split in batches', () => { + const tracker = new SplitKeyTracker(IDType.hexadecimal); + + const batch1 = tracker.split(5); + const batch2 = tracker.split(5); + const batch3 = tracker.split(6); + const batch4 = tracker.split(5); + + expect(batch1).toEqual('0-4'); + expect(batch2).toEqual('5-9'); + expect(batch3).toEqual('a-f'); + expect(batch4).toEqual(''); + }); + + it('can correctly split across alphanumeric types', () => { + const tracker = new SplitKeyTracker(IDType.hexadecimal); + + const batch1 = tracker.split(4); + const batch2 = tracker.split(4); + const batch3 = tracker.split(4); + const batch4 = tracker.split(4); + const batch5 = tracker.split(4); + + expect(batch1).toEqual('0-3'); + expect(batch2).toEqual('4-7'); + expect(batch3).toEqual('8-9a-b'); + expect(batch4).toEqual('c-f'); + expect(batch5).toEqual(''); + }); + }); + + describe(`${IDType.HEXADECIMAL}`, () => { + it('can correctly split in batches', () => { + const tracker = new SplitKeyTracker(IDType.HEXADECIMAL); + + const batch1 = tracker.split(5); + const batch2 = tracker.split(5); + const batch3 = tracker.split(6); + const batch4 = tracker.split(5); + + expect(batch1).toEqual('0-4'); + expect(batch2).toEqual('5-9'); + expect(batch3).toEqual('A-F'); + expect(batch4).toEqual(''); + }); + + it('can correctly split across alphanumeric types', () => { + const tracker = new SplitKeyTracker(IDType.HEXADECIMAL); + + const batch1 = tracker.split(4); + const batch2 = tracker.split(4); + const batch3 = tracker.split(4); + const batch4 = tracker.split(4); + const batch5 = tracker.split(4); + + expect(batch1).toEqual('0-3'); + expect(batch2).toEqual('4-7'); + expect(batch3).toEqual('8-9A-B'); + expect(batch4).toEqual('C-F'); + expect(batch5).toEqual(''); + }); + }); + + describe(`${IDType.base64url}`, () => { + it('can correctly split in batches', () => { + const tracker = new SplitKeyTracker(IDType.base64url); + + const batch1 = tracker.split(26); + const batch2 = tracker.split(26); + const batch3 = tracker.split(10); + const batch4 = tracker.split(2); + const batch5 = tracker.split(4); + + expect(batch1).toEqual('a-z'); + expect(batch2).toEqual('A-Z'); + expect(batch3).toEqual('0-9'); + expect(batch4).toEqual('-_'); + expect(batch5).toEqual(''); + }); + + it('can correctly split across alphanumeric types', () => { + const tracker = new SplitKeyTracker(IDType.base64url); + + const batch1 = tracker.split(10); + const batch2 = tracker.split(10); + const batch3 = tracker.split(10); + const batch4 = tracker.split(10); + const batch5 = tracker.split(10); + const batch6 = tracker.split(10); + const batch7 = tracker.split(10); + const batch8 = tracker.split(10); + + expect(batch1).toEqual('a-j'); + expect(batch2).toEqual('k-t'); + expect(batch3).toEqual('u-zA-D'); + expect(batch4).toEqual('E-N'); + expect(batch5).toEqual('O-X'); + expect(batch6).toEqual('Y-Z0-7'); + expect(batch7).toEqual('8-9-_'); + expect(batch8).toEqual(''); + }); + }); + + describe(`${IDType.base64}`, () => { + it('can correctly split in batches', () => { + const tracker = new SplitKeyTracker(IDType.base64); + + const batch1 = tracker.split(26); + const batch2 = tracker.split(26); + const batch3 = tracker.split(10); + const batch4 = tracker.split(4); + const batch5 = tracker.split(4); + + expect(batch1).toEqual('a-z'); + expect(batch2).toEqual('A-Z'); + expect(batch3).toEqual('0-9'); + expect(batch4).toEqual('-_+/'); + expect(batch5).toEqual(''); + }); + + it('can correctly split across alphanumeric types', () => { + const tracker = new SplitKeyTracker(IDType.base64); + + const batch1 = tracker.split(10); + const batch2 = tracker.split(10); + const batch3 = tracker.split(10); + const batch4 = tracker.split(10); + const batch5 = tracker.split(10); + const batch6 = tracker.split(10); + const batch7 = tracker.split(10); + const batch8 = tracker.split(10); + + expect(batch1).toEqual('a-j'); + expect(batch2).toEqual('k-t'); + expect(batch3).toEqual('u-zA-D'); + expect(batch4).toEqual('E-N'); + expect(batch5).toEqual('O-X'); + expect(batch6).toEqual('Y-Z0-7'); + expect(batch7).toEqual('8-9-_+/'); + expect(batch8).toEqual(''); + }); + }); + }); +}); diff --git a/packages/elasticsearch-asset-apis/test/unit/idSlicer-refactor-spec.ts b/packages/elasticsearch-asset-apis/test/unit/idSlicer-refactor-spec.ts new file mode 100644 index 00000000..e6d45776 --- /dev/null +++ b/packages/elasticsearch-asset-apis/test/unit/idSlicer-refactor-spec.ts @@ -0,0 +1,269 @@ +import { EventEmitter } from 'node:events'; +import { debugLogger, times, pWhile } from '@terascope/utils'; +import { + idSlicer, getKeyArray, IDType, + idSlicerOptimized +} from '../../src/index.js'; +import { MockClient } from '../helpers/index.js'; + +describe('Refactored idSlicer', () => { + const logger = debugLogger('dateSlicerFn'); + let events: EventEmitter; + + beforeEach(() => { + events = new EventEmitter(); + }); + + async function gatherSlices(fn: () => Promise) { + const results: any[] = []; + + await pWhile(async () => { + const slice = await fn(); + results.push(slice); + + if (slice == null) { + return true; + } + }, { timeoutMs: 100000 }); + + return results; + } + + interface IdSlicerTestArgs { + client?: MockClient; + size: number; + startingKeyDepth?: number; + baseKey?: IDType; + keySet?: string[]; + optimized?: boolean; + } + + function makeIdSlicer({ + client: _client, + size, + startingKeyDepth = 0, + baseKey = IDType.hexadecimal, + keySet: _keySet, + optimized = true + }: IdSlicerTestArgs) { + let client = _client; + const baseKeyArray = getKeyArray(baseKey); + const keySet = _keySet ?? baseKeyArray; + const keyType = baseKey; + + if (client == null) { + client = new MockClient(); + client.setSequenceData(times(50, () => ({ count: 100, '@timestamp': new Date() }))); + } + + async function countFn() { + const data = await client!.search({ index: 'test' }); + return data.hits.total; + } + + const slicerArgs = { + events, + logger, + keySet, + baseKeyArray, + startingKeyDepth, + countFn, + size, + keyType + } as unknown as any; + + if (optimized) { + return idSlicerOptimized(slicerArgs); + } + + return idSlicer(slicerArgs); + } + + it('idSlicer can return a function that makes slices', async () => { + const slicer = makeIdSlicer({ + size: 1000, + startingKeyDepth: 0, + }); + + expect(slicer).toBeFunction(); + + const slice = await slicer(); + + expect(slice).toMatchObject({ keys: ['0'], count: 100 }); + }); + + it('idSlicer will return null after finishing slicing', async () => { + const slicer = makeIdSlicer({ + size: 1000, + startingKeyDepth: 0, + keySet: ['a', 'b', 'c'] + }); + + const expectedResults = [ + { + keys: ['a'], + count: 100 + }, + { + keys: ['b'], + count: 100 + }, + { + keys: ['c'], + count: 100 + }, + null + ]; + + const results = await gatherSlices(slicer); + + expect(results).toEqual(expectedResults); + }); + + it('should be able to optimize the recursive call on the slice when it passes the allowed size', async () => { + const client = new MockClient(); + let hasRecursed = false; + + client.setSequenceData([ + { count: 50 }, + { count: 110 }, + { count: 50 }, + { count: 50 }, + { count: 50 }, + { count: 50 }, + + ]); + + events.on('slicer:slice:recursion', () => { + hasRecursed = true; + }); + + const slicer = makeIdSlicer({ + size: 100, + startingKeyDepth: 0, + keySet: ['a', 'b', 'c'], + client, + baseKey: IDType.hexadecimal + }); + + const expectedResults = [ + { keys: ['a'], count: 50 }, + { keys: ['b[0-9a-d]'], count: 50 }, + { keys: ['b[e-f]'], count: 50 }, + { keys: ['c'], count: 50 }, + null + ]; + + const results = await gatherSlices(slicer); + + expect(hasRecursed).toBeTrue(); + expect(results).toEqual(expectedResults); + }); + + it('should be able to optimize the recursive call with special chars', async () => { + const client = new MockClient([], 50); + let hasRecursed = false; + + client.setSequenceData([ + { count: 50 }, + { count: 110 }, + { count: 50 }, + { count: 50 }, + { count: 50 }, + { count: 50 }, + ]); + + events.on('slicer:slice:recursion', () => { + hasRecursed = true; + }); + + const slicer = makeIdSlicer({ + size: 100, + startingKeyDepth: 0, + keySet: ['a', 'b', 'c'], + client, + baseKey: IDType.base64 + }); + + const expectedResults = [ + { keys: ['a'], count: 50 }, + { keys: ['b[a-zA-Z0-7]'], count: 50 }, + { keys: ['b[8-9-_+/]'], count: 50 }, + { keys: ['c'], count: 50 }, + null + ]; + + const results = await gatherSlices(slicer); + + expect(hasRecursed).toBeTrue(); + expect(results).toEqual(expectedResults); + }); + + it('should be able to recurse correctly with startingDepth', async () => { + const client = new MockClient([], 50); + let hasRecursed = false; + + client.setSequenceData([ + { count: 50 }, + { count: 110 }, + { count: 50 }, + { count: 50 }, + { count: 50 }, + { count: 50 }, + ]); + + events.on('slicer:slice:recursion', () => { + hasRecursed = true; + }); + + const slicer = makeIdSlicer({ + size: 100, + startingKeyDepth: 1, + keySet: ['a', 'b'], + client, + baseKey: IDType.hexadecimal + }); + + const expectedResults = [ + { keys: ['a0'], count: 50 }, + { keys: ['a1[0-9a-d]'], count: 50 }, + { keys: ['a1[e-f]'], count: 50 }, + { keys: ['a2'], count: 50 }, + { keys: ['a3'], count: 50 }, + { keys: ['a4'], count: 50 }, + { keys: ['a5'], count: 50 }, + { keys: ['a6'], count: 50 }, + { keys: ['a7'], count: 50 }, + { keys: ['a8'], count: 50 }, + { keys: ['a9'], count: 50 }, + { keys: ['aa'], count: 50 }, + { keys: ['ab'], count: 50 }, + { keys: ['ac'], count: 50 }, + { keys: ['ad'], count: 50 }, + { keys: ['ae'], count: 50 }, + { keys: ['af'], count: 50 }, + { keys: ['b0'], count: 50 }, + { keys: ['b1'], count: 50 }, + { keys: ['b2'], count: 50 }, + { keys: ['b3'], count: 50 }, + { keys: ['b4'], count: 50 }, + { keys: ['b5'], count: 50 }, + { keys: ['b6'], count: 50 }, + { keys: ['b7'], count: 50 }, + { keys: ['b8'], count: 50 }, + { keys: ['b9'], count: 50 }, + { keys: ['ba'], count: 50 }, + { keys: ['bb'], count: 50 }, + { keys: ['bc'], count: 50 }, + { keys: ['bd'], count: 50 }, + { keys: ['be'], count: 50 }, + { keys: ['bf'], count: 50 }, + null + ]; + + const results = await gatherSlices(slicer); + + expect(hasRecursed).toBeTrue(); + expect(results).toEqual(expectedResults); + }); +}); diff --git a/packages/elasticsearch-asset-apis/test/spaces/spaces-client-spec.ts b/packages/elasticsearch-asset-apis/test/unit/spaces-client-spec.ts similarity index 99% rename from packages/elasticsearch-asset-apis/test/spaces/spaces-client-spec.ts rename to packages/elasticsearch-asset-apis/test/unit/spaces-client-spec.ts index 26c9e5ab..0076cd02 100644 --- a/packages/elasticsearch-asset-apis/test/spaces/spaces-client-spec.ts +++ b/packages/elasticsearch-asset-apis/test/unit/spaces-client-spec.ts @@ -65,7 +65,6 @@ describe('Spaces Reader Client', () => { describe('when given a simple request', () => { const client = newClient({ query: 'foo:bar', - includeTotals: true }); let query: ClientParams.SearchParams; diff --git a/packages/elasticsearch-asset-apis/test/date-range/starting_point-spec.ts b/packages/elasticsearch-asset-apis/test/unit/starting_point-spec.ts similarity index 99% rename from packages/elasticsearch-asset-apis/test/date-range/starting_point-spec.ts rename to packages/elasticsearch-asset-apis/test/unit/starting_point-spec.ts index c6af112c..80eab51b 100644 --- a/packages/elasticsearch-asset-apis/test/date-range/starting_point-spec.ts +++ b/packages/elasticsearch-asset-apis/test/unit/starting_point-spec.ts @@ -1,11 +1,8 @@ import 'jest-extended'; import moment from 'moment'; import { - determineDateSlicerRanges, - dateFormatSeconds, - divideRange, - StartPointConfig, - ParsedInterval + determineDateSlicerRanges, dateFormatSeconds, divideRange, + StartPointConfig, ParsedInterval } from '../../src/index.js'; function makeDate(format: string) { diff --git a/packages/elasticsearch-asset-apis/test/window_state-spec.ts b/packages/elasticsearch-asset-apis/test/unit/window_state-spec.ts similarity index 94% rename from packages/elasticsearch-asset-apis/test/window_state-spec.ts rename to packages/elasticsearch-asset-apis/test/unit/window_state-spec.ts index 2d2e6690..02f08295 100644 --- a/packages/elasticsearch-asset-apis/test/window_state-spec.ts +++ b/packages/elasticsearch-asset-apis/test/unit/window_state-spec.ts @@ -1,5 +1,5 @@ import 'jest-extended'; -import { WindowState } from '../src/elasticsearch-reader-api/WindowState.js'; +import { WindowState } from '../../src/elasticsearch-reader-api/WindowState.js'; describe('WindowState', () => { it('can instantiate', () => { diff --git a/test/elasticsearch_bulk/schema-spec.ts b/test/elasticsearch_bulk/schema-spec.ts index 1cc5c181..805e2d6d 100644 --- a/test/elasticsearch_bulk/schema-spec.ts +++ b/test/elasticsearch_bulk/schema-spec.ts @@ -32,7 +32,7 @@ describe('Elasticsearch Bulk Schema', () => { (testConfig: OpConfig) => testConfig._op === name ); - return validConfig as ElasticsearchBulkConfig; + return validConfig as unknown as ElasticsearchBulkConfig; } afterEach(async () => { diff --git a/test/elasticsearch_sender_api/schema-spec.ts b/test/elasticsearch_sender_api/schema-spec.ts index ce650de1..042ca3fe 100644 --- a/test/elasticsearch_sender_api/schema-spec.ts +++ b/test/elasticsearch_sender_api/schema-spec.ts @@ -3,8 +3,7 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { WorkerTestHarness, newTestJobConfig } from 'teraslice-test-harness'; import { - TestContext, APIConfig, Context, - debugLogger, TestClientConfig + APIConfig, Context, debugLogger, TestClientConfig } from '@terascope/job-components'; import { TEST_INDEX_PREFIX, makeClient } from '../helpers/index.js'; import { ElasticsearchSenderAPI, DEFAULT_API_NAME } from '../../asset/src/elasticsearch_sender_api/interfaces.js'; @@ -110,7 +109,7 @@ describe('elasticsearch sender api schema', () => { describe('elasticsearch sender api schema for routed sender jobs', () => { let harness: WorkerTestHarness; - let context: TestContext; + let context: Context; const logger = debugLogger('test-logger2'); beforeAll(async () => { @@ -177,7 +176,7 @@ describe('elasticsearch sender api schema for routed sender jobs', () => { }); it('should not throw if default is not an es endpoint and routed sender is an operation', async () => { - const schema = new SenderSchema(context as unknown as Context); + const schema = new SenderSchema(context as any); const job = newTestJobConfig({ max_retries: 3, @@ -207,7 +206,7 @@ describe('elasticsearch sender api schema for routed sender jobs', () => { }); it('should not throw if default is not an es endpoint and multiple routed sender operations', async () => { - const schema = new SenderSchema(context as unknown as Context); + const schema = new SenderSchema(context as any); const job = newTestJobConfig({ max_retries: 3, @@ -281,7 +280,7 @@ describe('elasticsearch sender api schema for routed sender jobs', () => { ], }); - const schema = new SenderSchema(context as unknown as Context); + const schema = new SenderSchema(context as any); expect(() => schema.validateJob(job2)).toThrow(); }); diff --git a/test/id_reader/slicer-spec.ts b/test/id_reader/slicer-spec.ts index c8b91cc6..4248a520 100644 --- a/test/id_reader/slicer-spec.ts +++ b/test/id_reader/slicer-spec.ts @@ -31,7 +31,7 @@ describe('id_reader slicer', () => { }); afterAll(async () => { - await cleanupIndex(esClient, `${apiReaderIndex}*`); + // await cleanupIndex(esClient, `${apiReaderIndex}*`); }); beforeEach(() => { @@ -179,6 +179,36 @@ describe('id_reader slicer', () => { }); }); + it('can fit slices down to size with recursive optimizations', async () => { + const opConfig = { + _op: 'id_reader', + key_type: 'hexadecimal', + key_range: ['a'], + field, + index: apiReaderIndex, + size: 20, + recurse_optimization: true + }; + + const test = await makeSlicerTest(opConfig); + const results = await test.getAllSlices(); + + expect(results.pop()).toBeNull(); + + // this double recurses, first it takes 5 keys, then switches to taking 4 keys + const expectedResults = [ + { keys: ['a[0-4]'], count: 17 }, + { keys: ['a[5-8]'], count: 15 }, + { keys: ['a[9]'], count: 8 }, + ]; + + expect(results.length).toBeGreaterThan(1); + + results.forEach((result, index) => { + expect(result).toMatchObject(expectedResults[index]); + }); + }); + it('produces values starting at a specific depth', async () => { const opConfig = { key_range: ['a'], diff --git a/test/spaces_reader/slicer-spec.ts b/test/spaces_reader/slicer-spec.ts index ac456324..3204529b 100644 --- a/test/spaces_reader/slicer-spec.ts +++ b/test/spaces_reader/slicer-spec.ts @@ -188,7 +188,7 @@ describe('spaces_reader slicer', () => { q: `created:[${start.toISOString()} TO ${end.toISOString()}} AND (slicer:query)`, size: 0, variables, - track_total_hits: true + track_total_hits: 3 }; scope.get(`/${testIndex}/_info?token=${token}`) @@ -224,3 +224,16 @@ describe('spaces_reader slicer', () => { }); }); }); + +/* +{ + { + q: 'created:[2012-12-12T00:00:00.000Z TO 2012-12-12T00:01:00.000Z} AND (slicer:query)', + size: 0, + variables: { '@foo': 'foo', '$bar': 'bar' }, + track_total_hits: true + }, + start: '2012-12-12T00:00:00.000Z', + end: '2012-12-12T00:01:00.000Z' + } +*/ diff --git a/yarn.lock b/yarn.lock index 570bdb89..72a9e043 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,7 +15,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.2": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" dependencies: @@ -26,59 +26,59 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.25.9": - version: 7.26.2 - resolution: "@babel/compat-data@npm:7.26.2" - checksum: 10c0/c9b5f3724828d17f728a778f9d66c19b55c018d0d76de6d731178cca64f182c22b71400a73bf2b65dcc4fcfe52b630088a94d5902911b54206aa90e3ffe07d12 +"@babel/compat-data@npm:^7.26.5": + version: 7.26.5 + resolution: "@babel/compat-data@npm:7.26.5" + checksum: 10c0/9d2b41f0948c3dfc5de44d9f789d2208c2ea1fd7eb896dfbb297fe955e696728d6f363c600cd211e7f58ccbc2d834fe516bb1e4cf883bbabed8a32b038afc1a0 languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": - version: 7.26.0 - resolution: "@babel/core@npm:7.26.0" + version: 7.26.7 + resolution: "@babel/core@npm:7.26.7" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.26.0" - "@babel/generator": "npm:^7.26.0" - "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.5" + "@babel/helper-compilation-targets": "npm:^7.26.5" "@babel/helper-module-transforms": "npm:^7.26.0" - "@babel/helpers": "npm:^7.26.0" - "@babel/parser": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.7" + "@babel/parser": "npm:^7.26.7" "@babel/template": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.26.0" + "@babel/traverse": "npm:^7.26.7" + "@babel/types": "npm:^7.26.7" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e + checksum: 10c0/fbd2cd9fc23280bdcaca556e558f715c0a42d940b9913c52582e8e3d24e391d269cb8a9cd6589172593983569021c379e28bba6b19ea2ee08674f6068c210a9d languageName: node linkType: hard -"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.7.2": - version: 7.26.2 - resolution: "@babel/generator@npm:7.26.2" +"@babel/generator@npm:^7.26.5, @babel/generator@npm:^7.7.2": + version: 7.26.5 + resolution: "@babel/generator@npm:7.26.5" dependencies: - "@babel/parser": "npm:^7.26.2" - "@babel/types": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.5" + "@babel/types": "npm:^7.26.5" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10c0/167ebce8977142f5012fad6bd91da51ac52bcd752f2261a54b7ab605d928aebe57e21636cdd2a9c7757e552652c68d9fcb5d40b06fcb66e02d9ee7526e118a5c + checksum: 10c0/3be79e0aa03f38858a465d12ee2e468320b9122dc44fc85984713e32f16f4d77ce34a16a1a9505972782590e0b8d847b6f373621f9c6fafa1906d90f31416cb0 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-compilation-targets@npm:7.25.9" +"@babel/helper-compilation-targets@npm:^7.26.5": + version: 7.26.5 + resolution: "@babel/helper-compilation-targets@npm:7.26.5" dependencies: - "@babel/compat-data": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.26.5" "@babel/helper-validator-option": "npm:^7.25.9" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa + checksum: 10c0/9da5c77e5722f1a2fcb3e893049a01d414124522bbf51323bb1a0c9dcd326f15279836450fc36f83c9e8a846f3c40e88be032ed939c5a9840922bed6073edfb4 languageName: node linkType: hard @@ -106,9 +106,9 @@ __metadata: linkType: hard "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.25.9 - resolution: "@babel/helper-plugin-utils@npm:7.25.9" - checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d + version: 7.26.5 + resolution: "@babel/helper-plugin-utils@npm:7.26.5" + checksum: 10c0/cdaba71d4b891aa6a8dfbe5bac2f94effb13e5fa4c2c487667fdbaa04eae059b78b28d85a885071f45f7205aeb56d16759e1bed9c118b94b16e4720ef1ab0f65 languageName: node linkType: hard @@ -133,24 +133,24 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/helpers@npm:7.26.0" +"@babel/helpers@npm:^7.26.7": + version: 7.26.7 + resolution: "@babel/helpers@npm:7.26.7" dependencies: "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.26.0" - checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 + "@babel/types": "npm:^7.26.7" + checksum: 10c0/37fec398e53a2dbbf24bc2a025c4d571b2556cef18d8116d05d04b153f13ef659cdfbaab96c8eed875e629d39bdf9b3ea5d099ccf80544537de224e2d94f9b11 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": - version: 7.26.2 - resolution: "@babel/parser@npm:7.26.2" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.5, @babel/parser@npm:^7.26.7": + version: 7.26.7 + resolution: "@babel/parser@npm:7.26.7" dependencies: - "@babel/types": "npm:^7.26.0" + "@babel/types": "npm:^7.26.7" bin: parser: ./bin/babel-parser.js - checksum: 10c0/751a743087b3a9172a7599f1421830d44c38f065ef781588d2bfb1c98f9b461719a226feb13c868d7a284783eee120c88ea522593118f2668f46ebfb1105c4d7 + checksum: 10c0/dcb08a4f2878ece33caffefe43b71488d753324bae7ca58d64bca3bc4af34dcfa1b58abdf9972516d76af760fceb25bb9294ca33461d56b31c5059ccfe32001f languageName: node linkType: hard @@ -342,11 +342,11 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.16.3": - version: 7.26.0 - resolution: "@babel/runtime@npm:7.26.0" + version: 7.26.7 + resolution: "@babel/runtime@npm:7.26.7" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/12c01357e0345f89f4f7e8c0e81921f2a3e3e101f06e8eaa18a382b517376520cd2fa8c237726eb094dab25532855df28a7baaf1c26342b52782f6936b07c287 + checksum: 10c0/60199c049f90e5e41c687687430052a370aca60bac7859ff4ee761c5c1739b8ba1604d391d01588c22dc0e93828cbadb8ada742578ad1b1df240746bce98729a languageName: node linkType: hard @@ -361,28 +361,28 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/traverse@npm:7.25.9" +"@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.7": + version: 7.26.7 + resolution: "@babel/traverse@npm:7.26.7" dependencies: - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.5" + "@babel/parser": "npm:^7.26.7" "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/types": "npm:^7.26.7" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 + checksum: 10c0/b23a36ce40d2e4970741431c45d4f92e3f4c2895c0a421456516b2729bd9e17278846e01ee3d9039b0adf5fc5a071768061c17fcad040e74a5c3e39517449d5b languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.3.3": - version: 7.26.0 - resolution: "@babel/types@npm:7.26.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.5, @babel/types@npm:^7.26.7, @babel/types@npm:^7.3.3": + version: 7.26.7 + resolution: "@babel/types@npm:7.26.7" dependencies: "@babel/helper-string-parser": "npm:^7.25.9" "@babel/helper-validator-identifier": "npm:^7.25.9" - checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 + checksum: 10c0/7810a2bca97b13c253f07a0863a628d33dbe76ee3c163367f24be93bfaf4c8c0a325f73208abaaa050a6b36059efc2950c2e4b71fb109c0f07fa62221d8473d4 languageName: node linkType: hard @@ -401,17 +401,17 @@ __metadata: linkType: hard "@elastic/transport@npm:^8.8.1": - version: 8.9.1 - resolution: "@elastic/transport@npm:8.9.1" + version: 8.9.4 + resolution: "@elastic/transport@npm:8.9.4" dependencies: "@opentelemetry/api": "npm:1.x" - debug: "npm:^4.3.4" - hpagent: "npm:^1.0.0" + debug: "npm:^4.3.7" + hpagent: "npm:^1.2.0" ms: "npm:^2.1.3" - secure-json-parse: "npm:^2.4.0" - tslib: "npm:^2.4.0" - undici: "npm:^6.12.0" - checksum: 10c0/a79fee3091dd9b9cfa70af5835ac8b362f43e783cbe28112312a3759944066613305764ce19c22941dfaf6e7157c4398eaadd1ac65b22ed8cdcf165a92f553c4 + secure-json-parse: "npm:^3.0.1" + tslib: "npm:^2.8.1" + undici: "npm:^6.21.1" + checksum: 10c0/a7bd2dceddc7ce2efd92197647ba5b8ccfcbdc051f9c553ac2045806147edb7ade50815836c27527243bef5d3ef3752d0bd716cf033ef04f912e9ba30b7d7946 languageName: node linkType: hard @@ -446,13 +446,13 @@ __metadata: linkType: hard "@eslint/config-array@npm:^0.19.0": - version: 0.19.0 - resolution: "@eslint/config-array@npm:0.19.0" + version: 0.19.1 + resolution: "@eslint/config-array@npm:0.19.1" dependencies: - "@eslint/object-schema": "npm:^2.1.4" + "@eslint/object-schema": "npm:^2.1.5" debug: "npm:^4.3.1" minimatch: "npm:^3.1.2" - checksum: 10c0/def23c6c67a8f98dc88f1b87e17a5668e5028f5ab9459661aabfe08e08f2acd557474bbaf9ba227be0921ae4db232c62773dbb7739815f8415678eb8f592dbf5 + checksum: 10c0/43b01f596ddad404473beae5cf95c013d29301c72778d0f5bf8a6699939c8a9a5663dbd723b53c5f476b88b0c694f76ea145d1aa9652230d140fe1161e4a4b49 languageName: node linkType: hard @@ -496,10 +496,10 @@ __metadata: languageName: node linkType: hard -"@eslint/object-schema@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/object-schema@npm:2.1.4" - checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda +"@eslint/object-schema@npm:^2.1.5": + version: 2.1.5 + resolution: "@eslint/object-schema@npm:2.1.5" + checksum: 10c0/5320691ed41ecd09a55aff40ce8e56596b4eb81f3d4d6fe530c50fdd6552d88102d1c1a29d970ae798ce30849752a708772de38ded07a6f25b3da32ebea081d8 languageName: node linkType: hard @@ -836,13 +836,13 @@ __metadata: linkType: hard "@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: "@jridgewell/set-array": "npm:^1.2.1" "@jridgewell/sourcemap-codec": "npm:^1.4.10" "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb + checksum: 10c0/c668feaf86c501d7c804904a61c23c67447b2137b813b9ce03eca82cb9d65ac7006d766c218685d76e3d72828279b6ee26c347aa1119dab23fbaf36aed51585a languageName: node linkType: hard @@ -1069,22 +1069,22 @@ __metadata: linkType: hard "@shikijs/engine-oniguruma@npm:^1.27.2": - version: 1.29.1 - resolution: "@shikijs/engine-oniguruma@npm:1.29.1" + version: 1.29.2 + resolution: "@shikijs/engine-oniguruma@npm:1.29.2" dependencies: - "@shikijs/types": "npm:1.29.1" + "@shikijs/types": "npm:1.29.2" "@shikijs/vscode-textmate": "npm:^10.0.1" - checksum: 10c0/da4db558192e38b916f4402674e7d75a2af7756dc6cd941565a946c62b1d1320dd39d15dd2f1386d5f6743a56576cdc61eaf98cb9a318ba05f4d834e83cc54d3 + checksum: 10c0/87d77e05af7fe862df40899a7034cbbd48d3635e27706873025e5035be578584d012f850208e97ca484d5e876bf802d4e23d0394d25026adb678eeb1d1f340ff languageName: node linkType: hard -"@shikijs/types@npm:1.29.1, @shikijs/types@npm:^1.27.2": - version: 1.29.1 - resolution: "@shikijs/types@npm:1.29.1" +"@shikijs/types@npm:1.29.2, @shikijs/types@npm:^1.27.2": + version: 1.29.2 + resolution: "@shikijs/types@npm:1.29.2" dependencies: "@shikijs/vscode-textmate": "npm:^10.0.1" "@types/hast": "npm:^3.0.4" - checksum: 10c0/8dc7a362c6da86fd1a54f41af020e844cfb0208721348a4a3ba97ab2cf6543e69c364e7c38731cee7ab189b9435ef91943401ef104c6d3a92b8b06055f35620b + checksum: 10c0/37b4ac315effc03e7185aca1da0c2631ac55bdf613897476bd1d879105c41f86ccce6ebd0b78779513d88cc2ee371039f7efd95d604f77f21f180791978822b3 languageName: node linkType: hard @@ -1215,7 +1215,7 @@ __metadata: languageName: node linkType: hard -"@terascope/elasticsearch-asset-apis@npm:~1.1.0, @terascope/elasticsearch-asset-apis@workspace:packages/elasticsearch-asset-apis": +"@terascope/elasticsearch-asset-apis@npm:~1.2.0, @terascope/elasticsearch-asset-apis@workspace:packages/elasticsearch-asset-apis": version: 0.0.0-use.local resolution: "@terascope/elasticsearch-asset-apis@workspace:packages/elasticsearch-asset-apis" dependencies: @@ -1490,20 +1490,7 @@ __metadata: languageName: node linkType: hard -"@turf/boolean-point-in-polygon@npm:^7.1.0": - version: 7.1.0 - resolution: "@turf/boolean-point-in-polygon@npm:7.1.0" - dependencies: - "@turf/helpers": "npm:^7.1.0" - "@turf/invariant": "npm:^7.1.0" - "@types/geojson": "npm:^7946.0.10" - point-in-polygon-hao: "npm:^1.1.0" - tslib: "npm:^2.6.2" - checksum: 10c0/ad6f66bfe52e15b011ddd074731df4ed2bdbcc14d66a2624f64d8ac0981882e7c39cb10f8c975e4d8bd3e83acae3284ad0abf28db15500fb3865f28d6fe8a8bf - languageName: node - linkType: hard - -"@turf/boolean-point-in-polygon@npm:^7.2.0, @turf/boolean-point-in-polygon@npm:~7.2.0": +"@turf/boolean-point-in-polygon@npm:^7.1.0, @turf/boolean-point-in-polygon@npm:^7.2.0, @turf/boolean-point-in-polygon@npm:~7.2.0": version: 7.2.0 resolution: "@turf/boolean-point-in-polygon@npm:7.2.0" dependencies: @@ -1590,17 +1577,7 @@ __metadata: languageName: node linkType: hard -"@turf/helpers@npm:^7.1.0": - version: 7.1.0 - resolution: "@turf/helpers@npm:7.1.0" - dependencies: - "@types/geojson": "npm:^7946.0.10" - tslib: "npm:^2.6.2" - checksum: 10c0/0b07c01584d8bee977edec8752109b4f79ab5b149e55a7dbe051e412e150c0a96f2464c9647676a092b7ab4429271eee4a31400ea45e9b55095ae53ad22f43d6 - languageName: node - linkType: hard - -"@turf/helpers@npm:^7.2.0, @turf/helpers@npm:~7.2.0": +"@turf/helpers@npm:^7.1.0, @turf/helpers@npm:^7.2.0, @turf/helpers@npm:~7.2.0": version: 7.2.0 resolution: "@turf/helpers@npm:7.2.0" dependencies: @@ -1610,17 +1587,6 @@ __metadata: languageName: node linkType: hard -"@turf/invariant@npm:^7.1.0": - version: 7.1.0 - resolution: "@turf/invariant@npm:7.1.0" - dependencies: - "@turf/helpers": "npm:^7.1.0" - "@types/geojson": "npm:^7946.0.10" - tslib: "npm:^2.6.2" - checksum: 10c0/63a163ee7babf539af64bd204808979ce45e0d0bf772b3f28cda9fa99ab9c54150ea90d3203ae25cdda1a78eb206faf89db5847dc58ebc0eae8df0dab55822b8 - languageName: node - linkType: hard - "@turf/invariant@npm:^7.2.0, @turf/invariant@npm:~7.2.0": version: 7.2.0 resolution: "@turf/invariant@npm:7.2.0" @@ -1772,9 +1738,9 @@ __metadata: linkType: hard "@types/geojson@npm:^7946.0.10, @types/geojson@npm:^7946.0.14": - version: 7946.0.14 - resolution: "@types/geojson@npm:7946.0.14" - checksum: 10c0/54f3997708fa2970c03eeb31f7e4540a0eb6387b15e9f8a60513a1409c23cafec8d618525404573468b59c6fecbfd053724b3327f7fca416729c26271d799f55 + version: 7946.0.16 + resolution: "@types/geojson@npm:7946.0.16" + checksum: 10c0/1ff24a288bd5860b766b073ead337d31d73bdc715e5b50a2cee5cb0af57a1ed02cc04ef295f5fa68dc40fe3e4f104dd31282b2b818a5ba3231bc1001ba084e3c languageName: node linkType: hard @@ -1882,18 +1848,18 @@ __metadata: linkType: hard "@types/lodash@npm:*": - version: 4.17.13 - resolution: "@types/lodash@npm:4.17.13" - checksum: 10c0/c3d0b7efe7933ac0369b99f2f7bff9240d960680fdb74b41ed4bd1b3ca60cca1e31fe4046d9abbde778f941a41bc2a75eb629abf8659fa6c27b66efbbb0802a9 + version: 4.17.15 + resolution: "@types/lodash@npm:4.17.15" + checksum: 10c0/2eb2dc6d231f5fb4603d176c08c8d7af688f574d09af47466a179cd7812d9f64144ba74bb32ca014570ffdc544eedc51b7a5657212bad083b6eecbd72223f9bb languageName: node linkType: hard "@types/node@npm:*": - version: 22.9.0 - resolution: "@types/node@npm:22.9.0" + version: 22.12.0 + resolution: "@types/node@npm:22.12.0" dependencies: - undici-types: "npm:~6.19.8" - checksum: 10c0/3f46cbe0a49bab4ba30494025e4c8a6e699b98ac922857aa1f0209ce11a1313ee46e6808b8f13fe5b8b960a9d7796b77c8d542ad4e9810e85ef897d5593b5d51 + undici-types: "npm:~6.20.0" + checksum: 10c0/be220706732d95db2ed1c441c1e64cab90bf9a47519ce6f4c79cc5a9ec9d5c517131a149a9ac30afac1a30103e67e3a00d453ba7c1b0141608a3a7ba6397c303 languageName: node linkType: hard @@ -2003,17 +1969,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/scope-manager@npm:8.13.0" - dependencies: - "@typescript-eslint/types": "npm:8.13.0" - "@typescript-eslint/visitor-keys": "npm:8.13.0" - checksum: 10c0/1924b3e740e244d98f8a99740b4196d23ae3263303b387c66db94e140455a3132e603a130f3f70fc71e37f4bda5d0c0c67224ae3911908b097ef3f972c136be4 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:8.17.0, @typescript-eslint/scope-manager@npm:^8.15.0": +"@typescript-eslint/scope-manager@npm:8.17.0": version: 8.17.0 resolution: "@typescript-eslint/scope-manager@npm:8.17.0" dependencies: @@ -2033,6 +1989,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:8.22.0, @typescript-eslint/scope-manager@npm:^8.15.0": + version: 8.22.0 + resolution: "@typescript-eslint/scope-manager@npm:8.22.0" + dependencies: + "@typescript-eslint/types": "npm:8.22.0" + "@typescript-eslint/visitor-keys": "npm:8.22.0" + checksum: 10c0/f393ab32086f4b095fcd77169abb5200ad94f282860944d164cec8c9b70090c36235f49b066ba24dfd953201b7730e48200a254e5950a9a3565acdacbbc0fd64 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:8.21.0": version: 8.21.0 resolution: "@typescript-eslint/type-utils@npm:8.21.0" @@ -2048,13 +2014,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/types@npm:8.13.0" - checksum: 10c0/bd3f88b738a92b2222f388bcf831357ef8940a763c2c2eb1947767e1051dd2f8bee387020e8cf4c2309e4142353961b659abc2885e30679109a0488b0bfefc23 - languageName: node - linkType: hard - "@typescript-eslint/types@npm:8.17.0": version: 8.17.0 resolution: "@typescript-eslint/types@npm:8.17.0" @@ -2069,22 +2028,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.13.0" - dependencies: - "@typescript-eslint/types": "npm:8.13.0" - "@typescript-eslint/visitor-keys": "npm:8.13.0" - debug: "npm:^4.3.4" - fast-glob: "npm:^3.3.2" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/2d45bc5ed4ac352bea927167ac28ef23bd13b6ae352ff50e85cddfdc4b06518f1dd4ae5f2495e30d6f62d247987677a4e807065d55829ba28963908a821dc96d +"@typescript-eslint/types@npm:8.22.0": + version: 8.22.0 + resolution: "@typescript-eslint/types@npm:8.22.0" + checksum: 10c0/6357d0937e2b84ddb00763d05053fe50f2270fa428aa11f1ad6a1293827cf54da7e6d4d20b00b9d4f633b6982a2eb0e494f05285daa1279d8a3493f0d8abae18 languageName: node linkType: hard @@ -2125,6 +2072,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:8.22.0": + version: 8.22.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.22.0" + dependencies: + "@typescript-eslint/types": "npm:8.22.0" + "@typescript-eslint/visitor-keys": "npm:8.22.0" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^2.0.0" + peerDependencies: + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/0a9d77fbadfb1e54c06abde424e461103576595c70e50ae8a15a3d7c07f125f253f505208e1ea5cc483b9073d95fc10ce0c4ddfe0fe08ec2aceda6314c341e0d + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:8.21.0": version: 8.21.0 resolution: "@typescript-eslint/utils@npm:8.21.0" @@ -2141,16 +2106,17 @@ __metadata: linkType: hard "@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.13.0 - resolution: "@typescript-eslint/utils@npm:8.13.0" + version: 8.22.0 + resolution: "@typescript-eslint/utils@npm:8.22.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.13.0" - "@typescript-eslint/types": "npm:8.13.0" - "@typescript-eslint/typescript-estree": "npm:8.13.0" + "@typescript-eslint/scope-manager": "npm:8.22.0" + "@typescript-eslint/types": "npm:8.22.0" + "@typescript-eslint/typescript-estree": "npm:8.22.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/3fc5a7184a949df5f5b64f6af039a1d21ef7fe15f3d88a5d485ccbb535746d18514751143993a5aee287228151be3e326baf8f899a0a0a93368f6f20857ffa6d + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/6f1e3f9c0fb865c8cef4fdca04679cea7357ed011338b54d80550e9ad5369a3f24cbe4b0985d293192fe351fa133e5f4ea401f47af90bb46c21903bfe087b398 languageName: node linkType: hard @@ -2171,16 +2137,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.13.0": - version: 8.13.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.13.0" - dependencies: - "@typescript-eslint/types": "npm:8.13.0" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/50b35f3cf673aaed940613f0007f7c4558a89ebef15c49824e65b6f084b700fbf01b01a4e701e24bbe651297a39678645e739acd255255f1603867a84bef0383 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:8.17.0": version: 8.17.0 resolution: "@typescript-eslint/visitor-keys@npm:8.17.0" @@ -2201,10 +2157,20 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 +"@typescript-eslint/visitor-keys@npm:8.22.0": + version: 8.22.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.22.0" + dependencies: + "@typescript-eslint/types": "npm:8.22.0" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10c0/fd83d2feadaf79950427fbbc3d23ca01cf4646ce7e0dd515a9c881d31ec1cc768e7b8898d3af065e31df39452501a3345092581cbfccac89e89d293519540557 + languageName: node + linkType: hard + +"abbrev@npm:^3.0.0": + version: 3.0.0 + resolution: "abbrev@npm:3.0.0" + checksum: 10c0/049704186396f571650eb7b22ed3627b77a5aedf98bb83caf2eac81ca2a3e25e795394b0464cfb2d6076df3db6a5312139eac5b6a126ca296ac53c5008069c28 languageName: node linkType: hard @@ -2375,17 +2341,7 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.4" - checksum: 10c0/f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917 - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.2": +"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": version: 1.0.2 resolution: "array-buffer-byte-length@npm:1.0.2" dependencies: @@ -2445,30 +2401,18 @@ __metadata: linkType: hard "array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: 10c0/a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: 10c0/67b3f1d602bb73713265145853128b1ad77cc0f9b833c7e1e056b323fbeac41a4ff1c9c99c7b9445903caea924d9ca2450578d9011913191aa88cc3c3a4b54f4 + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/d90e04dfbc43bb96b3d2248576753d1fb2298d2d972e29ca7ad5ec621f0d9e16ff8074dae647eac4f31f4fb7d3f561a7ac005fb01a71f51705a13b5af06a7d8a languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.3.3": +"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": version: 1.3.3 resolution: "array.prototype.flatmap@npm:1.3.3" dependencies: @@ -2493,22 +2437,6 @@ __metadata: languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.22.3" - es-errors: "npm:^1.2.1" - get-intrinsic: "npm:^1.2.3" - is-array-buffer: "npm:^3.0.4" - is-shared-array-buffer: "npm:^1.0.2" - checksum: 10c0/d32754045bcb2294ade881d45140a5e52bda2321b9e98fa514797b7f0d252c4c5ab0d1edb34112652c62fa6a9398def568da63a4d7544672229afea283358c36 - languageName: node - linkType: hard - "arraybuffer.prototype.slice@npm:^1.0.4": version: 1.0.4 resolution: "arraybuffer.prototype.slice@npm:1.0.4" @@ -2546,7 +2474,7 @@ __metadata: dependencies: "@terascope/data-mate": "npm:~1.7.4" "@terascope/elasticsearch-api": "npm:~4.8.1" - "@terascope/elasticsearch-asset-apis": "npm:~1.1.0" + "@terascope/elasticsearch-asset-apis": "npm:~1.2.0" "@terascope/job-components": "npm:~1.9.3" "@terascope/teraslice-state-storage": "npm:~1.8.1" "@terascope/utils": "npm:~1.7.3" @@ -2563,6 +2491,13 @@ __metadata: languageName: node linkType: hard +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73 + languageName: node + linkType: hard + "async@npm:^3.2.3": version: 3.2.6 resolution: "async@npm:3.2.6" @@ -2776,16 +2711,16 @@ __metadata: linkType: hard "browserslist@npm:^4.24.0": - version: 4.24.2 - resolution: "browserslist@npm:4.24.2" + version: 4.24.4 + resolution: "browserslist@npm:4.24.4" dependencies: - caniuse-lite: "npm:^1.0.30001669" - electron-to-chromium: "npm:^1.5.41" - node-releases: "npm:^2.0.18" + caniuse-lite: "npm:^1.0.30001688" + electron-to-chromium: "npm:^1.5.73" + node-releases: "npm:^2.0.19" update-browserslist-db: "npm:^1.1.1" bin: browserslist: cli.js - checksum: 10c0/d747c9fb65ed7b4f1abcae4959405707ed9a7b835639f8a9ba0da2911995a6ab9b0648fd05baf2a4d4e3cf7f9fdbad56d3753f91881e365992c1d49c8d88ff7a + checksum: 10c0/db7ebc1733cf471e0b490b4f47e3e2ea2947ce417192c9246644e92c667dd56a71406cc58f62ca7587caf828364892e9952904a02b7aead752bc65b62a37cfe9 languageName: node linkType: hard @@ -2914,20 +2849,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" - dependencies: - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" - set-function-length: "npm:^1.2.1" - checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d - languageName: node - linkType: hard - -"call-bind@npm:^1.0.8": +"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": version: 1.0.8 resolution: "call-bind@npm:1.0.8" dependencies: @@ -2970,10 +2892,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001669": - version: 1.0.30001677 - resolution: "caniuse-lite@npm:1.0.30001677" - checksum: 10c0/22b4aa738b213b5d0bc820c26ba23fa265ca90a5c59776e1a686b9ab6fff9120d0825fd920c0a601a4b65056ef40d01548405feb95c8dd6083255f50c71a0864 +"caniuse-lite@npm:^1.0.30001688": + version: 1.0.30001696 + resolution: "caniuse-lite@npm:1.0.30001696" + checksum: 10c0/8060584c612b2bc232995a6e31153432de7946b5417d3b3505a3ab76e632e5568ccc7bae38f1a977f21d4fc214f9e64be829213f810694172c9109e258cb5be8 languageName: node linkType: hard @@ -3266,17 +3188,6 @@ __metadata: languageName: node linkType: hard -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583 - languageName: node - linkType: hard - "data-view-buffer@npm:^1.0.2": version: 1.0.2 resolution: "data-view-buffer@npm:1.0.2" @@ -3288,17 +3199,6 @@ __metadata: languageName: node linkType: hard -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2 - languageName: node - linkType: hard - "data-view-byte-length@npm:^1.0.2": version: 1.0.2 resolution: "data-view-byte-length@npm:1.0.2" @@ -3310,17 +3210,6 @@ __metadata: languageName: node linkType: hard -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f - languageName: node - linkType: hard - "data-view-byte-offset@npm:^1.0.1": version: 1.0.1 resolution: "data-view-byte-offset@npm:1.0.1" @@ -3357,15 +3246,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.7 - resolution: "debug@npm:4.3.7" +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7, debug@npm:~4.4.0": + version: 4.4.0 + resolution: "debug@npm:4.4.0" dependencies: ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b + checksum: 10c0/db94f1a182bf886f57b4755f85b3a74c39b5114b9377b7ab375dc2cfa3454f09490cc6c30f829df3fc8042bc8b8995f6567ce5cd96f3bc3688bd24027197d9de languageName: node linkType: hard @@ -3378,18 +3267,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:~4.4.0": - version: 4.4.0 - resolution: "debug@npm:4.4.0" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/db94f1a182bf886f57b4755f85b3a74c39b5114b9377b7ab375dc2cfa3454f09490cc6c30f829df3fc8042bc8b8995f6567ce5cd96f3bc3688bd24027197d9de - languageName: node - linkType: hard - "decompress-response@npm:^4.2.0": version: 4.2.1 resolution: "decompress-response@npm:4.2.1" @@ -3522,7 +3399,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -3622,7 +3499,7 @@ __metadata: dependencies: "@terascope/data-types": "npm:~1.7.3" "@terascope/elasticsearch-api": "npm:~4.8.1" - "@terascope/elasticsearch-asset-apis": "npm:~1.1.0" + "@terascope/elasticsearch-asset-apis": "npm:~1.2.0" "@terascope/eslint-config": "npm:~1.1.5" "@terascope/job-components": "npm:~1.9.3" "@terascope/scripts": "npm:~1.10.0" @@ -3708,10 +3585,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.41": - version: 1.5.51 - resolution: "electron-to-chromium@npm:1.5.51" - checksum: 10c0/1903552a918bfc0568a3af568b14c9ac35bcf1ec8cba33a1c50304d93195c825aaa9b82ae463fcb19805600add4c302e7d2db4d762c36e5ae6547f72ad21afdd +"electron-to-chromium@npm:^1.5.73": + version: 1.5.90 + resolution: "electron-to-chromium@npm:1.5.90" + checksum: 10c0/864715adfebb5932a78f776c99f28a50942884302b42ee6de0ab64ca135891a5a43af3a7c719a7335687c0ee201561011e37d4994558a795f67b9e44f20fc6ee languageName: node linkType: hard @@ -3784,61 +3661,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - arraybuffer.prototype.slice: "npm:^1.0.3" - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - data-view-buffer: "npm:^1.0.1" - data-view-byte-length: "npm:^1.0.1" - data-view-byte-offset: "npm:^1.0.0" - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-set-tostringtag: "npm:^2.0.3" - es-to-primitive: "npm:^1.2.1" - function.prototype.name: "npm:^1.1.6" - get-intrinsic: "npm:^1.2.4" - get-symbol-description: "npm:^1.0.2" - globalthis: "npm:^1.0.3" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.0.3" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.2" - internal-slot: "npm:^1.0.7" - is-array-buffer: "npm:^3.0.4" - is-callable: "npm:^1.2.7" - is-data-view: "npm:^1.0.1" - is-negative-zero: "npm:^2.0.3" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.3" - is-string: "npm:^1.0.7" - is-typed-array: "npm:^1.1.13" - is-weakref: "npm:^1.0.2" - object-inspect: "npm:^1.13.1" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.5" - regexp.prototype.flags: "npm:^1.5.2" - safe-array-concat: "npm:^1.1.2" - safe-regex-test: "npm:^1.0.3" - string.prototype.trim: "npm:^1.2.9" - string.prototype.trimend: "npm:^1.0.8" - string.prototype.trimstart: "npm:^1.0.8" - typed-array-buffer: "npm:^1.0.2" - typed-array-byte-length: "npm:^1.0.1" - typed-array-byte-offset: "npm:^1.0.2" - typed-array-length: "npm:^1.0.6" - unbox-primitive: "npm:^1.0.2" - which-typed-array: "npm:^1.1.15" - checksum: 10c0/d27e9afafb225c6924bee9971a7f25f20c314f2d6cb93a63cada4ac11dcf42040896a6c22e5fb8f2a10767055ed4ddf400be3b1eb12297d281726de470b75666 - languageName: node - linkType: hard - -"es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": version: 1.23.9 resolution: "es-abstract@npm:1.23.9" dependencies: @@ -3897,23 +3720,14 @@ __metadata: languageName: node linkType: hard -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: "npm:^1.2.4" - checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 - languageName: node - linkType: hard - -"es-define-property@npm:^1.0.1": +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": version: 1.0.1 resolution: "es-define-property@npm:1.0.1" checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c languageName: node linkType: hard -"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": +"es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 @@ -3945,26 +3759,15 @@ __metadata: linkType: hard "es-object-atoms@npm:^1.0.0": - version: 1.0.0 - resolution: "es-object-atoms@npm:1.0.0" + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" dependencies: es-errors: "npm:^1.3.0" - checksum: 10c0/1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4 + checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" - dependencies: - get-intrinsic: "npm:^1.2.4" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.1" - checksum: 10c0/f22aff1585eb33569c326323f0b0d175844a1f11618b86e193b386f8be0ea9474cfbe46df39c45d959f7aa8f6c06985dc51dd6bce5401645ec5a74c4ceaa836a - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.1.0": +"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": version: 2.1.0 resolution: "es-set-tostringtag@npm:2.1.0" dependencies: @@ -3976,7 +3779,7 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": +"es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -3985,17 +3788,6 @@ __metadata: languageName: node linkType: hard -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: "npm:^1.1.4" - is-date-object: "npm:^1.0.1" - is-symbol: "npm:^1.0.2" - checksum: 10c0/0886572b8dc075cb10e50c0af62a03d03a68e1e69c388bd4f10c0649ee41b1fbb24840a1b7e590b393011b5cdbe0144b776da316762653685432df37d6de60f1 - languageName: node - linkType: hard - "es-to-primitive@npm:^1.3.0": version: 1.3.0 resolution: "es-to-primitive@npm:1.3.0" @@ -4480,15 +4272,15 @@ __metadata: linkType: hard "fast-glob@npm:^3.2.12, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" dependencies: "@nodelib/fs.stat": "npm:^2.0.2" "@nodelib/fs.walk": "npm:^1.2.3" glob-parent: "npm:^5.1.2" merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 + micromatch: "npm:^4.0.8" + checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe languageName: node linkType: hard @@ -4507,9 +4299,9 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.0.3 - resolution: "fast-uri@npm:3.0.3" - checksum: 10c0/4b2c5ce681a062425eae4f15cdc8fc151fd310b2f69b1f96680677820a8b49c3cd6e80661a406e19d50f0c40a3f8bffdd458791baf66f4a879d80be28e10a320 + version: 3.0.6 + resolution: "fast-uri@npm:3.0.6" + checksum: 10c0/74a513c2af0584448aee71ce56005185f81239eab7a2343110e5bad50c39ad4fb19c5a6f99783ead1cac7ccaf3461a6034fda89fffa2b30b6d99b9f21c2f9d29 languageName: node linkType: hard @@ -4523,11 +4315,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" + version: 1.19.0 + resolution: "fastq@npm:1.19.0" dependencies: reusify: "npm:^1.0.4" - checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 + checksum: 10c0/d6a001638f1574a696660fcbba5300d017760432372c801632c325ca7c16819604841c92fd3ccadcdacec0966ca336363a5ff57bc5f0be335d8ea7ac6087b98f languageName: node linkType: hard @@ -4550,14 +4342,14 @@ __metadata: linkType: hard "fdir@npm:^6.4.2": - version: 6.4.2 - resolution: "fdir@npm:6.4.2" + version: 6.4.3 + resolution: "fdir@npm:6.4.3" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 10c0/34829886f34a3ca4170eca7c7180ec4de51a3abb4d380344063c0ae2e289b11d2ba8b724afee974598c83027fea363ff598caf2b51bc4e6b1e0d8b80cc530573 + checksum: 10c0/d13c10120e9625adf21d8d80481586200759928c19405a816b77dd28eaeb80e7c59c5def3e2941508045eb06d34eb47fad865ccc8bf98e6ab988bb0ed160fb6f languageName: node linkType: hard @@ -4683,18 +4475,18 @@ __metadata: linkType: hard "flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: 10c0/24cc735e74d593b6c767fe04f2ef369abe15b62f6906158079b9874bdb3ee5ae7110bb75042e70cd3f99d409d766f357caf78d5ecee9780206f5fdc5edbad334 languageName: node linkType: hard "for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" + version: 0.3.4 + resolution: "for-each@npm:0.3.4" dependencies: - is-callable: "npm:^1.1.3" - checksum: 10c0/22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa + is-callable: "npm:^1.2.7" + checksum: 10c0/6b2016c0a0fe3107c70a233923cac74f07bedb5a1847636039fa6bcc3df09aefa554cfec23c3342ad365acac1f95e799d9f8e220cb82a4c7b8a84f969234302f languageName: node linkType: hard @@ -4815,19 +4607,7 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - functions-have-names: "npm:^1.2.3" - checksum: 10c0/9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b - languageName: node - linkType: hard - -"function.prototype.name@npm:^1.1.8": +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": version: 1.1.8 resolution: "function.prototype.name@npm:1.1.8" dependencies: @@ -4898,20 +4678,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" - dependencies: - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" - checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7": +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7": version: 1.2.7 resolution: "get-intrinsic@npm:1.2.7" dependencies: @@ -4989,17 +4756,6 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.5" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - checksum: 10c0/867be6d63f5e0eb026cb3b0ef695ec9ecf9310febb041072d2e142f260bd91ced9eeb426b3af98791d1064e324e653424afa6fd1af17dee373bea48ae03162bc - languageName: node - linkType: hard - "get-symbol-description@npm:^1.1.0": version: 1.1.0 resolution: "get-symbol-description@npm:1.1.0" @@ -5096,7 +4852,7 @@ __metadata: languageName: node linkType: hard -"globalthis@npm:^1.0.3, globalthis@npm:^1.0.4": +"globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" dependencies: @@ -5120,16 +4876,7 @@ __metadata: languageName: node linkType: hard -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.1.3" - checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 - languageName: node - linkType: hard - -"gopd@npm:^1.2.0": +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead @@ -5207,10 +4954,10 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b +"has-bigints@npm:^1.0.2": + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 10c0/2de0cdc4a1ccf7a1e75ffede1876994525ac03cc6f5ae7392d3415dd475cd9eee5bceec63669ab61aa997ff6cceebb50ef75561c7002bed8988de2b9d1b40788 languageName: node linkType: hard @@ -5237,13 +4984,6 @@ __metadata: languageName: node linkType: hard -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205 - languageName: node - linkType: hard - "has-proto@npm:^1.2.0": version: 1.2.0 resolution: "has-proto@npm:1.2.0" @@ -5253,21 +4993,14 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 - languageName: node - linkType: hard - -"has-symbols@npm:^1.1.0": +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": version: 1.1.0 resolution: "has-symbols@npm:1.1.0" checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": +"has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -5276,7 +5009,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -5292,7 +5025,7 @@ __metadata: languageName: node linkType: hard -"hpagent@npm:^1.0.0, hpagent@npm:^1.2.0": +"hpagent@npm:^1.2.0": version: 1.2.0 resolution: "hpagent@npm:1.2.0" checksum: 10c0/505ef42e5e067dba701ea21e7df9fa73f6f5080e59d53680829827d34cd7040f1ecf7c3c8391abe9df4eb4682ef4a4321608836b5b70a61b88c1b3a03d77510b @@ -5481,17 +5214,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" - dependencies: - es-errors: "npm:^1.3.0" - hasown: "npm:^2.0.0" - side-channel: "npm:^1.0.4" - checksum: 10c0/f8b294a4e6ea3855fc59551bbf35f2b832cf01fd5e6e2a97f5c201a071cc09b49048f856e484b67a6c721da5e55736c5b6ddafaf19e2dbeb4a3ff1821680de6c - languageName: node - linkType: hard - "internal-slot@npm:^1.1.0": version: 1.1.0 resolution: "internal-slot@npm:1.1.0" @@ -5570,17 +5292,7 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.1" - checksum: 10c0/42a49d006cc6130bc5424eae113e948c146f31f9d24460fc0958f855d9d810e6fd2e4519bf19aab75179af9c298ea6092459d8cafdec523cd19e529b26eab860 - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.5": +"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": version: 3.0.5 resolution: "is-array-buffer@npm:3.0.5" dependencies: @@ -5599,20 +5311,15 @@ __metadata: linkType: hard "is-async-function@npm:^2.0.0": - version: 2.0.0 - resolution: "is-async-function@npm:2.0.0" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/787bc931576aad525d751fc5ce211960fe91e49ac84a5c22d6ae0bc9541945fbc3f686dc590c3175722ce4f6d7b798a93f6f8ff4847fdb2199aea6f4baf5d668 - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" + version: 2.1.1 + resolution: "is-async-function@npm:2.1.1" dependencies: - has-bigints: "npm:^1.0.1" - checksum: 10c0/eb9c88e418a0d195ca545aff2b715c9903d9b0a5033bc5922fec600eb0c3d7b1ee7f882dbf2e0d5a6e694e42391be3683e4368737bd3c4a77f8ac293e7773696 + async-function: "npm:^1.0.0" + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10c0/d70c236a5e82de6fc4d44368ffd0c2fee2b088b893511ce21e679da275a5ecc6015ff59a7d7e1bdd7ca39f71a8dbdd253cf8cce5c6b3c91cdd5b42b5ce677298 languageName: node linkType: hard @@ -5625,16 +5332,6 @@ __metadata: languageName: node linkType: hard -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/6090587f8a8a8534c0f816da868bc94f32810f08807aa72fa7e79f7e11c466d281486ffe7a788178809c2aa71fe3e700b167fe80dd96dad68026bfff8ebf39f7 - languageName: node - linkType: hard - "is-boolean-object@npm:^1.2.1": version: 1.2.1 resolution: "is-boolean-object@npm:1.2.1" @@ -5645,7 +5342,7 @@ __metadata: languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": +"is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f @@ -5661,25 +5358,16 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1": - version: 2.15.1 - resolution: "is-core-module@npm:2.15.1" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" dependencies: hasown: "npm:^2.0.2" - checksum: 10c0/53432f10c69c40bfd2fa8914133a68709ff9498c86c3bf5fca3cdf3145a56fd2168cbf4a43b29843a6202a120a5f9c5ffba0a4322e1e3441739bc0b641682612 + checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd languageName: node linkType: hard -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" - dependencies: - is-typed-array: "npm:^1.1.13" - checksum: 10c0/a3e6ec84efe303da859107aed9b970e018e2bee7ffcb48e2f8096921a493608134240e672a2072577e5f23a729846241d9634806e8a0e51d9129c56d5f65442d - languageName: node - linkType: hard - -"is-data-view@npm:^1.0.2": +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": version: 1.0.2 resolution: "is-data-view@npm:1.0.2" dependencies: @@ -5690,16 +5378,7 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/eed21e5dcc619c48ccef804dfc83a739dbb2abee6ca202838ee1bd5f760fe8d8a93444f0d49012ad19bb7c006186e2884a1b92f6e1c056da7fd23d0a9ad5992e - languageName: node - linkType: hard - -"is-date-object@npm:^1.1.0": +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": version: 1.1.0 resolution: "is-date-object@npm:1.1.0" dependencies: @@ -5749,11 +5428,14 @@ __metadata: linkType: hard "is-generator-function@npm:^1.0.10": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" + version: 1.1.0 + resolution: "is-generator-function@npm:1.1.0" dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.0" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10c0/fdfa96c8087bf36fc4cd514b474ba2ff404219a4dd4cfa6cf5426404a1eed259bdcdb98f082a71029a48d01f27733e3436ecc6690129a7ec09cb0434bee03a2a languageName: node linkType: hard @@ -5780,13 +5462,6 @@ __metadata: languageName: node linkType: hard -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e - languageName: node - linkType: hard - "is-node-process@npm:^1.2.0": version: 1.2.0 resolution: "is-node-process@npm:1.2.0" @@ -5794,15 +5469,6 @@ __metadata: languageName: node linkType: hard -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/aad266da1e530f1804a2b7bd2e874b4869f71c98590b3964f9d06cc9869b18f8d1f4778f838ecd2a11011bce20aeecb53cb269ba916209b79c24580416b74b1b - languageName: node - linkType: hard - "is-number-object@npm:^1.1.1": version: 1.1.1 resolution: "is-number-object@npm:1.1.1" @@ -5834,16 +5500,6 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/bb72aae604a69eafd4a82a93002058c416ace8cde95873589a97fc5dac96a6c6c78a9977d487b7b95426a8f5073969124dd228f043f9f604f041f32fcc465fc1 - languageName: node - linkType: hard - "is-regex@npm:^1.2.1": version: 1.2.1 resolution: "is-regex@npm:1.2.1" @@ -5863,15 +5519,6 @@ __metadata: languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7 - languageName: node - linkType: hard - "is-shared-array-buffer@npm:^1.0.4": version: 1.0.4 resolution: "is-shared-array-buffer@npm:1.0.4" @@ -5902,16 +5549,7 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/905f805cbc6eedfa678aaa103ab7f626aac9ebbdc8737abb5243acaa61d9820f8edc5819106b8fcd1839e33db21de9f0116ae20de380c8382d16dc2a601921f6 - languageName: node - linkType: hard - -"is-string@npm:^1.1.1": +"is-string@npm:^1.0.7, is-string@npm:^1.1.1": version: 1.1.1 resolution: "is-string@npm:1.1.1" dependencies: @@ -5921,15 +5559,6 @@ __metadata: languageName: node linkType: hard -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: "npm:^1.0.2" - checksum: 10c0/9381dd015f7c8906154dbcbf93fad769de16b4b961edc94f88d26eb8c555935caa23af88bda0c93a18e65560f6d7cca0fd5a3f8a8e1df6f1abbb9bead4502ef7 - languageName: node - linkType: hard - "is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": version: 1.1.1 resolution: "is-symbol@npm:1.1.1" @@ -5941,16 +5570,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.13": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" - dependencies: - which-typed-array: "npm:^1.1.14" - checksum: 10c0/fa5cb97d4a80e52c2cc8ed3778e39f175a1a2ae4ddf3adae3187d69586a1fd57cfa0b095db31f66aa90331e9e3da79184cea9c6abdcd1abc722dc3c3edd51cca - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": version: 1.1.15 resolution: "is-typed-array@npm:1.1.15" dependencies: @@ -5980,16 +5600,7 @@ __metadata: languageName: node linkType: hard -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - checksum: 10c0/1545c5d172cb690c392f2136c23eec07d8d78a7f57d0e41f10078aa4f5daf5d7f57b6513a67514ab4f073275ad00c9822fc8935e00229d0a2089e1c02685d4b1 - languageName: node - linkType: hard - -"is-weakref@npm:^1.1.0": +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": version: 1.1.0 resolution: "is-weakref@npm:1.1.0" dependencies: @@ -5999,12 +5610,12 @@ __metadata: linkType: hard "is-weakset@npm:^2.0.3": - version: 2.0.3 - resolution: "is-weakset@npm:2.0.3" + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" dependencies: - call-bind: "npm:^1.0.7" - get-intrinsic: "npm:^1.2.4" - checksum: 10c0/8ad6141b6a400e7ce7c7442a13928c676d07b1f315ab77d9912920bf5f4170622f43126f111615788f26c3b1871158a6797c862233124507db0bcc33a9537d1a + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10c0/6491eba08acb8dc9532da23cb226b7d0192ede0b88f16199e592e4769db0a077119c1f5d2283d1e0d16d739115f70046e887e477eb0e66cd90e1bb29f28ba647 languageName: node linkType: hard @@ -6696,11 +6307,11 @@ __metadata: linkType: hard "jsesc@npm:^3.0.2": - version: 3.0.2 - resolution: "jsesc@npm:3.0.2" + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" bin: jsesc: bin/jsesc - checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 + checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 languageName: node linkType: hard @@ -6883,9 +6494,9 @@ __metadata: linkType: hard "ky@npm:^1.2.0": - version: 1.7.2 - resolution: "ky@npm:1.7.2" - checksum: 10c0/ce42c0c5eec839dd13fd14f0b60fb6f56c7c8a0df8e228597f5206b1db2f3608f3a0e477a4c002c838d21b8e65872632ef4655e9eb8508455b3c3b296af40ebc + version: 1.7.4 + resolution: "ky@npm:1.7.4" + checksum: 10c0/8b28b85cbee6d3e073ff796b92661f4bf155ec9b9a131411de1c34fb2f89f8507e67ff3df369e3c6d18714134774e8735e88cba72b19d005a09112b800d14474 languageName: node linkType: hard @@ -7151,7 +6762,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4, micromatch@npm:~4.0.8": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8, micromatch@npm:~4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -7455,21 +7066,21 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27 +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa languageName: node linkType: hard "nopt@npm:^8.0.0": - version: 8.0.0 - resolution: "nopt@npm:8.0.0" + version: 8.1.0 + resolution: "nopt@npm:8.1.0" dependencies: - abbrev: "npm:^2.0.0" + abbrev: "npm:^3.0.0" bin: nopt: bin/nopt.js - checksum: 10c0/19cb986f79abaca2d0f0b560021da7b32ee6fcc3de48f3eaeb0c324d36755c17754f886a754c091f01f740c17caf7d6aea8237b7fbaf39f476ae5e30a249f18f + checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef languageName: node linkType: hard @@ -7513,10 +7124,10 @@ __metadata: languageName: node linkType: hard -"oauth4webapi@npm:^3.1.1": - version: 3.1.2 - resolution: "oauth4webapi@npm:3.1.2" - checksum: 10c0/9661df38aa1ad3c71d63831538277d877606c272dd76f5ba7c263d826d48521d62e678fe8dde5cbe6d1673457a1afbf3fbf44aa1adea480d25e37fd73ce01907 +"oauth4webapi@npm:^3.1.4": + version: 3.1.4 + resolution: "oauth4webapi@npm:3.1.4" + checksum: 10c0/81e471750f4903121efcef4edb1b73d725ae6d3b9646a0febd45e29ed05b62faba14a69e433181eae441913684a02d681c4e561dcac578de9cb45dd719f53464 languageName: node linkType: hard @@ -7527,13 +7138,6 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.1": - version: 1.13.2 - resolution: "object-inspect@npm:1.13.2" - checksum: 10c0/b97835b4c91ec37b5fd71add84f21c3f1047d1d155d00c0fcd6699516c256d4fcc6ff17a1aced873197fe447f91a3964178fd2a67a1ee2120cdaf60e81a050b4 - languageName: node - linkType: hard - "object-inspect@npm:^1.13.3": version: 1.13.3 resolution: "object-inspect@npm:1.13.3" @@ -7548,19 +7152,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" - dependencies: - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - has-symbols: "npm:^1.0.3" - object-keys: "npm:^1.1.1" - checksum: 10c0/60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 - languageName: node - linkType: hard - -"object.assign@npm:^4.1.7": +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": version: 4.1.7 resolution: "object.assign@npm:4.1.7" dependencies: @@ -7608,18 +7200,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.6, object.values@npm:^1.2.0": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3 - languageName: node - linkType: hard - -"object.values@npm:^1.2.1": +"object.values@npm:^1.1.6, object.values@npm:^1.2.0, object.values@npm:^1.2.1": version: 1.2.1 resolution: "object.values@npm:1.2.1" dependencies: @@ -7632,9 +7213,9 @@ __metadata: linkType: hard "obliterator@npm:^2.0.1": - version: 2.0.4 - resolution: "obliterator@npm:2.0.4" - checksum: 10c0/ff2c10d4de7d62cd1d588b4d18dfc42f246c9e3a259f60d5716f7f88e5b3a3f79856b3207db96ec9a836a01d0958a21c15afa62a3f4e73a1e0b75f2c2f6bab40 + version: 2.0.5 + resolution: "obliterator@npm:2.0.5" + checksum: 10c0/36e67d88271c51aa6412a7d449d6c60ae6387176f94dbc557eea67456bf6ccedbcbcecdb1e56438aa4f4694f68f531b3bf2be87b019e2f69961b144bec124e70 languageName: node linkType: hard @@ -7657,12 +7238,12 @@ __metadata: linkType: hard "openid-client@npm:^6.1.3": - version: 6.1.3 - resolution: "openid-client@npm:6.1.3" + version: 6.1.7 + resolution: "openid-client@npm:6.1.7" dependencies: jose: "npm:^5.9.6" - oauth4webapi: "npm:^3.1.1" - checksum: 10c0/a4643a6b93416c225633b2f3901dfc8c7a9f4c45e60b21dec0b0921b0654b0aea4fce96f40c945c76155038024e812bfe338afd449de8d3597db7d1a61b2236b + oauth4webapi: "npm:^3.1.4" + checksum: 10c0/195d26897bf6eb95cfd5b9e91e8bcac46c56b0570713cef6f74b78f9d3a23df0869b2f26e7d78ae6d511e8f3b50f33298aa1bdc7bc32a46d41ca7d4ea10df460 languageName: node linkType: hard @@ -7995,7 +7576,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 @@ -8073,9 +7654,11 @@ __metadata: linkType: hard "point-in-polygon-hao@npm:^1.1.0": - version: 1.1.0 - resolution: "point-in-polygon-hao@npm:1.1.0" - checksum: 10c0/2f992143b7b7ba095e43e98d6df6c5ad2d381f03fe6ac54e0f84aa0032fccf3996906ba06b8541014c6d59ee4ecef934c9356b9e34b3dc450e6ee0f13fe1f39e + version: 1.2.4 + resolution: "point-in-polygon-hao@npm:1.2.4" + dependencies: + robust-predicates: "npm:^3.0.2" + checksum: 10c0/12badef8b15216acdae7d609a8aca1b916d6a9cac2f53ace2928e3b521bee57224489ea8fba41d001c0c05c50e64152c175e3d6583d8cad6fe7af929f082b49a languageName: node linkType: hard @@ -8114,11 +7697,11 @@ __metadata: linkType: hard "pretty-ms@npm:^9.0.0": - version: 9.1.0 - resolution: "pretty-ms@npm:9.1.0" + version: 9.2.0 + resolution: "pretty-ms@npm:9.2.0" dependencies: parse-ms: "npm:^4.0.0" - checksum: 10c0/fd111aad8800a04dfd654e6016da69bdaa6fc6a4c280f8e727cffd8b5960558e94942f1a94d4aa6e4d179561a0fbb0366a9ebe0ccefbbb0f8ff853b129cdefb9 + checksum: 10c0/ab6d066f90e9f77020426986e1b018369f41575674544c539aabec2e63a20fec01166d8cf6571d0e165ad11cfe5a8134a2a48a36d42ab291c59c6deca5264cbb languageName: node linkType: hard @@ -8206,9 +7789,11 @@ __metadata: linkType: hard "psl@npm:^1.1.28": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 10c0/6a3f805fdab9442f44de4ba23880c4eba26b20c8e8e0830eff1cb31007f6825dace61d17203c58bfe36946842140c97a1ba7f67bc63ca2d88a7ee052b65d97ab + version: 1.15.0 + resolution: "psl@npm:1.15.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10c0/d8d45a99e4ca62ca12ac3c373e63d80d2368d38892daa40cfddaa1eb908be98cd549ac059783ef3a56cfd96d57ae8e2fd9ae53d1378d90d42bc661ff924e102a languageName: node linkType: hard @@ -8236,7 +7821,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 @@ -8348,18 +7933,6 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.2": - version: 1.5.3 - resolution: "regexp.prototype.flags@npm:1.5.3" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.2" - checksum: 10c0/e1a7c7dc42cc91abf73e47a269c4b3a8f225321b7f617baa25821f6a123a91d23a73b5152f21872c566e699207e1135d075d2251cd3e84cc96d82a910adf6020 - languageName: node - linkType: hard - "regexp.prototype.flags@npm:^1.5.3": version: 1.5.4 resolution: "regexp.prototype.flags@npm:1.5.4" @@ -8375,11 +7948,11 @@ __metadata: linkType: hard "registry-auth-token@npm:^5.0.2": - version: 5.0.2 - resolution: "registry-auth-token@npm:5.0.2" + version: 5.0.3 + resolution: "registry-auth-token@npm:5.0.3" dependencies: "@pnpm/npm-conf": "npm:^2.1.0" - checksum: 10c0/20fc2225681cc54ae7304b31ebad5a708063b1949593f02dfe5fb402bc1fc28890cecec6497ea396ba86d6cca8a8480715926dfef8cf1f2f11e6f6cc0a1b4bde + checksum: 10c0/f92313032fae7dca787aa878cc7fa8499ee5da960802777f6b9f168a5d8f24a97fcfa0cf30a604bcf38b050a5db5f034b1e2fec18a3326f41822a6aff9514c85 languageName: node linkType: hard @@ -8481,22 +8054,22 @@ __metadata: linkType: hard "resolve.exports@npm:^2.0.0": - version: 2.0.2 - resolution: "resolve.exports@npm:2.0.2" - checksum: 10c0/cc4cffdc25447cf34730f388dca5021156ba9302a3bad3d7f168e790dc74b2827dff603f1bc6ad3d299bac269828dca96dd77e036dc9fba6a2a1807c47ab5c98 + version: 2.0.3 + resolution: "resolve.exports@npm:2.0.3" + checksum: 10c0/1ade1493f4642a6267d0a5e68faeac20b3d220f18c28b140343feb83694d8fed7a286852aef43689d16042c61e2ddb270be6578ad4a13990769e12065191200d languageName: node linkType: hard "resolve@npm:^1.20.0, resolve@npm:^1.22.4": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" + version: 1.22.10 + resolution: "resolve@npm:1.22.10" dependencies: - is-core-module: "npm:^2.13.0" + is-core-module: "npm:^2.16.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a + checksum: 10c0/8967e1f4e2cc40f79b7e080b4582b9a8c5ee36ffb46041dccb20e6461161adf69f843b43067b4a375de926a2cd669157e29a29578191def399dd5ef89a1b5203 languageName: node linkType: hard @@ -8514,15 +8087,15 @@ __metadata: linkType: hard "resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" dependencies: - is-core-module: "npm:^2.13.0" + is-core-module: "npm:^2.16.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 + checksum: 10c0/52a4e505bbfc7925ac8f4cd91fd8c4e096b6a89728b9f46861d3b405ac9a1ccf4dcbf8befb4e89a2e11370dacd0160918163885cbc669369590f2f31f4c58939 languageName: node linkType: hard @@ -8563,9 +8136,9 @@ __metadata: linkType: hard "rfc4648@npm:^1.3.0": - version: 1.5.3 - resolution: "rfc4648@npm:1.5.3" - checksum: 10c0/0ddc47a752b7c0bda45f26e099ac39752562af0962895b86f2861f38e083630bd7215dd09637380e0446e6f60acf4fdbc93330d728772d431e6f4c638795cb4c + version: 1.5.4 + resolution: "rfc4648@npm:1.5.4" + checksum: 10c0/8683e82ed9c3cb23844720d04eaeee12025146bfdfdf250b1cce80d56e16c6431530ba3033cbb0e7ca3a25223107847f14c6cac11a255ea7d219dc7ba11cd43d languageName: node linkType: hard @@ -8580,6 +8153,13 @@ __metadata: languageName: node linkType: hard +"robust-predicates@npm:^3.0.2": + version: 3.0.2 + resolution: "robust-predicates@npm:3.0.2" + checksum: 10c0/4ecd53649f1c2d49529c85518f2fa69ffb2f7a4453f7fd19c042421c7b4d76c3efb48bc1c740c8f7049346d7cb58cf08ee0c9adaae595cc23564d360adb1fde4 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -8589,18 +8169,6 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.7" - get-intrinsic: "npm:^1.2.4" - has-symbols: "npm:^1.0.3" - isarray: "npm:^2.0.5" - checksum: 10c0/12f9fdb01c8585e199a347eacc3bae7b5164ae805cdc8c6707199dbad5b9e30001a50a43c4ee24dc9ea32dbb7279397850e9208a7e217f4d8b1cf5d90129dec9 - languageName: node - linkType: hard - "safe-array-concat@npm:^1.1.3": version: 1.1.3 resolution: "safe-array-concat@npm:1.1.3" @@ -8638,18 +8206,7 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-regex: "npm:^1.1.4" - checksum: 10c0/900bf7c98dc58f08d8523b7012b468e4eb757afa624f198902c0643d7008ba777b0bdc35810ba0b758671ce887617295fb742b3f3968991b178ceca54cb07603 - languageName: node - linkType: hard - -"safe-regex-test@npm:^1.1.0": +"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex-test@npm:1.1.0" dependencies: @@ -8674,6 +8231,13 @@ __metadata: languageName: node linkType: hard +"secure-json-parse@npm:^3.0.1": + version: 3.0.2 + resolution: "secure-json-parse@npm:3.0.2" + checksum: 10c0/4c9c005e7fdd8528df35fcdec41dc4e8e15820ce52de19f8102da808f9400a9ed8c0a28971e3efe24b001ee1e60296af553f12bbaab81a152f702dd00af2092d + languageName: node + linkType: hard + "seek-bzip@npm:^1.0.5": version: 1.0.6 resolution: "seek-bzip@npm:1.0.6" @@ -8686,7 +8250,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.3, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:~7.6.3": +"semver@npm:7.6.3, semver@npm:~7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -8704,7 +8268,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:~7.7.0": +"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:~7.7.0": version: 7.7.0 resolution: "semver@npm:7.7.0" bin: @@ -8713,7 +8277,7 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.1, set-function-length@npm:^1.2.2": +"set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -8841,18 +8405,6 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - object-inspect: "npm:^1.13.1" - checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f - languageName: node - linkType: hard - "side-channel@npm:^1.1.0": version: 1.1.0 resolution: "side-channel@npm:1.1.0" @@ -9168,30 +8720,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.9": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.0" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/dcef1a0fb61d255778155006b372dff8cc6c4394bc39869117e4241f41a2c52899c0d263ffc7738a1f9e61488c490b05c0427faa15151efad721e1a9fb2663c2 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/0a0b54c17c070551b38e756ae271865ac6cc5f60dabf2e7e343cceae7d9b02e1a1120a824e090e79da1b041a74464e8477e2da43e2775c85392be30a6f60963c - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.9": +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": version: 1.0.9 resolution: "string.prototype.trimend@npm:1.0.9" dependencies: @@ -9595,7 +9124,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.6.2, tslib@npm:^2.8.1": +"tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 @@ -9641,17 +9170,6 @@ __metadata: languageName: node linkType: hard -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da - languageName: node - linkType: hard - "typed-array-buffer@npm:^1.0.3": version: 1.0.3 resolution: "typed-array-buffer@npm:1.0.3" @@ -9663,19 +9181,6 @@ __metadata: languageName: node linkType: hard -"typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/fcebeffb2436c9f355e91bd19e2368273b88c11d1acc0948a2a306792f1ab672bce4cfe524ab9f51a0505c9d7cd1c98eff4235c4f6bfef6a198f6cfc4ff3d4f3 - languageName: node - linkType: hard - "typed-array-byte-length@npm:^1.0.3": version: 1.0.3 resolution: "typed-array-byte-length@npm:1.0.3" @@ -9689,20 +9194,6 @@ __metadata: languageName: node linkType: hard -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/d2628bc739732072e39269389a758025f75339de2ed40c4f91357023c5512d237f255b633e3106c461ced41907c1bf9a533c7e8578066b0163690ca8bc61b22f - languageName: node - linkType: hard - "typed-array-byte-offset@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-byte-offset@npm:1.0.4" @@ -9718,20 +9209,6 @@ __metadata: languageName: node linkType: hard -"typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - possible-typed-array-names: "npm:^1.0.0" - checksum: 10c0/74253d7dc488eb28b6b2711cf31f5a9dcefc9c41b0681fd1c178ed0a1681b4468581a3626d39cd4df7aee3d3927ab62be06aa9ca74e5baf81827f61641445b77 - languageName: node - linkType: hard - "typed-array-length@npm:^1.0.7": version: 1.0.7 resolution: "typed-array-length@npm:1.0.7" @@ -9820,18 +9297,6 @@ __metadata: languageName: node linkType: hard -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - has-bigints: "npm:^1.0.2" - has-symbols: "npm:^1.0.3" - which-boxed-primitive: "npm:^1.0.2" - checksum: 10c0/81ca2e81134167cc8f75fa79fbcc8a94379d6c61de67090986a2273850989dd3bae8440c163121b77434b68263e34787a675cbdcb34bb2f764c6b9c843a11b66 - languageName: node - linkType: hard - "unbox-primitive@npm:^1.1.0": version: 1.1.0 resolution: "unbox-primitive@npm:1.1.0" @@ -9854,13 +9319,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.8": - version: 6.19.8 - resolution: "undici-types@npm:6.19.8" - checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 - languageName: node - linkType: hard - "undici-types@npm:~6.20.0": version: 6.20.0 resolution: "undici-types@npm:6.20.0" @@ -9868,10 +9326,10 @@ __metadata: languageName: node linkType: hard -"undici@npm:^6.12.0": - version: 6.20.1 - resolution: "undici@npm:6.20.1" - checksum: 10c0/b2c8d5adcd226c53d02f9270e4cac277256a7147cf310af319369ec6f87651ca46b2960366cb1339a6dac84d937e01e8cdbec5cb468f1f1ce5e9490e438d7222 +"undici@npm:^6.21.1": + version: 6.21.1 + resolution: "undici@npm:6.21.1" + checksum: 10c0/d604080e4f8db89b35a63b483b5f96a5f8b19ec9f716e934639345449405809d2997e1dd7212d67048f210e54534143384d712bd9075e4394f0788895ef9ca8e languageName: node linkType: hard @@ -9915,16 +9373,16 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.1.1": - version: 1.1.1 - resolution: "update-browserslist-db@npm:1.1.1" + version: 1.1.2 + resolution: "update-browserslist-db@npm:1.1.2" dependencies: escalade: "npm:^3.2.0" - picocolors: "npm:^1.1.0" + picocolors: "npm:^1.1.1" peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10c0/536a2979adda2b4be81b07e311bd2f3ad5e978690987956bc5f514130ad50cac87cd22c710b686d79731e00fbee8ef43efe5fcd72baa241045209195d43dcc80 + checksum: 10c0/9cb353998d6d7d6ba1e46b8fa3db888822dd972212da4eda609d185eb5c3557a93fd59780ceb757afd4d84240518df08542736969e6a5d6d6ce2d58e9363aac6 languageName: node linkType: hard @@ -10042,19 +9500,6 @@ __metadata: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 10c0/0a62a03c00c91dd4fb1035b2f0733c341d805753b027eebd3a304b9cb70e8ce33e25317add2fe9b5fea6f53a175c0633ae701ff812e604410ddd049777cd435e - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": version: 1.1.1 resolution: "which-boxed-primitive@npm:1.1.1" @@ -10101,19 +9546,6 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-tostringtag: "npm:^1.0.2" - checksum: 10c0/4465d5348c044032032251be54d8988270e69c6b7154f8fcb2a47ff706fe36f7624b3a24246b8d9089435a8f4ec48c1c1025c5d6b499456b9e5eff4f48212983 - languageName: node - linkType: hard - "which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18": version: 1.1.18 resolution: "which-typed-array@npm:1.1.18"