diff --git a/.changeset/lemon-bears-drive.md b/.changeset/lemon-bears-drive.md new file mode 100644 index 000000000..8bcf2936a --- /dev/null +++ b/.changeset/lemon-bears-drive.md @@ -0,0 +1,14 @@ +--- +'@flatfile/plugin-delimiter-extractor': minor +'@flatfile/plugin-export-workbook': minor +'@flatfile/bundler-config-rollup': minor +'@flatfile/plugin-export-delimited-zip': minor +'@flatfile/plugin-record-hook': minor +'@flatfile/plugin-export-pivot-table': minor +'@flatfile/plugin-rollout': minor +'@flatfile/plugin-dedupe': minor +--- + +This release introduces the @flatfile/plugin-export-delimited-zip plugin. This plugin runs on a Workbook-level action to export the Workbook's Sheets as CSV files in a Zip file and uploaded back to Flatfile. + +Additionally, this PR updates some documentation. diff --git a/bundlers/rollup-config/index.mjs b/bundlers/rollup-config/index.mjs index 1e7ef2682..a5789812f 100644 --- a/bundlers/rollup-config/index.mjs +++ b/bundlers/rollup-config/index.mjs @@ -35,12 +35,16 @@ function commonPlugins(browser, umd = false) { export function buildConfig({ external = [], - includeNode = true, - includeBrowser = true, - includeDefinition = true, - includeUmd = false, + includeNode = false, + includeBrowser = false, + includeDefinition = false, + includeUmd = true, umdConfig = { name: undefined, external: [] }, }) { + if (includeUmd && !umdConfig.name) { + throw new Error('umdConfig.name is required when includeUmd is true') + } + return [ // Node.js build ...(includeNode diff --git a/export/delimited-zip/README.MD b/export/delimited-zip/README.MD new file mode 100644 index 000000000..f9cf502eb --- /dev/null +++ b/export/delimited-zip/README.MD @@ -0,0 +1,61 @@ + + +The `@flatfile/plugin-export-delimited-zip` plugin exports data from Flatfile sheets to delimited files (e.g., CSV) and compresses them into a ZIP file. This plugin provides an efficient way to download and package your data from Flatfile workbooks. + +**Event Type:** +`job:ready` + + + + +> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](/docs/orchestration/listeners#listener-types) + + + +## Parameters + +#### `job` - `string` +The job name to trigger the export. Default: 'downloadDelimited' + +#### `delimiter` - `string` +The delimiter to use in the exported files. Default: ',' + +#### `fileExtension` - `string` +The file extension for the exported files. Default: 'csv' + +#### `debug` - `boolean` - (optional) +Enable debug logging. Default: false + + + +## API Calls + +- `api.jobs.ack` +- `api.jobs.complete` +- `api.jobs.fail` +- `api.sheets.list` +- `api.records.get` +- `api.files.upload` + + + +## Usage + +**install** +```bash +npm install @flatfile/plugin-export-delimited-zip +``` + +**listener.ts** +```typescript +import type { FlatfileListener } from '@flatfile/listener' +import { exportDelimitedZip } from '@flatfile/plugin-export-delimited-zip' + +export default function (listener: FlatfileListener) { + listener.use(exportDelimitedZip({ + job: 'export-delimited-zip', + delimiter: ',', + fileExtension: 'csv', + })) +} +``` diff --git a/export/delimited-zip/jest.config.js b/export/delimited-zip/jest.config.js new file mode 100644 index 000000000..e6d7ca40b --- /dev/null +++ b/export/delimited-zip/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + testEnvironment: 'node', + + transform: { + '^.+\\.tsx?$': 'ts-jest', + }, + setupFiles: ['../../test/dotenv-config.js'], + setupFilesAfterEnv: [ + '../../test/betterConsoleLog.js', + '../../test/unit.cleanup.js', + ], + testTimeout: 60_000, + globalSetup: '../../test/setup-global.js', + forceExit: true, + passWithNoTests: true, +} diff --git a/export/delimited-zip/package.json b/export/delimited-zip/package.json new file mode 100644 index 000000000..c404f7407 --- /dev/null +++ b/export/delimited-zip/package.json @@ -0,0 +1,81 @@ +{ + "name": "@flatfile/plugin-export-delimited-zip", + "version": "0.0.0", + "url": "https://github.com/FlatFilers/flatfile-plugins/tree/main/export/delimited-zip", + "description": "A Flatfile plugin for exporting Workbooks to delimited files and zipping them together", + "registryMetadata": { + "category": "export" + }, + "type": "module", + "engines": { + "node": ">= 16" + }, + "browserslist": [ + "> 0.5%", + "last 2 versions", + "not dead" + ], + "exports": { + ".": { + "node": { + "types": { + "import": "./dist/index.d.ts", + "require": "./dist/index.d.cts" + }, + "import": "./dist/index.js", + "require": "./dist/index.cjs" + }, + "browser": { + "types": { + "import": "./dist/index.d.ts", + "require": "./dist/index.d.cts" + }, + "import": "./dist/index.browser.js", + "require": "./dist/index.browser.cjs" + }, + "default": "./dist/index.js" + }, + "./package.json": "./package.json" + }, + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "source": "./src/index.ts", + "types": "./dist/index.d.ts", + "files": [ + "dist/**" + ], + "scripts": { + "build": "tsup", + "build:watch": "tsup --watch", + "build:prod": "NODE_ENV=production tsup", + "checks": "tsc --noEmit && attw --pack . && publint .", + "lint": "tsc --noEmit", + "test": "jest src/*.spec.ts --detectOpenHandles", + "test:unit": "jest src/*.spec.ts --testPathIgnorePatterns=.*\\.e2e\\.spec\\.ts$ --detectOpenHandles", + "test:e2e": "jest src/*.e2e.spec.ts --detectOpenHandles" + }, + "keywords": [ + "flatfile-plugins", + "category-export" + ], + "author": "Flatfile, Inc.", + "repository": { + "type": "git", + "url": "https://github.com/FlatFilers/flatfile-plugins.git", + "directory": "export/delimited-zip" + }, + "license": "ISC", + "dependencies": { + "@flatfile/plugin-job-handler": "^0.7.0", + "@flatfile/util-common": "^1.5.0", + "adm-zip": "^0.5.16", + "csv-stringify": "^6.5.1" + }, + "peerDependencies": { + "@flatfile/api": "^1.9.19", + "@flatfile/listener": "^1.1.0" + }, + "devDependencies": { + "@flatfile/bundler-config-tsup": "^0.1.0" + } +} diff --git a/export/delimited-zip/src/export.delimited.zip.plugin.ts b/export/delimited-zip/src/export.delimited.zip.plugin.ts new file mode 100644 index 000000000..ee086acc1 --- /dev/null +++ b/export/delimited-zip/src/export.delimited.zip.plugin.ts @@ -0,0 +1,199 @@ +import { FlatfileClient } from '@flatfile/api' +import { jobHandler } from '@flatfile/plugin-job-handler' +import { processRecords } from '@flatfile/util-common' +import AdmZip from 'adm-zip' +import { stringify } from 'csv-stringify/sync' +import fs from 'fs' +import { tmpdir } from 'os' +import path from 'path' + +const api = new FlatfileClient() + +export interface PluginOptions { + job: string + delimiter: string + fileExtension: string + debug?: boolean +} + +export function exportDelimitedZip(options: PluginOptions) { + return jobHandler(`workbook:${options.job}`, async (event, tick) => { + const { workbookId, spaceId, environmentId } = event.context + + try { + const { data: workbook } = await api.workbooks.get(workbookId) + + await tick(1, `Starting ${workbook.name} export`) + + const { data: sheets } = await api.sheets.list({ workbookId }) + if (options.debug) { + console.log('Sheets retrieved:', sheets) + } + + // Get current date-time + const dateTime = new Date().toISOString().replace(/[:.]/g, '-') + + // Get the path to the system's temporary directory + const tempDir = tmpdir() + + const sanitizeFileName = (name: string) => + path.basename(name.replace(/[<>:"/\\|?*]/g, '').replace(/\s+/g, '_')) + const sanitizedWorkbookName = sanitizeFileName(workbook.name) + + // Create a new directory in the system's temporary directory for the delimited files + const dir = path.join(tempDir, `${sanitizedWorkbookName}_${dateTime}`) + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir) + } + + if (options.debug) { + console.log(`Creating zip file in ${dir}`) + } + + const zipFile = new AdmZip() + + // For each sheet, create a delimited file and populate it with data + const totalSheets = sheets.length + for (const [index, sheet] of sheets.entries()) { + // Limit sheet name to 31 characters + const trimmedSheetName = sanitizeFileName(sheet.name).substring(0, 31) + + if (options.debug) { + console.log(`Processing sheet ${trimmedSheetName}`) + } + + const { + data: { + config: { fields }, + }, + } = await api.sheets.get(sheet.id) + + const header = fields.map((field) => field.key) + const headerLabels = fields.map((field) => field.label) + + const fileName = `${trimmedSheetName}.${options.fileExtension}` + const filePath = `${dir}/${fileName}` + + // Write header only once before processing records + const headerContent = stringify([headerLabels], { + delimiter: options.delimiter, + }) + fs.writeFileSync(filePath, headerContent) + + if (options.debug) { + console.log(`Writing header to ${filePath}`) + } + + await processRecords( + sheet.id, + async (records, pageNumber, totalPageCount) => { + const rows = records.map((record) => + header.map((key) => record.values[key].value) + ) + + const csvContent = stringify(rows, { + delimiter: options.delimiter, + }) + + // Append the new records to the existing file + fs.appendFileSync(filePath, csvContent) + + if (options.debug) { + console.log( + `Writing ${records.length} records to ${filePath} (page ${pageNumber} of ${totalPageCount})` + ) + } + + // Calculate progress percentage + const sheetProgress = (pageNumber + 1) / totalPageCount + const sheetWeight = 1 / totalSheets + const progress = Math.round( + (index / totalSheets + sheetProgress * sheetWeight) * 80 + 10 + ) + + // Acknowledge job progress + await tick( + progress, + `Processed page ${pageNumber + 1} of ${trimmedSheetName}.${options.fileExtension}` + ) + }, + { + pageSize: 5, + } + ) + + zipFile.addFile(fileName, fs.readFileSync(filePath)) + } + + if (options.debug) { + console.log( + `Data written to ${options.fileExtension.toUpperCase()} files` + ) + } + + const zipFileName = `${sanitizedWorkbookName}_${dateTime}.zip` + const zipFilePath = path.join(tempDir, zipFileName) + + zipFile.writeZip(zipFilePath) + + if (options.debug) { + console.log(`Zipped file: ${zipFilePath}`) + } + + const { data: file } = await api.files.upload( + fs.createReadStream(zipFilePath), + { + spaceId, + environmentId, + mode: 'export', + } + ) + + // Cleanup temporary files + for (const sheet of workbook.sheets) { + const trimmedSheetName = sanitizeFileName(sheet.name).substring(0, 31) + const fileName = `${trimmedSheetName}.${options.fileExtension}` + const filePath = path.join(dir, fileName) + + try { + await fs.promises.unlink(filePath) + if (options.debug) { + console.log(`Deleted temporary file: ${filePath}`) + } + } catch (error) { + console.warn(`Failed to delete temporary file: ${filePath}`, error) + } + } + + try { + await fs.promises.unlink(zipFilePath) + if (options.debug) { + console.log(`Deleted temporary ZIP file: ${zipFilePath}`) + } + } catch (error) { + console.warn( + `Failed to delete temporary ZIP file: ${zipFilePath}`, + error + ) + } + + return { + outcome: { + message: `Data was exported to ${zipFileName}.`, + next: { + type: 'files', + files: [{ fileId: file.id }], + }, + }, + } + } catch (error) { + if (options.debug) { + console.error(error) + } + + throw new Error( + `This job failed probably because it couldn't write to the ${options.fileExtension.toUpperCase()} files, compress them into a ZIP file, or upload it.` + ) + } + }) +} diff --git a/export/delimited-zip/src/index.ts b/export/delimited-zip/src/index.ts new file mode 100644 index 000000000..44c109619 --- /dev/null +++ b/export/delimited-zip/src/index.ts @@ -0,0 +1 @@ +export * from './export.delimited.zip.plugin' diff --git a/export/delimited-zip/tsup.config.mjs b/export/delimited-zip/tsup.config.mjs new file mode 100644 index 000000000..2070a0891 --- /dev/null +++ b/export/delimited-zip/tsup.config.mjs @@ -0,0 +1,3 @@ +import { defineConfig } from '@flatfile/bundler-config-tsup' + +export default defineConfig({ includeBrowser: false }) diff --git a/export/pivot-table/jest.config.js b/export/pivot-table/jest.config.js new file mode 100644 index 000000000..e6d7ca40b --- /dev/null +++ b/export/pivot-table/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + testEnvironment: 'node', + + transform: { + '^.+\\.tsx?$': 'ts-jest', + }, + setupFiles: ['../../test/dotenv-config.js'], + setupFilesAfterEnv: [ + '../../test/betterConsoleLog.js', + '../../test/unit.cleanup.js', + ], + testTimeout: 60_000, + globalSetup: '../../test/setup-global.js', + forceExit: true, + passWithNoTests: true, +} diff --git a/flatfilers/sandbox/src/index.ts b/flatfilers/sandbox/src/index.ts index 74bd67ea0..4d66a14cb 100644 --- a/flatfilers/sandbox/src/index.ts +++ b/flatfilers/sandbox/src/index.ts @@ -1,13 +1,114 @@ import type { FlatfileListener } from '@flatfile/listener' -import { ExcelExtractor } from '@flatfile/plugin-xlsx-extractor' +import { exportDelimitedZip } from '@flatfile/plugin-export-delimited-zip' +import { configureSpace } from '@flatfile/plugin-space-configure' -export default function (listener: FlatfileListener) { +export default async function (listener: FlatfileListener) { listener.use( - ExcelExtractor({ - headerDetectionOptions: { - algorithm: 'dataRowAndSubHeaderDetection', - rowsToSearch: 20, - }, + exportDelimitedZip({ + job: 'export-delimited-zip', + delimiter: '\t', + fileExtension: 'tsv', + debug: true, + }) + ) + listener.use( + configureSpace({ + workbooks: [ + { + name: 'Sandbox', + sheets: [ + { + name: 'Sales', + slug: 'sales', + fields: [ + { + key: 'date', + type: 'string', + label: 'Date', + }, + { + key: 'product', + type: 'string', + label: 'Product', + }, + { + key: 'category', + type: 'string', + label: 'Category', + }, + { + key: 'region', + type: 'string', + label: 'Region', + }, + { + key: 'salesAmount', + type: 'number', + label: 'Sales Amount', + }, + ], + actions: [ + { + operation: 'generateExampleRecords', + label: 'Generate Example Records', + description: + 'This custom action code generates example records using Anthropic.', + primary: false, + mode: 'foreground', + }, + ], + }, + { + name: 'Sales 2', + slug: 'sales-2', + fields: [ + { + key: 'date', + type: 'string', + label: 'Date', + }, + { + key: 'product', + type: 'string', + label: 'Product', + }, + { + key: 'category', + type: 'string', + label: 'Category', + }, + { + key: 'region', + type: 'string', + label: 'Region', + }, + { + key: 'salesAmount', + type: 'number', + label: 'Sales Amount', + }, + ], + actions: [ + { + operation: 'export-external-api', + label: 'Export to External API', + description: + 'This custom action code exports the records in the Sales sheet to an external API.', + primary: false, + mode: 'foreground', + }, + ], + }, + ], + actions: [ + { + operation: 'export-delimited-zip', + label: 'Export to Delimited ZIP', + mode: 'foreground', + }, + ], + }, + ], }) ) } diff --git a/package-lock.json b/package-lock.json index ec9176145..0962cd029 100644 --- a/package-lock.json +++ b/package-lock.json @@ -91,8 +91,7 @@ }, "convert/currency/node_modules/cross-fetch": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } @@ -208,9 +207,30 @@ "@flatfile/listener": "^1.1.0" } }, + "export/delimited-zip": { + "name": "@flatfile/plugin-export-delimited-zip", + "version": "0.0.0", + "license": "ISC", + "dependencies": { + "@flatfile/plugin-job-handler": "^0.7.0", + "@flatfile/util-common": "^1.5.0", + "adm-zip": "^0.5.16", + "csv-stringify": "^6.5.1" + }, + "devDependencies": { + "@flatfile/bundler-config-tsup": "^0.1.0" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "@flatfile/api": "^1.9.19", + "@flatfile/listener": "^1.1.0" + } + }, "export/pivot-table": { "name": "@flatfile/plugin-export-pivot-table", - "version": "0.2.0", + "version": "0.2.1", "license": "ISC", "dependencies": { "@flatfile/api": "^1.9.15" @@ -300,14 +320,13 @@ }, "import/faker/node_modules/@faker-js/faker": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.0.3.tgz", - "integrity": "sha512-lWrrK4QNlFSU+13PL9jMbMKLJYXDFu3tQfayBsMXX7KL/GiQeqfB1CzHkqD5UHBUtPAuPo6XwGbMFNdVMZObRA==", "funding": [ { "type": "opencollective", "url": "https://opencollective.com/fakerjs" } ], + "license": "MIT", "engines": { "node": ">=18.0.0", "npm": ">=9.0.0" @@ -372,8 +391,7 @@ }, "node_modules/@anthropic-ai/sdk": { "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.27.3.tgz", - "integrity": "sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==", + "license": "MIT", "peer": true, "dependencies": { "@types/node": "^18.11.18", @@ -387,8 +405,7 @@ }, "node_modules/@anthropic-ai/sdk/node_modules/@types/node": { "version": "18.19.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.59.tgz", - "integrity": "sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==", + "license": "MIT", "peer": true, "dependencies": { "undici-types": "~5.26.4" @@ -396,8 +413,7 @@ }, "node_modules/@anthropic-ai/sdk/node_modules/agentkeepalive": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", "peer": true, "dependencies": { "humanize-ms": "^1.2.1" @@ -408,8 +424,7 @@ }, "node_modules/@anthropic-ai/sdk/node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT", "peer": true }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -3436,8 +3451,6 @@ }, "node_modules/@flatfile/api": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@flatfile/api/-/api-1.10.0.tgz", - "integrity": "sha512-MOj0KG0/u09pSNINhnfLZlskbuLF4V0Aij4Et9HNCnHSXa/NP4LreT0JbyGq3A0FD7MOSuJlKLbUZPyq+pAh7Q==", "dependencies": { "@flatfile/cross-env-config": "0.0.4", "@types/pako": "2.0.1", @@ -3470,8 +3483,6 @@ }, "node_modules/@flatfile/changelog": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@flatfile/changelog/-/changelog-1.0.4.tgz", - "integrity": "sha512-aNfJcpe+HA9buWtdHIq5gCnt6DFiK3l30tJaAKkfKqBKI1MmpqyI1UKnLfY98EAR4JH3B/Uiuz/Go2hqgnWNwg==", "optional": true, "dependencies": { "chalk": "^4.1.2", @@ -3487,14 +3498,12 @@ }, "node_modules/@flatfile/changelog/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0", "optional": true }, "node_modules/@flatfile/changelog/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", "optional": true, "engines": { "node": "^12.20.0 || >=14" @@ -3502,8 +3511,7 @@ }, "node_modules/@flatfile/changelog/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "optional": true, "dependencies": { "argparse": "^2.0.1" @@ -3538,8 +3546,7 @@ }, "node_modules/@flatfile/listener": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@flatfile/listener/-/listener-1.1.0.tgz", - "integrity": "sha512-LEzq0ucXmDy/tCM23dg9MTjtZtd8eGSzHLdaKwzeQWrwjN+XnZE/5wrpU+0vXxfDxTpuKFv8TGA/Bvxh/e+4yg==", + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.3", "cross-fetch": "^4.0.0", @@ -3638,6 +3645,10 @@ "resolved": "enrich/summarize", "link": true }, + "node_modules/@flatfile/plugin-export-delimited-zip": { + "resolved": "export/delimited-zip", + "link": true + }, "node_modules/@flatfile/plugin-export-pivot-table": { "resolved": "export/pivot-table", "link": true @@ -3798,8 +3809,7 @@ }, "node_modules/@google-cloud/common": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-5.0.2.tgz", - "integrity": "sha512-V7bmBKYQyu0eVG2BFejuUjlBt+zrya6vtsKdY+JxMM/dNntPF41vZ9+LhOshEUH01zOHEqBSvI7Dad7ZS6aUeA==", + "license": "Apache-2.0", "dependencies": { "@google-cloud/projectify": "^4.0.0", "@google-cloud/promisify": "^4.0.0", @@ -3817,24 +3827,21 @@ }, "node_modules/@google-cloud/projectify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", - "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", + "license": "Apache-2.0", "engines": { "node": ">=14.0.0" } }, "node_modules/@google-cloud/promisify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", - "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", + "license": "Apache-2.0", "engines": { "node": ">=14" } }, "node_modules/@google-cloud/translate": { "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@google-cloud/translate/-/translate-8.5.0.tgz", - "integrity": "sha512-avQa3WLkO3PSk2fiV6Af/PmeDnM6XWGDgO+Z+hZ/FZpBRMjCW1Px9MNLbM1sBKGjt/uM8aOGHqow/AAR7lLsUA==", + "license": "Apache-2.0", "dependencies": { "@google-cloud/common": "^5.0.0", "@google-cloud/promisify": "^4.0.0", @@ -3849,8 +3856,7 @@ }, "node_modules/@grpc/grpc-js": { "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", - "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", + "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -3861,8 +3867,7 @@ }, "node_modules/@grpc/proto-loader": { "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", @@ -4391,8 +4396,7 @@ }, "node_modules/@js-sdsl/ordered-map": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" @@ -4405,8 +4409,7 @@ }, "node_modules/@langchain/anthropic": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@langchain/anthropic/-/anthropic-0.3.5.tgz", - "integrity": "sha512-AWlF8mSTcxlDdLD+FD9TYFnVaQSCp4foblCDzUR/Xnhn8IvZSzK+3nbxkdVM4a8LS+7GnxP9ED88ZAUvZSQmQg==", + "license": "MIT", "peer": true, "dependencies": { "@anthropic-ai/sdk": "^0.27.3", @@ -4423,8 +4426,7 @@ }, "node_modules/@langchain/core": { "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@langchain/core/-/core-0.3.13.tgz", - "integrity": "sha512-sHDlwyHhgeaYC+wfORrWO7sXxD6/GDtZZ5mqjY48YMwB58cVv8hTs8goR/9EwXapYt8fQi2uXTGUV87bHzvdZQ==", + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^5.0.0", @@ -4445,8 +4447,7 @@ }, "node_modules/@langchain/core/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -4457,8 +4458,7 @@ }, "node_modules/@langchain/core/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -4469,12 +4469,11 @@ }, "node_modules/@langchain/core/node_modules/uuid": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "peer": true, "bin": { "uuid": "dist/bin/uuid" @@ -4482,8 +4481,7 @@ }, "node_modules/@langchain/mistralai": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@langchain/mistralai/-/mistralai-0.1.1.tgz", - "integrity": "sha512-gnHdQRfn+iBReKD0u1nydGqHgVOjnKHpd0Q2qEN61ZuxiqFOOauWYkrbyml7tzcOdMv2vUAr5+pjpXip+ez59w==", + "license": "MIT", "peer": true, "dependencies": { "@mistralai/mistralai": "^0.4.0", @@ -4500,12 +4498,11 @@ }, "node_modules/@langchain/mistralai/node_modules/uuid": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "peer": true, "bin": { "uuid": "dist/bin/uuid" @@ -4513,8 +4510,7 @@ }, "node_modules/@langchain/openai": { "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-0.3.11.tgz", - "integrity": "sha512-mEFbpJ8w8NPArsquUlCwxvZTKNkXxqwzvTEYzv6Jb7gUoBDOZtwLg6AdcngTJ+w5VFh3wxgPy0g3zb9Aw0Qbpw==", + "license": "MIT", "peer": true, "dependencies": { "js-tiktoken": "^1.0.12", @@ -4601,8 +4597,7 @@ }, "node_modules/@mistralai/mistralai": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@mistralai/mistralai/-/mistralai-0.4.0.tgz", - "integrity": "sha512-KmFzNro1RKxIFh19J3osmUQhucefBBauMXN5fa9doG6dT9OHR/moBvvn+riVlR7c0AVfuxO8Dfa03AyLYYzbyg==", + "license": "ISC", "peer": true, "dependencies": { "node-fetch": "^2.6.7" @@ -4826,28 +4821,23 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -4855,28 +4845,23 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "license": "BSD-3-Clause" }, "node_modules/@react-native-community/cli": { "version": "14.0.0", @@ -5980,9 +5965,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz", + "integrity": "sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==", "cpu": [ "x64" ], @@ -6169,8 +6154,7 @@ }, "node_modules/@tootallnate/once": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -6226,8 +6210,7 @@ }, "node_modules/@types/caseless": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", - "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==" + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.5", @@ -6274,9 +6257,8 @@ }, "node_modules/@types/jest": { "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -6297,8 +6279,7 @@ }, "node_modules/@types/long": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + "license": "MIT" }, "node_modules/@types/mute-stream": { "version": "0.0.4", @@ -6357,8 +6338,7 @@ }, "node_modules/@types/request": { "version": "2.48.12", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", - "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "license": "MIT", "dependencies": { "@types/caseless": "*", "@types/node": "*", @@ -6368,8 +6348,7 @@ }, "node_modules/@types/request/node_modules/form-data": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", - "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -6386,8 +6365,7 @@ }, "node_modules/@types/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT", "peer": true }, "node_modules/@types/semver": { @@ -6397,9 +6375,8 @@ }, "node_modules/@types/sentiment": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/sentiment/-/sentiment-5.0.4.tgz", - "integrity": "sha512-6FL0CYijhnrR3gHbu7boAJn8zRCekJXBPfIHLkIgWbkY+hz5Dwfsq79FM7l/tLZKuEgQWktnzf6JqV2UCWKrbg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.3", @@ -6407,8 +6384,7 @@ }, "node_modules/@types/tough-cookie": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" + "license": "MIT" }, "node_modules/@types/triple-beam": { "version": "1.3.5", @@ -6417,8 +6393,7 @@ }, "node_modules/@types/uuid": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "license": "MIT", "peer": true }, "node_modules/@types/wrap-ansi": { @@ -6477,8 +6452,9 @@ } }, "node_modules/adm-zip": { - "version": "0.5.15", - "license": "MIT", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", "engines": { "node": ">=12.0" } @@ -6723,8 +6699,7 @@ }, "node_modules/arrify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7010,8 +6985,7 @@ }, "node_modules/bignumber.js": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } @@ -7431,8 +7405,7 @@ }, "node_modules/chrono-node": { "version": "2.7.7", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-2.7.7.tgz", - "integrity": "sha512-p3S7gotuTPu5oqhRL2p1fLwQXGgdQaRTtWR3e8Di9P1Pa9mzkK5DWR5AWBieMUh2ZdOnPgrK+zCrbbtyuA+D/Q==", + "license": "MIT", "dependencies": { "dayjs": "^1.10.0" }, @@ -7722,8 +7695,7 @@ }, "node_modules/compromise": { "version": "14.14.2", - "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.14.2.tgz", - "integrity": "sha512-g2Qe4zn8TmL7xQFR5Tx7i1txTUnzTPxhE7hDCQM+LDIfvYcriKzqH7eD2J/apUr/hRxvfKbRJ/yYXtN1cgD+Ug==", + "license": "MIT", "dependencies": { "efrt": "2.7.0", "grad-school": "0.0.5", @@ -8030,6 +8002,11 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/csv-stringify": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.5.1.tgz", + "integrity": "sha512-+9lpZfwpLntpTIEpFbwQyWuW/hmI/eHuJZD1XzeZpfZTqkf1fyvBbBLXTJJMsBuuS11uTShMqPwzx4A6ffXgRQ==" + }, "node_modules/cuint": { "version": "0.2.2", "dev": true, @@ -8382,8 +8359,7 @@ }, "node_modules/duplexify": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", - "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", @@ -8421,8 +8397,7 @@ }, "node_modules/efrt": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.7.0.tgz", - "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==", + "license": "MIT", "engines": { "node": ">=12.0.0" } @@ -8479,8 +8454,7 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } @@ -8804,8 +8778,7 @@ }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT", "peer": true }, "node_modules/events": { @@ -9704,14 +9677,12 @@ }, "node_modules/form-data-encoder": { "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", + "license": "MIT", "peer": true }, "node_modules/formdata-node": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "license": "MIT", "peer": true, "dependencies": { "node-domexception": "1.0.0", @@ -9796,8 +9767,7 @@ }, "node_modules/gaxios": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", @@ -9811,8 +9781,7 @@ }, "node_modules/gcp-metadata": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", - "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==", + "license": "Apache-2.0", "dependencies": { "gaxios": "^6.0.0", "json-bigint": "^1.0.0" @@ -10015,8 +9984,7 @@ }, "node_modules/google-auth-library": { "version": "9.14.2", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.14.2.tgz", - "integrity": "sha512-R+FRIfk1GBo3RdlRYWPdwk8nmtVUOn6+BkDomAC46KoU8kzXzE1HLmOasSCbWUByMMAGkknVF0G5kQ69Vj7dlA==", + "license": "Apache-2.0", "dependencies": { "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", @@ -10031,8 +9999,7 @@ }, "node_modules/google-gax": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.4.1.tgz", - "integrity": "sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==", + "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.10.9", "@grpc/proto-loader": "^0.7.13", @@ -10067,8 +10034,7 @@ }, "node_modules/grad-school": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz", - "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==", + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -10116,8 +10082,7 @@ }, "node_modules/gtoken": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", - "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", "dependencies": { "gaxios": "^6.0.0", "jws": "^4.0.0" @@ -10215,8 +10180,7 @@ }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", "bin": { "he": "bin/he" } @@ -10263,8 +10227,6 @@ }, "node_modules/html-entities": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "funding": [ { "type": "github", @@ -10274,7 +10236,8 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/html-escaper": { "version": "2.0.2", @@ -10283,8 +10246,7 @@ }, "node_modules/html-tags": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -10424,9 +10386,8 @@ }, "node_modules/ignore-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", - "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", "dev": true, + "license": "ISC", "dependencies": { "minimatch": "^5.0.1" }, @@ -10436,18 +10397,16 @@ }, "node_modules/ignore-walk/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/ignore-walk/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10788,8 +10747,7 @@ }, "node_modules/is-html": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-html/-/is-html-2.0.0.tgz", - "integrity": "sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==", + "license": "MIT", "dependencies": { "html-tags": "^3.0.0" }, @@ -10995,8 +10953,7 @@ }, "node_modules/isbn3": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/isbn3/-/isbn3-1.2.2.tgz", - "integrity": "sha512-cBZ09bmEKYjWkc05GjXVnRFfyE3pVtmWMl9oCRjjq8l0QiyGrrbyhlOL8e++pXv+s/r8SqLPBRmV85kA4WM1Qg==", + "license": "MIT", "bin": { "isbn": "bin/isbn", "isbn-audit": "bin/isbn-audit", @@ -11730,8 +11687,7 @@ }, "node_modules/js-tiktoken": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.15.tgz", - "integrity": "sha512-65ruOWWXDEZHHbAo7EjOcNxOGasQKbL4Fq3jEr2xsCqSsoOo6VVSqzWQb6PRIqypFSDcma4jO90YP0w5X8qVXQ==", + "license": "MIT", "peer": true, "dependencies": { "base64-js": "^1.5.1" @@ -11824,8 +11780,7 @@ }, "node_modules/json-bigint": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" } @@ -11961,8 +11916,7 @@ }, "node_modules/langsmith": { "version": "0.1.66", - "resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.1.66.tgz", - "integrity": "sha512-ZhZ9g8t/qjj0oUWpvKLtUe3qxDL/N0wG0m+Ctkxf0keopYJkcMJg4/71jl6ZYyiSU8xlC27aixXOT0uvLhqcFA==", + "license": "MIT", "peer": true, "dependencies": { "@types/uuid": "^10.0.0", @@ -11983,12 +11937,11 @@ }, "node_modules/langsmith/node_modules/uuid": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "peer": true, "bin": { "uuid": "dist/bin/uuid" @@ -12003,8 +11956,7 @@ }, "node_modules/libphonenumber-js": { "version": "1.11.12", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.12.tgz", - "integrity": "sha512-QkJn9/D7zZ1ucvT++TQSvZuSA2xAWeUytU+DiEQwbPKLyrDpvbul2AFs1CGbRAPpSCCk47aRAb5DX5mmcayp4g==" + "license": "MIT" }, "node_modules/lighthouse-logger": { "version": "1.4.2", @@ -12074,8 +12026,7 @@ }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -12253,8 +12204,7 @@ }, "node_modules/long": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "license": "Apache-2.0" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -12869,8 +12819,7 @@ }, "node_modules/modern-async": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/modern-async/-/modern-async-2.0.4.tgz", - "integrity": "sha512-89Ig+D/NQAFi39/oRUphkwdLb4qo/3Vl21TCMPZY3oCWGQQ+HqNJ1kyWknyAJ2rsiewL9OGBmpKA5bQ0PikkMg==", + "license": "MIT", "dependencies": { "core-js-pure": "^3.19.1", "nanoassert": "^2.0.0" @@ -12942,8 +12891,7 @@ }, "node_modules/mustache": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "license": "MIT", "peer": true, "bin": { "mustache": "bin/mustache" @@ -13045,8 +12993,6 @@ }, "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -13057,6 +13003,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "peer": true, "engines": { "node": ">=10.5.0" @@ -13104,8 +13051,7 @@ }, "node_modules/node-html-parser": { "version": "6.1.13", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz", - "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==", + "license": "MIT", "dependencies": { "css-select": "^5.1.0", "he": "1.2.0" @@ -13154,9 +13100,8 @@ }, "node_modules/npm-bundled": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", - "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", "dev": true, + "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^2.0.0" }, @@ -13166,9 +13111,8 @@ }, "node_modules/npm-bundled/node_modules/npm-normalize-package-bin": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", "dev": true, + "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } @@ -13183,9 +13127,8 @@ }, "node_modules/npm-packlist": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", - "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^8.0.1", "ignore-walk": "^5.0.1", @@ -13201,19 +13144,16 @@ }, "node_modules/npm-packlist/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/npm-packlist/node_modules/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13230,9 +13170,8 @@ }, "node_modules/npm-packlist/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -13242,9 +13181,8 @@ }, "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", "dev": true, + "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } @@ -13294,8 +13232,7 @@ }, "node_modules/object-hash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -13404,8 +13341,7 @@ }, "node_modules/openai": { "version": "4.68.2", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.68.2.tgz", - "integrity": "sha512-Ys3Jl9vkBUFtrFj4pgrF7rMte4JNekZoMgI6dWkkpOIwNUKGkc4I8jTqv86LB+TcoqkTPzV6DS269dPR9ILWsQ==", + "license": "Apache-2.0", "peer": true, "dependencies": { "@types/node": "^18.11.18", @@ -13430,8 +13366,7 @@ }, "node_modules/openai/node_modules/@types/node": { "version": "18.19.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.59.tgz", - "integrity": "sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==", + "license": "MIT", "peer": true, "dependencies": { "undici-types": "~5.26.4" @@ -13439,8 +13374,7 @@ }, "node_modules/openai/node_modules/agentkeepalive": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", "peer": true, "dependencies": { "humanize-ms": "^1.2.1" @@ -13451,8 +13385,7 @@ }, "node_modules/openai/node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT", "peer": true }, "node_modules/openapi-typescript-codegen": { @@ -13568,8 +13501,7 @@ }, "node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -13608,8 +13540,7 @@ }, "node_modules/p-queue": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", "peer": true, "dependencies": { "eventemitter3": "^4.0.4", @@ -13624,8 +13555,7 @@ }, "node_modules/p-retry": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", "peer": true, "dependencies": { "@types/retry": "0.12.0", @@ -13637,8 +13567,7 @@ }, "node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", "peer": true, "dependencies": { "p-finally": "^1.0.0" @@ -13823,8 +13752,7 @@ }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -14106,8 +14034,7 @@ }, "node_modules/proto3-json-serializer": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", - "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "license": "Apache-2.0", "dependencies": { "protobufjs": "^7.2.5" }, @@ -14117,9 +14044,8 @@ }, "node_modules/protobufjs": { "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -14204,9 +14130,8 @@ }, "node_modules/publint": { "version": "0.2.12", - "resolved": "https://registry.npmjs.org/publint/-/publint-0.2.12.tgz", - "integrity": "sha512-YNeUtCVeM4j9nDiTT2OPczmlyzOkIXNtdDZnSuajAxS/nZ6j3t7Vs9SUB4euQNddiltIwu7Tdd3s+hr08fAsMw==", "dev": true, + "license": "MIT", "dependencies": { "npm-packlist": "^5.1.3", "picocolors": "^1.1.1", @@ -14863,8 +14788,7 @@ }, "node_modules/retry": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "peer": true, "engines": { "node": ">= 4" @@ -14872,8 +14796,7 @@ }, "node_modules/retry-request": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", - "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", + "license": "MIT", "dependencies": { "@types/request": "^2.48.8", "extend": "^3.0.2", @@ -14999,8 +14922,7 @@ }, "node_modules/rss-parser": { "version": "3.13.0", - "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.13.0.tgz", - "integrity": "sha512-7jWUBV5yGN3rqMMj7CZufl/291QAhvrrGpDNE4k/02ZchL0npisiYYqULF71jCEKoIiHvK/Q2e6IkDwPziT7+w==", + "license": "MIT", "dependencies": { "entities": "^2.0.3", "xml2js": "^0.5.0" @@ -15008,16 +14930,14 @@ }, "node_modules/rss-parser/node_modules/entities": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/rss-parser/node_modules/xml2js": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -15057,9 +14977,8 @@ }, "node_modules/sade": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, + "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -15190,8 +15109,7 @@ }, "node_modules/sentiment": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/sentiment/-/sentiment-5.0.2.tgz", - "integrity": "sha512-ZeC3y0JsOYTdwujt5uOd7ILJNilbgFzUtg/LEG4wUv43LayFNLZ28ec8+Su+h3saHlJmIwYxBzfDHHZuiMA15g==", + "license": "MIT", "engines": { "node": ">=8.0" } @@ -15644,16 +15562,14 @@ }, "node_modules/stream-events": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "license": "MIT", "dependencies": { "stubs": "^3.0.0" } }, "node_modules/stream-shift": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + "license": "MIT" }, "node_modules/string_decoder": { "version": "1.3.0", @@ -15796,8 +15712,7 @@ }, "node_modules/stubs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==" + "license": "MIT" }, "node_modules/sucrase": { "version": "3.35.0", @@ -15871,8 +15786,7 @@ }, "node_modules/suffix-thumb": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-5.0.2.tgz", - "integrity": "sha512-I5PWXAFKx3FYnI9a+dQMWNqTxoRt6vdBdb0O+BJ1sxXCWtSoQCusc13E58f+9p4MYx/qCnEMkD5jac6K2j3dgA==" + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", @@ -16037,8 +15951,7 @@ }, "node_modules/teeny-request": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", - "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", + "license": "Apache-2.0", "dependencies": { "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", @@ -16052,8 +15965,7 @@ }, "node_modules/teeny-request/node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -16063,8 +15975,7 @@ }, "node_modules/teeny-request/node_modules/debug": { "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -16079,8 +15990,7 @@ }, "node_modules/teeny-request/node_modules/http-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -16092,8 +16002,7 @@ }, "node_modules/teeny-request/node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -16104,8 +16013,7 @@ }, "node_modules/teeny-request/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "license": "MIT" }, "node_modules/temp": { "version": "0.8.4", @@ -16626,8 +16534,7 @@ }, "node_modules/typescript": { "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -16863,8 +16770,7 @@ }, "node_modules/web-streams-polyfill": { "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "license": "MIT", "peer": true, "engines": { "node": ">= 14" @@ -17102,8 +17008,7 @@ }, "node_modules/xml2js": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -17114,8 +17019,7 @@ }, "node_modules/xmlbuilder": { "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", "engines": { "node": ">=4.0" } @@ -17200,8 +17104,7 @@ }, "node_modules/zod-to-json-schema": { "version": "3.23.3", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.3.tgz", - "integrity": "sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==", + "license": "ISC", "peer": true, "peerDependencies": { "zod": "^3.23.3" @@ -17287,10 +17190,10 @@ }, "plugins/delimiter-extractor": { "name": "@flatfile/plugin-delimiter-extractor", - "version": "2.3.0", + "version": "2.3.1", "license": "ISC", "dependencies": { - "@flatfile/util-extractor": "^2.2.0", + "@flatfile/util-extractor": "^2.2.1", "papaparse": "^5.4.1", "remeda": "^1.14.0" }, @@ -17417,7 +17320,7 @@ }, "plugins/json-schema": { "name": "@flatfile/plugin-convert-json-schema", - "version": "0.5.0", + "version": "0.5.1", "license": "ISC", "dependencies": { "@flatfile/plugin-space-configure": "^0.7.0", @@ -17563,7 +17466,7 @@ }, "plugins/rollout": { "name": "@flatfile/plugin-rollout", - "version": "1.2.0", + "version": "1.2.1", "license": "ISC", "dependencies": { "@flatfile/plugin-job-handler": "^0.7.0", @@ -17699,10 +17602,10 @@ }, "plugins/xlsx-extractor": { "name": "@flatfile/plugin-xlsx-extractor", - "version": "3.3.0", + "version": "3.3.1", "license": "ISC", "dependencies": { - "@flatfile/util-extractor": "^2.2.0", + "@flatfile/util-extractor": "^2.2.1", "remeda": "^1.14.0", "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz" }, @@ -17829,12 +17732,11 @@ }, "utils/common/node_modules/@flatfile/cross-env-config": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@flatfile/cross-env-config/-/cross-env-config-0.0.6.tgz", - "integrity": "sha512-/8GpBVxjzTlAmFni08ELQfIrfuwZ+yIsAsTcYOzazbIAMp1ShKNB/1RfaIzRGhOF5OTWbj37mAL/z/tu6+rvpQ==" + "license": "ISC" }, "utils/extractor": { "name": "@flatfile/util-extractor", - "version": "2.2.0", + "version": "2.2.1", "license": "ISC", "dependencies": { "@flatfile/util-common": "^1.5.0", @@ -17956,8 +17858,7 @@ }, "validate/date/node_modules/date-fns": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" diff --git a/plugins/dedupe/README.md b/plugins/dedupe/README.md index b6654f779..9e859bcfe 100644 --- a/plugins/dedupe/README.md +++ b/plugins/dedupe/README.md @@ -8,7 +8,7 @@ This plugin dedupes records in a Sheet via a Sheet-level action. -> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](/orchestration/listeners#listener-types) +> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](/docs/orchestration/listeners#listener-types) ## Parameters diff --git a/plugins/delimiter-extractor/README.md b/plugins/delimiter-extractor/README.md index 3cfd26e75..3e704953c 100644 --- a/plugins/delimiter-extractor/README.md +++ b/plugins/delimiter-extractor/README.md @@ -12,7 +12,7 @@ The `@flatfile/plugin-delimiter-extractor` package is a plugin for parsing delim -> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](/deocs/orchestration/listeners#listener-types) +> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](/docs/orchestration/listeners#listener-types) ## Parameters diff --git a/plugins/export-workbook/README.md b/plugins/export-workbook/README.md index ba6ebc9df..455fe3c7c 100644 --- a/plugins/export-workbook/README.md +++ b/plugins/export-workbook/README.md @@ -11,7 +11,7 @@ The `@flatfile/plugin-export-workbook` plugin exports data in a Flatfile Workboo -> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](https://flatfile.com/docs/orchestration/listeners#listener-types) +> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](/docs/orchestration/listeners#listener-types) ## Parameters diff --git a/plugins/record-hook/rollup.config.mjs b/plugins/record-hook/rollup.config.mjs index 6752abbae..fad46f24d 100644 --- a/plugins/record-hook/rollup.config.mjs +++ b/plugins/record-hook/rollup.config.mjs @@ -8,10 +8,6 @@ const umdExternals = [ ] const config = buildConfig({ - includeNode: false, - includeBrowser: false, - includeDefinitions: false, - includeUmd: true, umdConfig: { name: 'PluginRecordHook', external: umdExternals }, }) diff --git a/plugins/rollout/README.md b/plugins/rollout/README.md index 4737e69b2..522f25e3b 100644 --- a/plugins/rollout/README.md +++ b/plugins/rollout/README.md @@ -14,6 +14,8 @@ This plugin listens for new agent deployments and automatically applies schema c +> When embedding Flatfile, this plugin should be deployed in a server-side listener. [Learn more](/docs/orchestration/listeners#listener-types) + ## Parameters