diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1310ed3b..f01c76b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: - name: Set up Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: '22' + node-version: '24' - name: Bootstrap run: ./scripts/bootstrap @@ -48,7 +48,7 @@ jobs: - name: Set up Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: '22' + node-version: '24' - name: Bootstrap run: ./scripts/bootstrap @@ -96,7 +96,7 @@ jobs: - name: Set up Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: '22' + node-version: '24' - name: Bootstrap run: ./scripts/bootstrap diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index c698542e..bc537e10 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -26,7 +26,7 @@ jobs: - name: Set up Node uses: actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1 with: - node-version: '20' + node-version: '24' - name: Install dependencies run: | diff --git a/.release-please-manifest.json b/.release-please-manifest.json index ef408f5b..e9ff280f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "10.1.1" + ".": "10.2.0" } diff --git a/.stats.yml b/.stats.yml index 861514c9..6d130acd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 48 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-3cd1346947fabfca2aa9c6f821170c8d945a82667fb20a15644d5c77f8e98c10.yml -openapi_spec_hash: 642e04e90d37c0e4875d154abd06eb54 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-a6b05e51c46366a54466c2009f5fdde74e0fa40bbcc6568601a4e3342dd16937.yml +openapi_spec_hash: 084797c220144df17d98eb984dd4cba2 config_hash: 9ae56f40cec7304896138bfad5caf748 diff --git a/CHANGELOG.md b/CHANGELOG.md index be8d4001..8022564f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 10.2.0 (2026-07-13) + +Full Changelog: [v10.1.1...v10.2.0](https://github.com/Finch-API/finch-api-node/compare/v10.1.1...v10.2.0) + +### Features + +* **api:** api update ([08ac7b8](https://github.com/Finch-API/finch-api-node/commit/08ac7b8f028ebc199b3adcb4de3d71702ca3e92c)) + + +### Bug Fixes + +* **ci:** bump @arethetypeswrong/cli to ^0.18.0 and run CI workflows on Node 24 ([eba627c](https://github.com/Finch-API/finch-api-node/commit/eba627cb871da059cce759df9ee810424af09fd1)) + ## 10.1.1 (2026-07-10) Full Changelog: [v10.1.0...v10.1.1](https://github.com/Finch-API/finch-api-node/compare/v10.1.0...v10.1.1) diff --git a/MIGRATION.md b/MIGRATION.md index 2a997b6b..50684718 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -97,7 +97,6 @@ client.example.list(undefined, { headers: { ... } }); - `client.hris.payStatementItem.rules.delete()` - `client.hris.directory.list()` - `client.hris.directory.listIndividuals()` -- `client.hris.individuals.retrieveMany()` - `client.hris.documents.list()` - `client.hris.documents.retreive()` - `client.hris.benefits.create()` diff --git a/package.json b/package.json index 7e30b173..f0279ed2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tryfinch/finch-api", - "version": "10.1.1", + "version": "10.2.0", "description": "The official TypeScript library for the Finch API", "author": "Finch ", "types": "dist/index.d.ts", @@ -30,7 +30,7 @@ "@noble/hashes": "^1.5.0" }, "devDependencies": { - "@arethetypeswrong/cli": "^0.17.0", + "@arethetypeswrong/cli": "^0.18.0", "@swc/core": "^1.3.102", "@swc/jest": "^0.2.29", "@types/jest": "^29.4.0", diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json index c0642d28..080e0aee 100644 --- a/packages/mcp-server/manifest.json +++ b/packages/mcp-server/manifest.json @@ -1,7 +1,7 @@ { "dxt_version": "0.2", "name": "@tryfinch/finch-api-mcp", - "version": "10.1.1", + "version": "10.2.0", "description": "The official MCP Server for the Finch API", "author": { "name": "Finch", diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index d5be5121..e5a75bbb 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "@tryfinch/finch-api-mcp", - "version": "10.1.1", + "version": "10.2.0", "description": "The official MCP Server for the Finch API", "author": "Finch ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts index f878f5f2..5ed8c027 100644 --- a/packages/mcp-server/src/local-docs-search.ts +++ b/packages/mcp-server/src/local-docs-search.ts @@ -428,7 +428,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [ response: '{ id: string; department: { name?: string; }; first_name: string; is_active: boolean; last_name: string; manager: { id: string; }; middle_name: string; }', markdown: - "## list\n\n`client.hris.directory.list(entity_ids?: string[], limit?: number, offset?: number): { id: string; department: object; first_name: string; is_active: boolean; last_name: string; manager: object; middle_name: string; }`\n\n**get** `/employer/directory`\n\nRead company directory and organization structure\n\n### Parameters\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n- `limit?: number`\n Number of employees to return (defaults to all)\n\n- `offset?: number`\n Index to start from (defaults to 0)\n\n### Returns\n\n- `{ id: string; department: { name?: string; }; first_name: string; is_active: boolean; last_name: string; manager: { id: string; }; middle_name: string; }`\n\n - `id: string`\n - `department: { name?: string; }`\n - `first_name: string`\n - `is_active: boolean`\n - `last_name: string`\n - `manager: { id: string; }`\n - `middle_name: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const individualInDirectory of client.hris.directory.list()) {\n console.log(individualInDirectory);\n}\n```", + "## list\n\n`client.hris.directory.list(entity_ids?: string[], limit?: number, offset?: number): { id: string; department: object; first_name: string; is_active: boolean; last_name: string; manager: object; middle_name: string; }`\n\n**get** `/employer/directory`\n\nRead company directory and organization structure\n\n### Parameters\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n- `limit?: number`\n Number of employees to return (defaults to 100, maximum 10000)\n\n- `offset?: number`\n Index to start from (defaults to 0)\n\n### Returns\n\n- `{ id: string; department: { name?: string; }; first_name: string; is_active: boolean; last_name: string; manager: { id: string; }; middle_name: string; }`\n\n - `id: string`\n - `department: { name?: string; }`\n - `first_name: string`\n - `is_active: boolean`\n - `last_name: string`\n - `manager: { id: string; }`\n - `middle_name: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const individualInDirectory of client.hris.directory.list()) {\n console.log(individualInDirectory);\n}\n```", perLanguage: { typescript: { method: 'client.hris.directory.list', @@ -516,48 +516,48 @@ const EMBEDDED_METHODS: MethodEntry[] = [ stainlessPath: '(resource) hris.individuals > (method) retrieve_many', qualified: 'client.hris.individuals.retrieveMany', params: [ + 'requests: { individual_id: string; }[];', 'entity_ids?: string[];', 'options?: { include?: string[]; };', - 'requests?: { individual_id?: string; }[];', ], response: "{ body: { id: string; dob: string; ethnicity: string; first_name: string; gender: 'female' | 'male' | 'other' | 'decline_to_specify'; last_name: string; middle_name: string; phone_numbers: object[]; preferred_name: string; residence: location; emails?: object[]; encrypted_ssn?: string; ssn?: string; } | { code: number; message: string; name: string; finch_code?: string; }; code: number; individual_id: string; }", markdown: - "## retrieve_many\n\n`client.hris.individuals.retrieveMany(entity_ids?: string[], options?: { include?: string[]; }, requests?: { individual_id?: string; }[]): { body: individual; code: number; individual_id: string; }`\n\n**post** `/employer/individual`\n\nRead individual data, excluding income and employment data\n\n### Parameters\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n- `options?: { include?: string[]; }`\n - `include?: string[]`\n\n- `requests?: { individual_id?: string; }[]`\n\n### Returns\n\n- `{ body: { id: string; dob: string; ethnicity: string; first_name: string; gender: 'female' | 'male' | 'other' | 'decline_to_specify'; last_name: string; middle_name: string; phone_numbers: object[]; preferred_name: string; residence: location; emails?: object[]; encrypted_ssn?: string; ssn?: string; } | { code: number; message: string; name: string; finch_code?: string; }; code: number; individual_id: string; }`\n\n - `body: { id: string; dob: string; ethnicity: string; first_name: string; gender: 'female' | 'male' | 'other' | 'decline_to_specify'; last_name: string; middle_name: string; phone_numbers: { data: string; type: 'work' | 'personal'; }[]; preferred_name: string; residence: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; emails?: { data: string; type: 'work' | 'personal'; }[]; encrypted_ssn?: string; ssn?: string; } | { code: number; message: string; name: string; finch_code?: string; }`\n - `code: number`\n - `individual_id: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const individualResponse of client.hris.individuals.retrieveMany()) {\n console.log(individualResponse);\n}\n```", + "## retrieve_many\n\n`client.hris.individuals.retrieveMany(requests: { individual_id: string; }[], entity_ids?: string[], options?: { include?: string[]; }): { body: individual; code: number; individual_id: string; }`\n\n**post** `/employer/individual`\n\nRead individual data, excluding income and employment data\n\n### Parameters\n\n- `requests: { individual_id: string; }[]`\n The array of batch requests. Maximum 10000 items per request.\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n- `options?: { include?: string[]; }`\n - `include?: string[]`\n\n### Returns\n\n- `{ body: { id: string; dob: string; ethnicity: string; first_name: string; gender: 'female' | 'male' | 'other' | 'decline_to_specify'; last_name: string; middle_name: string; phone_numbers: object[]; preferred_name: string; residence: location; emails?: object[]; encrypted_ssn?: string; ssn?: string; } | { code: number; message: string; name: string; finch_code?: string; }; code: number; individual_id: string; }`\n\n - `body: { id: string; dob: string; ethnicity: string; first_name: string; gender: 'female' | 'male' | 'other' | 'decline_to_specify'; last_name: string; middle_name: string; phone_numbers: { data: string; type: 'work' | 'personal'; }[]; preferred_name: string; residence: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; emails?: { data: string; type: 'work' | 'personal'; }[]; encrypted_ssn?: string; ssn?: string; } | { code: number; message: string; name: string; finch_code?: string; }`\n - `code: number`\n - `individual_id: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const individualResponse of client.hris.individuals.retrieveMany({ requests: [{ individual_id: 'individual_id' }] })) {\n console.log(individualResponse);\n}\n```", perLanguage: { typescript: { method: 'client.hris.individuals.retrieveMany', example: - "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\n// Automatically fetches more pages as needed.\nfor await (const individualResponse of client.hris.individuals.retrieveMany()) {\n console.log(individualResponse.individual_id);\n}", + "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\n// Automatically fetches more pages as needed.\nfor await (const individualResponse of client.hris.individuals.retrieveMany({\n requests: [{ individual_id: 'individual_id' }],\n})) {\n console.log(individualResponse.individual_id);\n}", }, python: { method: 'hris.individuals.retrieve_many', example: - 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\npage = client.hris.individuals.retrieve_many()\npage = page.responses[0]\nprint(page.individual_id)', + 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\npage = client.hris.individuals.retrieve_many(\n requests=[{\n "individual_id": "individual_id"\n }],\n)\npage = page.responses[0]\nprint(page.individual_id)', }, java: { method: 'hris().individuals().retrieveMany', example: - 'package com.tryfinch.api.example;\n\nimport com.tryfinch.api.client.FinchClient;\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient;\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyPage;\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n FinchClient client = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build();\n\n HrisIndividualRetrieveManyPage page = client.hris().individuals().retrieveMany();\n }\n}', + 'package com.tryfinch.api.example;\n\nimport com.tryfinch.api.client.FinchClient;\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient;\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyPage;\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n FinchClient client = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build();\n\n HrisIndividualRetrieveManyParams params = HrisIndividualRetrieveManyParams.builder()\n .addRequest(HrisIndividualRetrieveManyParams.Request.builder()\n .individualId("individual_id")\n .build())\n .build();\n HrisIndividualRetrieveManyPage page = client.hris().individuals().retrieveMany(params);\n }\n}', }, kotlin: { method: 'hris().individuals().retrieveMany', example: - 'package com.tryfinch.api.example\n\nimport com.tryfinch.api.client.FinchClient\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyPage\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyParams\n\nfun main() {\n val client: FinchClient = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build()\n\n val page: HrisIndividualRetrieveManyPage = client.hris().individuals().retrieveMany()\n}', + 'package com.tryfinch.api.example\n\nimport com.tryfinch.api.client.FinchClient\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyPage\nimport com.tryfinch.api.models.HrisIndividualRetrieveManyParams\n\nfun main() {\n val client: FinchClient = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build()\n\n val params: HrisIndividualRetrieveManyParams = HrisIndividualRetrieveManyParams.builder()\n .addRequest(HrisIndividualRetrieveManyParams.Request.builder()\n .individualId("individual_id")\n .build())\n .build()\n val page: HrisIndividualRetrieveManyPage = client.hris().individuals().retrieveMany(params)\n}', }, go: { method: 'client.HRIS.Individuals.GetMany', example: - 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\tpage, err := client.HRIS.Individuals.GetMany(context.TODO(), finchgo.HRISIndividualGetManyParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n', + 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\tpage, err := client.HRIS.Individuals.GetMany(context.TODO(), finchgo.HRISIndividualGetManyParams{\n\t\tRequests: finchgo.F([]finchgo.HRISIndividualGetManyParamsRequest{{\n\t\t\tIndividualID: finchgo.F("individual_id"),\n\t\t}}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n', }, ruby: { method: 'hris.individuals.retrieve_many', example: - 'require "finch_api"\n\nfinch = FinchAPI::Client.new(access_token: "My Access Token")\n\npage = finch.hris.individuals.retrieve_many\n\nputs(page)', + 'require "finch_api"\n\nfinch = FinchAPI::Client.new(access_token: "My Access Token")\n\npage = finch.hris.individuals.retrieve_many(requests: [{individual_id: "individual_id"}])\n\nputs(page)', }, http: { example: - 'curl https://api.tryfinch.com/employer/individual \\\n -X POST \\\n -H \'Finch-API-Version: 2020-09-17\' \\\n -H "Authorization: Bearer $ACCESS_TOKEN"', + 'curl https://api.tryfinch.com/employer/individual \\\n -H \'Content-Type: application/json\' \\\n -H \'Finch-API-Version: 2020-09-17\' \\\n -H "Authorization: Bearer $ACCESS_TOKEN" \\\n -d \'{\n "requests": [\n {\n "individual_id": "individual_id"\n }\n ]\n }\'', }, }, }, @@ -573,7 +573,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [ response: "{ body: { id: string; class_code: string; department: object; employment: object; employment_status: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date: string; first_name: string; flsa_status: 'exempt' | 'non_exempt' | 'unknown'; is_active: boolean; last_name: string; latest_rehire_date: string; location: location; manager: object; middle_name: string; start_date: string; title: string; custom_fields?: object[]; income?: income; income_history?: income[]; source_id?: string; work_id?: string; } | { code: number; message: string; name: string; finch_code?: string; }; code: number; individual_id: string; }", markdown: - "## retrieve_many\n\n`client.hris.employments.retrieveMany(requests: { individual_id: string; }[], entity_ids?: string[]): { body: employment_data; code: number; individual_id: string; }`\n\n**post** `/employer/employment`\n\nRead individual employment and income data\n\n### Parameters\n\n- `requests: { individual_id: string; }[]`\n The array of batch requests.\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n### Returns\n\n- `{ body: { id: string; class_code: string; department: object; employment: object; employment_status: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date: string; first_name: string; flsa_status: 'exempt' | 'non_exempt' | 'unknown'; is_active: boolean; last_name: string; latest_rehire_date: string; location: location; manager: object; middle_name: string; start_date: string; title: string; custom_fields?: object[]; income?: income; income_history?: income[]; source_id?: string; work_id?: string; } | { code: number; message: string; name: string; finch_code?: string; }; code: number; individual_id: string; }`\n\n - `body: { id: string; class_code: string; department: { name: string; }; employment: { subtype: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type: 'employee' | 'contractor'; }; employment_status: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date: string; first_name: string; flsa_status: 'exempt' | 'non_exempt' | 'unknown'; is_active: boolean; last_name: string; latest_rehire_date: string; location: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager: { id: string; }; middle_name: string; start_date: string; title: string; custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; source_id?: string; work_id?: string; } | { code: number; message: string; name: string; finch_code?: string; }`\n - `code: number`\n - `individual_id: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const employmentDataResponse of client.hris.employments.retrieveMany({ requests: [{ individual_id: 'individual_id' }] })) {\n console.log(employmentDataResponse);\n}\n```", + "## retrieve_many\n\n`client.hris.employments.retrieveMany(requests: { individual_id: string; }[], entity_ids?: string[]): { body: employment_data; code: number; individual_id: string; }`\n\n**post** `/employer/employment`\n\nRead individual employment and income data\n\n### Parameters\n\n- `requests: { individual_id: string; }[]`\n The array of batch requests. Maximum 10000 items per request.\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n### Returns\n\n- `{ body: { id: string; class_code: string; department: object; employment: object; employment_status: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date: string; first_name: string; flsa_status: 'exempt' | 'non_exempt' | 'unknown'; is_active: boolean; last_name: string; latest_rehire_date: string; location: location; manager: object; middle_name: string; start_date: string; title: string; custom_fields?: object[]; income?: income; income_history?: income[]; source_id?: string; work_id?: string; } | { code: number; message: string; name: string; finch_code?: string; }; code: number; individual_id: string; }`\n\n - `body: { id: string; class_code: string; department: { name: string; }; employment: { subtype: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type: 'employee' | 'contractor'; }; employment_status: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date: string; first_name: string; flsa_status: 'exempt' | 'non_exempt' | 'unknown'; is_active: boolean; last_name: string; latest_rehire_date: string; location: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager: { id: string; }; middle_name: string; start_date: string; title: string; custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; source_id?: string; work_id?: string; } | { code: number; message: string; name: string; finch_code?: string; }`\n - `code: number`\n - `individual_id: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const employmentDataResponse of client.hris.employments.retrieveMany({ requests: [{ individual_id: 'individual_id' }] })) {\n console.log(employmentDataResponse);\n}\n```", perLanguage: { typescript: { method: 'client.hris.employments.retrieveMany', @@ -677,41 +677,41 @@ const EMBEDDED_METHODS: MethodEntry[] = [ response: "{ body: { paging: object; pay_statements: pay_statement[]; } | { code: number; message: string; name: string; finch_code?: string; } | { code: 202; finch_code: 'data_sync_in_progress'; message: 'The pay statements for this payment are being fetched. Please check back later.'; name: 'accepted'; }; code: number; payment_id: string; }", markdown: - "## retrieve_many\n\n`client.hris.payStatements.retrieveMany(requests: { payment_id: string; limit?: number; offset?: number; }[], entity_ids?: string[]): { body: pay_statement_data | object | pay_statement_data_sync_in_progress; code: number; payment_id: string; }`\n\n**post** `/employer/pay-statement`\n\nRead detailed pay statements for each individual.\n\nDeduction and contribution types are supported by the payroll systems that supports Benefits.\n\n### Parameters\n\n- `requests: { payment_id: string; limit?: number; offset?: number; }[]`\n The array of batch requests.\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n### Returns\n\n- `{ body: { paging: object; pay_statements: pay_statement[]; } | { code: number; message: string; name: string; finch_code?: string; } | { code: 202; finch_code: 'data_sync_in_progress'; message: 'The pay statements for this payment are being fetched. Please check back later.'; name: 'accepted'; }; code: number; payment_id: string; }`\n\n - `body: { paging: { offset: number; count?: number; }; pay_statements: { earnings: object[]; employee_deductions: object[]; employer_contributions: object[]; gross_pay: money; individual_id: string; net_pay: money; payment_method: 'check' | 'direct_deposit' | 'other'; taxes: object[]; total_hours: number; type: 'off_cycle_payroll' | 'one_time_payment' | 'regular_payroll'; }[]; } | { code: number; message: string; name: string; finch_code?: string; } | { code: 202; finch_code: 'data_sync_in_progress'; message: 'The pay statements for this payment are being fetched. Please check back later.'; name: 'accepted'; }`\n - `code: number`\n - `payment_id: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const payStatementResponse of client.hris.payStatements.retrieveMany({ requests: [{ payment_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }] })) {\n console.log(payStatementResponse);\n}\n```", + "## retrieve_many\n\n`client.hris.payStatements.retrieveMany(requests: { payment_id: string; limit?: number; offset?: number; }[], entity_ids?: string[]): { body: pay_statement_data | object | pay_statement_data_sync_in_progress; code: number; payment_id: string; }`\n\n**post** `/employer/pay-statement`\n\nRead detailed pay statements for each individual.\n\nDeduction and contribution types are supported by the payroll systems that supports Benefits.\n\n### Parameters\n\n- `requests: { payment_id: string; limit?: number; offset?: number; }[]`\n The array of batch requests. Maximum 10 payment_ids per request.\n\n- `entity_ids?: string[]`\n The entity IDs to specify which entities' data to access.\n\n### Returns\n\n- `{ body: { paging: object; pay_statements: pay_statement[]; } | { code: number; message: string; name: string; finch_code?: string; } | { code: 202; finch_code: 'data_sync_in_progress'; message: 'The pay statements for this payment are being fetched. Please check back later.'; name: 'accepted'; }; code: number; payment_id: string; }`\n\n - `body: { paging: { offset: number; count?: number; }; pay_statements: { earnings: object[]; employee_deductions: object[]; employer_contributions: object[]; gross_pay: money; individual_id: string; net_pay: money; payment_method: 'check' | 'direct_deposit' | 'other'; taxes: object[]; total_hours: number; type: 'off_cycle_payroll' | 'one_time_payment' | 'regular_payroll'; }[]; } | { code: number; message: string; name: string; finch_code?: string; } | { code: 202; finch_code: 'data_sync_in_progress'; message: 'The pay statements for this payment are being fetched. Please check back later.'; name: 'accepted'; }`\n - `code: number`\n - `payment_id: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\n// Automatically fetches more pages as needed.\nfor await (const payStatementResponse of client.hris.payStatements.retrieveMany({ requests: [{ payment_id: 'fc8b024e-d373-4c9c-80fc-f1625383d142' }] })) {\n console.log(payStatementResponse);\n}\n```", perLanguage: { typescript: { method: 'client.hris.payStatements.retrieveMany', example: - "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\n// Automatically fetches more pages as needed.\nfor await (const payStatementResponse of client.hris.payStatements.retrieveMany({\n requests: [{ payment_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],\n})) {\n console.log(payStatementResponse.payment_id);\n}", + "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\n// Automatically fetches more pages as needed.\nfor await (const payStatementResponse of client.hris.payStatements.retrieveMany({\n requests: [\n {\n payment_id: 'fc8b024e-d373-4c9c-80fc-f1625383d142',\n limit: 100,\n offset: 0,\n },\n ],\n})) {\n console.log(payStatementResponse.payment_id);\n}", }, python: { method: 'hris.pay_statements.retrieve_many', example: - 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\npage = client.hris.pay_statements.retrieve_many(\n requests=[{\n "payment_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }],\n)\npage = page.responses[0]\nprint(page.payment_id)', + 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\npage = client.hris.pay_statements.retrieve_many(\n requests=[{\n "payment_id": "fc8b024e-d373-4c9c-80fc-f1625383d142",\n "limit": 100,\n "offset": 0,\n }],\n)\npage = page.responses[0]\nprint(page.payment_id)', }, java: { method: 'hris().payStatements().retrieveMany', example: - 'package com.tryfinch.api.example;\n\nimport com.tryfinch.api.client.FinchClient;\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient;\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyPage;\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n FinchClient client = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build();\n\n HrisPayStatementRetrieveManyParams params = HrisPayStatementRetrieveManyParams.builder()\n .addRequest(HrisPayStatementRetrieveManyParams.Request.builder()\n .paymentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build())\n .build();\n HrisPayStatementRetrieveManyPage page = client.hris().payStatements().retrieveMany(params);\n }\n}', + 'package com.tryfinch.api.example;\n\nimport com.tryfinch.api.client.FinchClient;\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient;\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyPage;\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n FinchClient client = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build();\n\n HrisPayStatementRetrieveManyParams params = HrisPayStatementRetrieveManyParams.builder()\n .addRequest(HrisPayStatementRetrieveManyParams.Request.builder()\n .paymentId("fc8b024e-d373-4c9c-80fc-f1625383d142")\n .build())\n .build();\n HrisPayStatementRetrieveManyPage page = client.hris().payStatements().retrieveMany(params);\n }\n}', }, kotlin: { method: 'hris().payStatements().retrieveMany', example: - 'package com.tryfinch.api.example\n\nimport com.tryfinch.api.client.FinchClient\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyPage\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyParams\n\nfun main() {\n val client: FinchClient = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build()\n\n val params: HrisPayStatementRetrieveManyParams = HrisPayStatementRetrieveManyParams.builder()\n .addRequest(HrisPayStatementRetrieveManyParams.Request.builder()\n .paymentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")\n .build())\n .build()\n val page: HrisPayStatementRetrieveManyPage = client.hris().payStatements().retrieveMany(params)\n}', + 'package com.tryfinch.api.example\n\nimport com.tryfinch.api.client.FinchClient\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyPage\nimport com.tryfinch.api.models.HrisPayStatementRetrieveManyParams\n\nfun main() {\n val client: FinchClient = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build()\n\n val params: HrisPayStatementRetrieveManyParams = HrisPayStatementRetrieveManyParams.builder()\n .addRequest(HrisPayStatementRetrieveManyParams.Request.builder()\n .paymentId("fc8b024e-d373-4c9c-80fc-f1625383d142")\n .build())\n .build()\n val page: HrisPayStatementRetrieveManyPage = client.hris().payStatements().retrieveMany(params)\n}', }, go: { method: 'client.HRIS.PayStatements.GetMany', example: - 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\tpage, err := client.HRIS.PayStatements.GetMany(context.TODO(), finchgo.HRISPayStatementGetManyParams{\n\t\tRequests: finchgo.F([]finchgo.HRISPayStatementGetManyParamsRequest{{\n\t\t\tPaymentID: finchgo.F("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"),\n\t\t}}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n', + 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\tpage, err := client.HRIS.PayStatements.GetMany(context.TODO(), finchgo.HRISPayStatementGetManyParams{\n\t\tRequests: finchgo.F([]finchgo.HRISPayStatementGetManyParamsRequest{{\n\t\t\tPaymentID: finchgo.F("fc8b024e-d373-4c9c-80fc-f1625383d142"),\n\t\t\tLimit: finchgo.F(int64(100)),\n\t\t\tOffset: finchgo.F(int64(0)),\n\t\t}}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", page)\n}\n', }, ruby: { method: 'hris.pay_statements.retrieve_many', example: - 'require "finch_api"\n\nfinch = FinchAPI::Client.new(access_token: "My Access Token")\n\npage = finch.hris.pay_statements.retrieve_many(requests: [{payment_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"}])\n\nputs(page)', + 'require "finch_api"\n\nfinch = FinchAPI::Client.new(access_token: "My Access Token")\n\npage = finch.hris.pay_statements.retrieve_many(requests: [{payment_id: "fc8b024e-d373-4c9c-80fc-f1625383d142"}])\n\nputs(page)', }, http: { example: - 'curl https://api.tryfinch.com/employer/pay-statement \\\n -H \'Content-Type: application/json\' \\\n -H \'Finch-API-Version: 2020-09-17\' \\\n -H "Authorization: Bearer $ACCESS_TOKEN" \\\n -d \'{\n "requests": [\n {\n "payment_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\n ]\n }\'', + 'curl https://api.tryfinch.com/employer/pay-statement \\\n -H \'Content-Type: application/json\' \\\n -H \'Finch-API-Version: 2020-09-17\' \\\n -H "Authorization: Bearer $ACCESS_TOKEN" \\\n -d \'{\n "requests": [\n {\n "payment_id": "fc8b024e-d373-4c9c-80fc-f1625383d142",\n "limit": 100,\n "offset": 0\n }\n ]\n }\'', }, }, }, diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts index b69ebc4f..eddec935 100644 --- a/packages/mcp-server/src/server.ts +++ b/packages/mcp-server/src/server.ts @@ -29,7 +29,7 @@ export const newMcpServer = async ({ new McpServer( { name: 'tryfinch_finch_api_api', - version: '10.1.1', + version: '10.2.0', }, { instructions: await getInstructions({ stainlessApiKey, customInstructionsPath }), diff --git a/src/resources/hris/employments.ts b/src/resources/hris/employments.ts index ea330dd2..ed3de931 100644 --- a/src/resources/hris/employments.ts +++ b/src/resources/hris/employments.ts @@ -215,7 +215,7 @@ export interface EmploymentDataResponse { export interface EmploymentRetrieveManyParams { /** - * Body param: The array of batch requests. + * Body param: The array of batch requests. Maximum 10000 items per request. */ requests: Array; @@ -228,9 +228,7 @@ export interface EmploymentRetrieveManyParams { export namespace EmploymentRetrieveManyParams { export interface Request { /** - * A stable Finch `id` (UUID v4) for an individual in the company. There is no - * limit to the number of `individual_id` to send per request. It is preferantial - * to send all ids in a single request for Finch to optimize provider rate-limits. + * A stable Finch `id` (UUID v4) for an individual in the company. */ individual_id: string; } diff --git a/src/resources/hris/individuals.ts b/src/resources/hris/individuals.ts index 566d7bd5..20789395 100644 --- a/src/resources/hris/individuals.ts +++ b/src/resources/hris/individuals.ts @@ -12,16 +12,18 @@ export class Individuals extends APIResource { * @example * ```ts * // Automatically fetches more pages as needed. - * for await (const individualResponse of client.hris.individuals.retrieveMany()) { + * for await (const individualResponse of client.hris.individuals.retrieveMany( + * { requests: [{ individual_id: 'individual_id' }] }, + * )) { * // ... * } * ``` */ retrieveMany( - params: IndividualRetrieveManyParams | null | undefined = {}, + params: IndividualRetrieveManyParams, options?: RequestOptions, ): PagePromise { - const { entity_ids, ...body } = params ?? {}; + const { entity_ids, ...body } = params; return this._client.getAPIList('/employer/individual', ResponsesPage, { query: { entity_ids }, body, @@ -141,28 +143,28 @@ export interface IndividualResponse { export interface IndividualRetrieveManyParams { /** - * Query param: The entity IDs to specify which entities' data to access. + * Body param: The array of batch requests. Maximum 10000 items per request. */ - entity_ids?: Array; + requests: Array; /** - * Body param + * Query param: The entity IDs to specify which entities' data to access. */ - options?: IndividualRetrieveManyParams.Options | null; + entity_ids?: Array; /** * Body param */ - requests?: Array; + options?: IndividualRetrieveManyParams.Options | null; } export namespace IndividualRetrieveManyParams { - export interface Options { - include?: Array; + export interface Request { + individual_id: string; } - export interface Request { - individual_id?: string; + export interface Options { + include?: Array; } } diff --git a/src/resources/hris/pay-statements.ts b/src/resources/hris/pay-statements.ts index 368765b1..befef870 100644 --- a/src/resources/hris/pay-statements.ts +++ b/src/resources/hris/pay-statements.ts @@ -20,7 +20,9 @@ export class PayStatements extends APIResource { * { * requests: [ * { - * payment_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', + * payment_id: 'fc8b024e-d373-4c9c-80fc-f1625383d142', + * limit: 100, + * offset: 0, * }, * ], * }, @@ -313,7 +315,7 @@ export namespace PayStatementResponse { export interface PayStatementRetrieveManyParams { /** - * Body param: The array of batch requests. + * Body param: The array of batch requests. Maximum 10 payment_ids per request. */ requests: Array; @@ -331,7 +333,7 @@ export namespace PayStatementRetrieveManyParams { payment_id: string; /** - * Number of pay statements to return (defaults to all). + * Number of pay statements to return (defaults to 100, maximum 5000). */ limit?: number; diff --git a/src/version.ts b/src/version.ts index 4adfd0f4..a1944f9a 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '10.1.1'; // x-release-please-version +export const VERSION = '10.2.0'; // x-release-please-version diff --git a/tests/api-resources/hris/directory.test.ts b/tests/api-resources/hris/directory.test.ts index 0990c668..7955d5e7 100644 --- a/tests/api-resources/hris/directory.test.ts +++ b/tests/api-resources/hris/directory.test.ts @@ -27,7 +27,7 @@ describe('resource directory', () => { client.hris.directory.list( { entity_ids: ['550e8400-e29b-41d4-a716-446655440000'], - limit: 0, + limit: 10000, offset: 0, }, { path: '/_stainless_unknown_path' }, @@ -52,7 +52,7 @@ describe('resource directory', () => { client.hris.directory.listIndividuals( { entity_ids: ['550e8400-e29b-41d4-a716-446655440000'], - limit: 0, + limit: 10000, offset: 0, }, { path: '/_stainless_unknown_path' }, diff --git a/tests/api-resources/hris/individuals.test.ts b/tests/api-resources/hris/individuals.test.ts index ff4c0d35..f9d573cb 100644 --- a/tests/api-resources/hris/individuals.test.ts +++ b/tests/api-resources/hris/individuals.test.ts @@ -10,8 +10,10 @@ const client = new Finch({ }); describe('resource individuals', () => { - test('retrieveMany', async () => { - const responsePromise = client.hris.individuals.retrieveMany(); + test('retrieveMany: only required params', async () => { + const responsePromise = client.hris.individuals.retrieveMany({ + requests: [{ individual_id: 'individual_id' }], + }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); const response = await responsePromise; @@ -21,17 +23,11 @@ describe('resource individuals', () => { expect(dataAndResponse.response).toBe(rawResponse); }); - test('retrieveMany: request options and params are passed correctly', async () => { - // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error - await expect( - client.hris.individuals.retrieveMany( - { - entity_ids: ['550e8400-e29b-41d4-a716-446655440000'], - options: { include: ['string'] }, - requests: [{ individual_id: 'individual_id' }], - }, - { path: '/_stainless_unknown_path' }, - ), - ).rejects.toThrow(Finch.NotFoundError); + test('retrieveMany: required and optional params', async () => { + const response = await client.hris.individuals.retrieveMany({ + requests: [{ individual_id: 'individual_id' }], + entity_ids: ['550e8400-e29b-41d4-a716-446655440000'], + options: { include: ['string'] }, + }); }); }); diff --git a/tests/api-resources/hris/pay-statements.test.ts b/tests/api-resources/hris/pay-statements.test.ts index 47198b3b..3b5f82e9 100644 --- a/tests/api-resources/hris/pay-statements.test.ts +++ b/tests/api-resources/hris/pay-statements.test.ts @@ -12,7 +12,7 @@ const client = new Finch({ describe('resource payStatements', () => { test('retrieveMany: only required params', async () => { const responsePromise = client.hris.payStatements.retrieveMany({ - requests: [{ payment_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }], + requests: [{ payment_id: 'fc8b024e-d373-4c9c-80fc-f1625383d142' }], }); const rawResponse = await responsePromise.asResponse(); expect(rawResponse).toBeInstanceOf(Response); @@ -27,8 +27,8 @@ describe('resource payStatements', () => { const response = await client.hris.payStatements.retrieveMany({ requests: [ { - payment_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', - limit: 50, + payment_id: 'fc8b024e-d373-4c9c-80fc-f1625383d142', + limit: 100, offset: 0, }, ], diff --git a/yarn.lock b/yarn.lock index 66450734..f9faeb9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,12 +12,12 @@ resolved "https://registry.yarnpkg.com/@andrewbranch/untar.js/-/untar.js-1.0.3.tgz#ba9494f85eb83017c5c855763969caf1d0adea00" integrity sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw== -"@arethetypeswrong/cli@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@arethetypeswrong/cli/-/cli-0.17.0.tgz#f97f10926b3f9f9eb5117550242d2e06c25cadac" - integrity sha512-xSMW7bfzVWpYw5JFgZqBXqr6PdR0/REmn3DkxCES5N0JTcB0CVgbIynJCvKBFmXaPc3hzmmTrb7+yPDRoOSZdA== +"@arethetypeswrong/cli@^0.18.0": + version "0.18.4" + resolved "https://registry.yarnpkg.com/@arethetypeswrong/cli/-/cli-0.18.4.tgz#c31f54f3b0d0e0f3256ab3edb6530beeb5e64b4b" + integrity sha512-kNWo6LTzGAuLYPpJ7Sgo63whSUeeSuKMlYx6IBgzs4ONEG807gW4hSSENvpeCHzO2H2wIzG5EFl0OKBbqGBAyA== dependencies: - "@arethetypeswrong/core" "0.17.0" + "@arethetypeswrong/core" "0.18.4" chalk "^4.1.2" cli-table3 "^0.6.3" commander "^10.0.1" @@ -25,15 +25,16 @@ marked-terminal "^7.1.0" semver "^7.5.4" -"@arethetypeswrong/core@0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@arethetypeswrong/core/-/core-0.17.0.tgz#abb3b5f425056d37193644c2a2de4aecf866b76b" - integrity sha512-FHyhFizXNetigTVsIhqXKGYLpazPS5YNojEPpZEUcBPt9wVvoEbNIvG+hybuBR+pjlRcbyuqhukHZm1fr+bDgA== +"@arethetypeswrong/core@0.18.4": + version "0.18.4" + resolved "https://registry.yarnpkg.com/@arethetypeswrong/core/-/core-0.18.4.tgz#24edea3d651dea7d32bf6f1cc9ee9a00db39de49" + integrity sha512-M5F0ePyN6h2Z6XxRiyIPqjGbltotXLjR0CKA0uKspsDu0QmgTNYvRb4RSQPMUs2ZXZHCCYpbaZbFbYOXLxCjUA== dependencies: "@andrewbranch/untar.js" "^1.0.3" + "@loaderkit/resolve" "^1.0.2" cjs-module-lexer "^1.2.3" - fflate "^0.8.2" - lru-cache "^10.4.3" + fflate "^0.8.3" + lru-cache "^11.0.1" semver "^7.5.4" typescript "5.6.1-rc" validate-npm-package-name "^5.0.0" @@ -306,6 +307,11 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@braidai/lang@^1.0.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@braidai/lang/-/lang-1.1.2.tgz#65bc2bc1db6d00e153b95ac7006f4573e289e9be" + integrity sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA== + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -688,6 +694,12 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@loaderkit/resolve@^1.0.2": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@loaderkit/resolve/-/resolve-1.0.6.tgz#8d45341e688faecc25b3ae919c0f45d94c4e26c9" + integrity sha512-G8FdIoF5CypfwmD9rl8BXod5HDn8JqB0CCNBXDTaRZ+yRYhARrrSToX1zg1zy9jX3zLqigsELwhT4gNtkdQAUg== + dependencies: + "@braidai/lang" "^1.0.0" "@noble/hashes@^1.5.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" @@ -1701,10 +1713,10 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fflate@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" - integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== +fflate@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.3.tgz#bc27d8eb30343d4d512abb03480202ce65d825fc" + integrity sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA== file-entry-cache@^8.0.0: version "8.0.0" @@ -2495,10 +2507,10 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lru-cache@^10.4.3: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== +lru-cache@^11.0.1: + version "11.5.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.5.2.tgz#00e16665c90c620fba14a3c368732a976493f760" + integrity sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== lru-cache@^5.1.1: version "5.1.1"