diff --git a/.eslintrc b/.eslintrc index b8a1949a..3f754f8a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -8,7 +8,7 @@ ], "rules": { "@nangohq/custom-integrations-linting/no-console-log": "error", - "@nangohq/custom-integrations-linting/no-object-casting": "warn", + "@nangohq/custom-integrations-linting/no-object-casting": "error", "@nangohq/custom-integrations-linting/no-value-modification": "warn", "@nangohq/custom-integrations-linting/no-while-true": "warn", "@nangohq/custom-integrations-linting/proxy-call-retries": "error", @@ -16,6 +16,6 @@ "@nangohq/custom-integrations-linting/enforce-proxy-configuration-type": "error", "@nangohq/custom-integrations-linting/no-try-catch-unless-explicitly-allowed": "warn", "@nangohq/custom-integrations-linting/query-params-in-params-object": "error", - "@nangohq/custom-integrations-linting/include-docs-for-endpoints": "warn", + "@nangohq/custom-integrations-linting/include-docs-for-endpoints": "error", } } diff --git a/integrations/ashby/syncs/candidates.ts b/integrations/ashby/syncs/candidates.ts index 288caa6e..11196a52 100644 --- a/integrations/ashby/syncs/candidates.ts +++ b/integrations/ashby/syncs/candidates.ts @@ -15,6 +15,7 @@ async function saveAllCandidates(nango: NangoSync, candidatelastsyncToken: strin // eslint-disable-next-line @nangohq/custom-integrations-linting/no-while-true while (true) { const payload: ProxyConfiguration = { + // https://developers.ashbyhq.com/reference/candidatelist endpoint: '/candidate.list', data: { ...(candidatelastsyncToken && { syncToken: candidatelastsyncToken }), diff --git a/integrations/ashby/syncs/jobs.ts b/integrations/ashby/syncs/jobs.ts index 248b1c84..e1e15a4b 100644 --- a/integrations/ashby/syncs/jobs.ts +++ b/integrations/ashby/syncs/jobs.ts @@ -15,6 +15,7 @@ async function saveAllJobs(nango: NangoSync, jobslastsyncToken: string) { // eslint-disable-next-line @nangohq/custom-integrations-linting/no-while-true while (true) { const payload: ProxyConfiguration = { + // https://developers.ashbyhq.com/reference/joblist endpoint: '/job.list', data: { ...(jobslastsyncToken && { syncToken: jobslastsyncToken }), diff --git a/integrations/aws-iam/actions/create-user.ts b/integrations/aws-iam/actions/create-user.ts index c6b6f361..5b40d2e3 100644 --- a/integrations/aws-iam/actions/create-user.ts +++ b/integrations/aws-iam/actions/create-user.ts @@ -62,13 +62,13 @@ export default async function runAction(nango: NangoAction, input: AWSCreateUser ); const config: ProxyConfiguration = { + // https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html endpoint: awsIAMParams.path, params: paramsObject, retries: 10 }; // Make the Create User request - // https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html const resp = await nango.post({ ...config, headers: { diff --git a/integrations/aws-iam/actions/delete-user.ts b/integrations/aws-iam/actions/delete-user.ts index 591d974d..a9fe3ac3 100644 --- a/integrations/aws-iam/actions/delete-user.ts +++ b/integrations/aws-iam/actions/delete-user.ts @@ -27,13 +27,12 @@ export default async function runAction(nango: NangoAction, input: UserNamEntity const { authorizationHeader, date } = await getAWSAuthHeader(nango, awsIAMParams.method, awsIAMParams.service, awsIAMParams.path, querystring); const config: ProxyConfiguration = { + // https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html endpoint: awsIAMParams.path, params: awsIAMParams.params, retries: 10 }; - // Make the delete user request - // https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html await nango.get({ ...config, headers: { diff --git a/integrations/aws-iam/syncs/users.ts b/integrations/aws-iam/syncs/users.ts index f7bcf082..33280757 100644 --- a/integrations/aws-iam/syncs/users.ts +++ b/integrations/aws-iam/syncs/users.ts @@ -74,6 +74,7 @@ async function* paginate(nango: NangoSync, requestParams: AWSIAMRequestParams // Authorization header setup const { authorizationHeader, date } = await getAWSAuthHeader(nango, method, service, path, querystring); const config: ProxyConfiguration = { + // see docs in calling functions endpoint: '/', params: queryParams, headers: { @@ -92,6 +93,7 @@ async function* paginate(nango: NangoSync, requestParams: AWSIAMRequestParams if (response.data.ListUsersResponse?.ListUsersResult) { const listUsersResult = response.data.ListUsersResponse.ListUsersResult; const users = listUsersResult.Users; + // eslint-disable-next-line @nangohq/custom-integrations-linting/no-object-casting yield users as T[]; nextMarker = listUsersResult.IsTruncated ? listUsersResult.Marker : undefined; } @@ -100,6 +102,7 @@ async function* paginate(nango: NangoSync, requestParams: AWSIAMRequestParams if (response.data.ListUserTagsResponse?.ListUserTagsResult) { const listUserTagsResult = response.data.ListUserTagsResponse.ListUserTagsResult; const tags = listUserTagsResult.Tags; + // eslint-disable-next-line @nangohq/custom-integrations-linting/no-object-casting yield tags as T[]; nextMarker = listUserTagsResult.IsTruncated ? listUserTagsResult.Marker : undefined; } diff --git a/integrations/checkr-partner-staging/syncs/account.ts b/integrations/checkr-partner-staging/syncs/account.ts index 276a2d79..3bfbea5e 100644 --- a/integrations/checkr-partner-staging/syncs/account.ts +++ b/integrations/checkr-partner-staging/syncs/account.ts @@ -11,6 +11,7 @@ export default async function fetchData(nango: NangoSync): Promise { }); } const config: ProxyConfiguration = { + // https://docs.checkr.com/#operation/account endpoint: '/v1/account', headers: { Authorization: 'Basic ' + Buffer.from(access_token + ':').toString('base64') diff --git a/integrations/checkr-partner/helpers/construct-request.ts b/integrations/checkr-partner/helpers/construct-request.ts index 7661dcc3..febba52f 100644 --- a/integrations/checkr-partner/helpers/construct-request.ts +++ b/integrations/checkr-partner/helpers/construct-request.ts @@ -39,6 +39,7 @@ export async function constructRequestWithConnectionConfig( } const config: ProxyConfiguration = { + // https://docs.checkr.com/ endpoint, headers: { Authorization: 'Basic ' + Buffer.from(access_token + ':').toString('base64') diff --git a/integrations/clari-copilot/syncs/calls.ts b/integrations/clari-copilot/syncs/calls.ts index 1896ffc2..be97c806 100644 --- a/integrations/clari-copilot/syncs/calls.ts +++ b/integrations/clari-copilot/syncs/calls.ts @@ -27,6 +27,7 @@ async function getAllCalls(nango: NangoSync) { const queryDate = lastSyncDate ? lastSyncDate.toISOString() : new Date(new Date().setFullYear(new Date().getFullYear() - 1)).toISOString(); const config: ProxyConfiguration = { + // https://api-doc.copilot.clari.com/#tag/call/paths/~1calls/get endpoint: '/calls', params: { filterTimeGt: queryDate }, // filter calls after lastSyncDate paginate: { diff --git a/integrations/confluence/syncs/pages.ts b/integrations/confluence/syncs/pages.ts index 81a4ce23..705af49c 100644 --- a/integrations/confluence/syncs/pages.ts +++ b/integrations/confluence/syncs/pages.ts @@ -7,6 +7,7 @@ export default async function fetchData(nango: NangoSync) { const proxyConfig: ProxyConfiguration = { // The base URL is specific for user because of the cloud ID path param baseUrlOverride: `https://api.atlassian.com/ex/confluence/${cloudId}`, + // https://developer.atlassian.com/cloud/confluence/rest/v2/api-group-page/#api-pages-get endpoint: `/wiki/api/v2/pages`, paginate: { limit: 100 diff --git a/integrations/confluence/syncs/spaces.ts b/integrations/confluence/syncs/spaces.ts index 6875c3e1..af93560c 100644 --- a/integrations/confluence/syncs/spaces.ts +++ b/integrations/confluence/syncs/spaces.ts @@ -15,6 +15,7 @@ export default async function fetchData(nango: NangoSync) { const proxyConfig: ProxyConfiguration = { baseUrlOverride: `https://api.atlassian.com/ex/confluence/${cloudId}`, // The base URL is specific for user because of the cloud ID path param + // https://developer.atlassian.com/cloud/confluence/rest/v2/api-group-space/#api-spaces-get endpoint: `/wiki/api/v2/spaces`, retries: 10, paginate: { diff --git a/integrations/discourse/actions/create-category.ts b/integrations/discourse/actions/create-category.ts index bef7a25b..7f3833e2 100644 --- a/integrations/discourse/actions/create-category.ts +++ b/integrations/discourse/actions/create-category.ts @@ -8,6 +8,7 @@ export default async function runAction(nango: NangoAction, input: CreateCategor } const config: ProxyConfiguration = { + // https://docs.discourse.org/#tag/Categories/operation/createCategory endpoint: '/categories', retries: 10, data: input diff --git a/integrations/discourse/actions/create-topic.ts b/integrations/discourse/actions/create-topic.ts index 5d233b57..54359b0f 100644 --- a/integrations/discourse/actions/create-topic.ts +++ b/integrations/discourse/actions/create-topic.ts @@ -9,6 +9,7 @@ export default async function runAction(nango: NangoAction, input: CreateTopic): } const config: ProxyConfiguration = { + // https://docs.discourse.org/#tag/Posts/operation/createTopicPostPM endpoint: '/posts', retries: 10, data: input diff --git a/integrations/discourse/actions/update-topic-status.ts b/integrations/discourse/actions/update-topic-status.ts index 29d9fb2a..664b8fbb 100644 --- a/integrations/discourse/actions/update-topic-status.ts +++ b/integrations/discourse/actions/update-topic-status.ts @@ -22,6 +22,7 @@ export default async function runAction(nango: NangoAction, input: TopicStatus): const { id, ...rest } = input; const config: ProxyConfiguration = { + // https://docs.discourse.org/#tag/Topics/operation/updateTopicStatus endpoint: `/t/${input.id}/status`, retries: 10, data: rest diff --git a/integrations/discourse/helpers/paginate.ts b/integrations/discourse/helpers/paginate.ts deleted file mode 100644 index 56f5cfc1..00000000 --- a/integrations/discourse/helpers/paginate.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { NangoSync, ProxyConfiguration } from '../../models'; - -export interface PaginationParams { - endpoint: string; - initialPage?: number; - params?: Record; -} - -/** - * Asynchronous generator function for paginating through API results. - * - * This function handles pagination by making repeated requests to the specified API endpoint. - * It yields arrays of results for each page until no more data is available. - * - * @param nango The NangoSync instance used for making API calls. - * @param params Configuration parameters for pagination, including the endpoint, initial page, and additional params. - * @returns An async generator that yields arrays of results from each page. - */ -async function* paginate(nango: NangoSync, { endpoint, initialPage = 1, params }: PaginationParams): AsyncGenerator { - let currentPage = initialPage; - - while (true) { - const payload: ProxyConfiguration = { - endpoint, - params: { - page: currentPage, - ...params - }, - retries: 10 - }; - - const response = await nango.get(payload); - const responseData = response.data; - - if (!responseData || responseData.length === 0) { - break; - } - - yield responseData; - - currentPage++; - } -} - -export default paginate; diff --git a/integrations/discourse/syncs/active-users.ts b/integrations/discourse/syncs/active-users.ts index 93abd89c..ad772316 100644 --- a/integrations/discourse/syncs/active-users.ts +++ b/integrations/discourse/syncs/active-users.ts @@ -1,7 +1,5 @@ -import type { NangoSync, User } from '../../models'; +import type { NangoSync, ProxyConfiguration, User } from '../../models'; import type { DiscourseUser } from '../types'; -import paginate from '../helpers/paginate.js'; -import type { PaginationParams } from '../helpers/paginate'; import { toUser } from '../mappers/toUser.js'; /** @@ -17,16 +15,23 @@ import { toUser } from '../mappers/toUser.js'; * @returns A promise that resolves when the data has been successfully fetched and saved. */ export default async function fetchData(nango: NangoSync): Promise { - const config: PaginationParams = { + const config: ProxyConfiguration = { + // https://docs.discourse.org/#tag/Users/operation/adminListUsers endpoint: '/admin/users/list/active', params: { order: 'created', asc: 'true', - stats: true // Additional parameters for the API request can be added in here + stats: 'true' + }, + paginate: { + type: 'offset', + offset_name_in_request: 'page', + offset_calculation_method: 'per-page', + response_path: '' } }; - for await (const users of paginate(nango, config)) { + for await (const users of nango.paginate(config)) { await nango.batchSave(users.map(toUser), 'User'); } } diff --git a/integrations/discourse/syncs/categories.ts b/integrations/discourse/syncs/categories.ts index 80426b09..b868efc4 100644 --- a/integrations/discourse/syncs/categories.ts +++ b/integrations/discourse/syncs/categories.ts @@ -4,6 +4,7 @@ import type { CategoryResponse } from '../types'; export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { retries: 10, + // https://docs.discourse.org/#tag/Categories/operation/listCategories endpoint: '/categories' }; diff --git a/integrations/docusign/actions/create-user.ts b/integrations/docusign/actions/create-user.ts index df989611..fe176387 100644 --- a/integrations/docusign/actions/create-user.ts +++ b/integrations/docusign/actions/create-user.ts @@ -30,8 +30,8 @@ export default async function runAction(nango: NangoAction, input: DocuSignCreat ]; const config: ProxyConfiguration = { - // https://developers.docusign.com/docs/esign-rest-api/reference/users/users/create/ baseUrlOverride: baseUri, + // https://developers.docusign.com/docs/esign-rest-api/reference/users/users/create/ endpoint: `/restapi/v2.1/accounts/${accountId}/users`, data: { newUsers diff --git a/integrations/docusign/actions/delete-user.ts b/integrations/docusign/actions/delete-user.ts index 0ed8e952..8ef3963d 100644 --- a/integrations/docusign/actions/delete-user.ts +++ b/integrations/docusign/actions/delete-user.ts @@ -18,8 +18,8 @@ export default async function runAction(nango: NangoAction, input: IdEntity): Pr const { baseUri, accountId } = await getRequestInfo(nango); const config: ProxyConfiguration = { - // https://developers.docusign.com/docs/esign-rest-api/reference/users/users/delete/ baseUrlOverride: baseUri, + // https://developers.docusign.com/docs/esign-rest-api/reference/users/users/delete/ endpoint: `/restapi/v2.1/accounts/${accountId}/users`, data: { users: [{ userId: parsedInput.data.id }] diff --git a/integrations/evaluagent/syncs/groups.ts b/integrations/evaluagent/syncs/groups.ts index 1ca073c3..2c75bc5e 100644 --- a/integrations/evaluagent/syncs/groups.ts +++ b/integrations/evaluagent/syncs/groups.ts @@ -12,6 +12,7 @@ interface EvaluAgentGroupResponse { export default async function fetchData(nango: NangoSync) { const payload: ProxyConfiguration = { + // https://docs.evaluagent.com/#operation/fetchGroups endpoint: '/v1/org/groups', retries: 10 }; diff --git a/integrations/evaluagent/syncs/roles.ts b/integrations/evaluagent/syncs/roles.ts index 49fd0bfa..dc662447 100644 --- a/integrations/evaluagent/syncs/roles.ts +++ b/integrations/evaluagent/syncs/roles.ts @@ -7,6 +7,7 @@ interface EvaluAgentRoleResponse { export default async function fetchData(nango: NangoSync) { const payload: ProxyConfiguration = { + // https://docs.evaluagent.com/#operation/fetchRoles endpoint: '/v1/org/roles', retries: 10 }; diff --git a/integrations/evaluagent/syncs/users.ts b/integrations/evaluagent/syncs/users.ts index 0a9340c8..bed42c48 100644 --- a/integrations/evaluagent/syncs/users.ts +++ b/integrations/evaluagent/syncs/users.ts @@ -11,6 +11,7 @@ interface EvaluAgentUserResponse { export default async function fetchData(nango: NangoSync) { const payload: ProxyConfiguration = { + // https://docs.evaluagent.com/#operation/fetchUsers endpoint: '/v1/org/users', retries: 10 }; diff --git a/integrations/expensify/syncs/users.ts b/integrations/expensify/syncs/users.ts index 158afa7d..56ae1182 100644 --- a/integrations/expensify/syncs/users.ts +++ b/integrations/expensify/syncs/users.ts @@ -10,6 +10,7 @@ export default async function fetchData(nango: NangoSync): Promise { const { id: adminPolicyId } = policy; const config: ProxyConfiguration = { + // https://integrations.expensify.com/Integration-Server/doc/#policy-getter endpoint: `/ExpensifyIntegrations`, data: 'requestJobDescription=' + diff --git a/integrations/freshdesk/actions/create-contact.ts b/integrations/freshdesk/actions/create-contact.ts index e0e741d1..bcbe764c 100644 --- a/integrations/freshdesk/actions/create-contact.ts +++ b/integrations/freshdesk/actions/create-contact.ts @@ -35,6 +35,7 @@ export default async function runAction(nango: NangoAction, input: CreateContact } const config: ProxyConfiguration = { + // https://developer.freshdesk.com/api/#create_contact endpoint: `/api/v2/contacts`, data: parsedInput.data, retries: 10 diff --git a/integrations/freshdesk/actions/delete-contact.ts b/integrations/freshdesk/actions/delete-contact.ts index ab0b038c..8afc88c5 100644 --- a/integrations/freshdesk/actions/delete-contact.ts +++ b/integrations/freshdesk/actions/delete-contact.ts @@ -21,6 +21,7 @@ export default async function runAction(nango: NangoAction, input: IdEntity): Pr } const config: ProxyConfiguration = { + // https://developer.freshdesk.com/api/#soft_delete_contact endpoint: `/api/v2/contacts/${parsedInput.data.id}`, retries: 10 }; diff --git a/integrations/freshdesk/syncs/articles.ts b/integrations/freshdesk/syncs/articles.ts index b2c13b3b..26c11767 100644 --- a/integrations/freshdesk/syncs/articles.ts +++ b/integrations/freshdesk/syncs/articles.ts @@ -11,11 +11,11 @@ import { toArticle } from '../mappers/to-article.js'; * @returns Promise that resolves when all articles are fetched and saved. */ export default async function fetchData(nango: NangoSync): Promise { - const categoriesEndpoint = '/api/v2/solutions/categories'; const foldersEndpoint = (categoryId: number) => `/api/v2/solutions/categories/${categoryId}/folders`; const categoriesConfig: ProxyConfiguration = { - endpoint: categoriesEndpoint, + // https://developers.freshdesk.com/api/#solutions + endpoint: '/api/v2/solutions/categories', retries: 10 }; //https://developers.freshdesk.com/api/#solution_category_attributes @@ -24,6 +24,7 @@ export default async function fetchData(nango: NangoSync): Promise { for (const category of categories) { const folderConfig: ProxyConfiguration = { + // https://developers.freshdesk.com/api/#solutions endpoint: foldersEndpoint(category.id), retries: 10, paginate: { @@ -57,6 +58,7 @@ async function fetchArticlesAndSubfolders(nango: NangoSync, folderId: number): P // Fetch subfolders. // Some user accounts do not support subfolders. Handling that edge case here. + // @allowTryCatch try { subfolders = await fetchSubfolders(nango, folderId); } catch (e: any) { @@ -86,6 +88,7 @@ async function fetchArticlesAndSubfolders(nango: NangoSync, folderId: number): P async function fetchArticlesFromFolder(nango: NangoSync, folderId: number): Promise { const articlesEndpoint = (folderId: number) => `/api/v2/solutions/folders/${folderId}/articles`; const articlesConfig: ProxyConfiguration = { + // https://developers.freshdesk.com/api/#solutions endpoint: articlesEndpoint(folderId), retries: 10, paginate: { @@ -116,6 +119,7 @@ async function fetchArticlesFromFolder(nango: NangoSync, folderId: number): Prom async function fetchSubfolders(nango: NangoSync, folderId: number): Promise { const subfoldersEndpoint = `/api/v2/solutions/folders/${folderId}/subfolders`; const subfoldersConfig: ProxyConfiguration = { + // https://developers.freshdesk.com/api/#solutions endpoint: subfoldersEndpoint, retries: 10, paginate: { diff --git a/integrations/front/syncs/list-conversations.ts b/integrations/front/syncs/list-conversations.ts index c4cde4a9..2525f61b 100644 --- a/integrations/front/syncs/list-conversations.ts +++ b/integrations/front/syncs/list-conversations.ts @@ -4,6 +4,7 @@ import type { FrontConversation } from '../types'; export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { + // https://dev.frontapp.com/reference/list-conversations endpoint: '/conversations', paginate: { type: 'link', @@ -14,7 +15,6 @@ export default async function fetchData(nango: NangoSync): Promise { }, retries: 10 }; - // https://dev.frontapp.com/reference/list-conversations for await (const conversations of nango.paginate(config)) { const mappedConversations = conversations.map((conversation: FrontConversation) => toConversation(conversation)); await nango.batchSave(mappedConversations, 'Conversation'); diff --git a/integrations/github/actions/list-repos.ts b/integrations/github/actions/list-repos.ts index 984c0706..d20995aa 100644 --- a/integrations/github/actions/list-repos.ts +++ b/integrations/github/actions/list-repos.ts @@ -36,6 +36,7 @@ async function getAll(nango: NangoSync, endpoint: string) { const records: any[] = []; const proxyConfig: ProxyConfiguration = { + // eslint-disable-next-line @nangohq/custom-integrations-linting/include-docs-for-endpoints endpoint, paginate: { limit: LIMIT diff --git a/integrations/github/syncs/issues.ts b/integrations/github/syncs/issues.ts index 55ca3ce4..ed131370 100644 --- a/integrations/github/syncs/issues.ts +++ b/integrations/github/syncs/issues.ts @@ -40,6 +40,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllRepositories(nango: NangoSync) { const records: any[] = []; const proxyConfig: ProxyConfiguration = { + // https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#list-repositories-for-the-authenticated-user endpoint: '/user/repos', paginate: { limit: LIMIT diff --git a/integrations/github/syncs/list-files.ts b/integrations/github/syncs/list-files.ts index 6666c4bf..13785116 100644 --- a/integrations/github/syncs/list-files.ts +++ b/integrations/github/syncs/list-files.ts @@ -28,6 +28,7 @@ async function saveAllRepositoryFiles(nango: NangoSync, owner: string, repo: str const endpoint = `/repos/${owner}/${repo}/git/trees/${branch}`; const proxyConfig: ProxyConfiguration = { + // https://docs.github.com/en/rest/git/trees?apiVersion=2022-11-28 endpoint, params: { recursive: '1' }, paginate: { response_path: 'tree', limit: LIMIT } @@ -56,6 +57,7 @@ async function getCommitsSinceLastSync(owner: string, repo: string, since: Date, const endpoint = `/repos/${owner}/${repo}/commits`; const proxyConfig: ProxyConfiguration = { + // https://docs.github.com/en/rest/commits/commits?apiVersion=2022-11-28 endpoint, params: { since: since.toISOString() }, paginate: { @@ -78,6 +80,7 @@ async function saveFilesUpdatedByCommit(owner: string, repo: string, commitSumma let count = 0; const endpoint = `/repos/${owner}/${repo}/commits/${commitSummary.sha}`; const proxyConfig: ProxyConfiguration = { + // https://docs.github.com/en/rest/commits/commits?apiVersion=2022-11-28#get-a-commit endpoint, paginate: { response_path: 'files', diff --git a/integrations/google-drive/actions/fetch-document.ts b/integrations/google-drive/actions/fetch-document.ts index c5460feb..7fe3fe5f 100644 --- a/integrations/google-drive/actions/fetch-document.ts +++ b/integrations/google-drive/actions/fetch-document.ts @@ -50,6 +50,8 @@ export default async function runAction(nango: NangoAction, input: string): Prom const params = responseType === 'text' ? { mimeType: exportMimeType } : { alt: 'media' }; const config: ProxyConfiguration = { + // https://developers.google.com/drive/api/reference/rest/v3/files/get + // https://developers.google.com/drive/api/reference/rest/v3/files/export endpoint, params, responseType, diff --git a/integrations/google-drive/syncs/documents.ts b/integrations/google-drive/syncs/documents.ts index 2ac1d156..1a775bff 100644 --- a/integrations/google-drive/syncs/documents.ts +++ b/integrations/google-drive/syncs/documents.ts @@ -35,6 +35,7 @@ export default async function fetchData(nango: NangoSync): Promise { // Query to fetch files in the current folder const query = `('${folderId}' in parents) and trashed = false`; const proxyConfiguration: ProxyConfiguration = { + // https://developers.google.com/drive/api/reference/rest/v3/files/get endpoint: `drive/v3/files`, params: { fields: 'files(id, name, mimeType, webViewLink, parents), nextPageToken', diff --git a/integrations/google-mail/actions/fetch-attachment.ts b/integrations/google-mail/actions/fetch-attachment.ts index d5553e1a..6fccea7e 100644 --- a/integrations/google-mail/actions/fetch-attachment.ts +++ b/integrations/google-mail/actions/fetch-attachment.ts @@ -5,8 +5,8 @@ import type { GoogleMailFile } from '../types'; export default async function runAction(nango: NangoAction, input: DocumentInput): Promise { const { threadId, attachmentId } = input; - // https://developers.google.com/gmail/api/reference/rest/v1/users.messages.attachments/get const config: ProxyConfiguration = { + // https://developers.google.com/gmail/api/reference/rest/v1/users.messages.attachments/get endpoint: `/gmail/v1/users/me/messages/${threadId}/attachments/${attachmentId}`, retries: 10 }; diff --git a/integrations/hubspot/actions/create-deal.ts b/integrations/hubspot/actions/create-deal.ts index 76a7fe52..f5449a23 100644 --- a/integrations/hubspot/actions/create-deal.ts +++ b/integrations/hubspot/actions/create-deal.ts @@ -4,12 +4,12 @@ import { createUpdateDeal, toHubspotDeal } from '../mappers/toDeal.js'; export default async function runAction(nango: NangoAction, input: CreateDealInput): Promise { const hubSpotDeal = toHubspotDeal(input); const config: ProxyConfiguration = { + // https://developers.hubspot.com/docs/api/crm/deals#create-deals endpoint: 'crm/v3/objects/deals', data: hubSpotDeal, retries: 10 }; - // https://developers.hubspot.com/docs/api/crm/deals#create-deals const response = await nango.post(config); return createUpdateDeal(response.data); diff --git a/integrations/hubspot/actions/update-company.ts b/integrations/hubspot/actions/update-company.ts index 3c360224..de3b8e69 100644 --- a/integrations/hubspot/actions/update-company.ts +++ b/integrations/hubspot/actions/update-company.ts @@ -16,12 +16,12 @@ export default async function runAction(nango: NangoAction, input: UpdateCompany const hubSpotCompany = toHubspotCompany(parsedInput.data); const config: ProxyConfiguration = { + //https://developers.hubspot.com/docs/api/crm/companies#update-companies endpoint: `crm/v3/objects/companies/${parsedInput.data.id}`, data: hubSpotCompany, retries: 10 }; - //https://developers.hubspot.com/docs/api/crm/companies#update-companies const response = await nango.patch(config); return createUpdateCompany(response.data); diff --git a/integrations/hubspot/actions/update-contact.ts b/integrations/hubspot/actions/update-contact.ts index df65342f..466e5a0e 100644 --- a/integrations/hubspot/actions/update-contact.ts +++ b/integrations/hubspot/actions/update-contact.ts @@ -18,13 +18,13 @@ export default async function runAction(nango: NangoAction, input: UpdateContact const endpoint = parsedInput.data.id ? `crm/v3/objects/contacts/${parsedInput.data.id}` : `crm/v3/objects/contacts/${parsedInput.data.email}`; const config: ProxyConfiguration = { + // https://developers.hubspot.com/docs/api/crm/contacts#update-contacts endpoint, data: hubSpotContact, retries: 10, ...(parsedInput.data.id ? {} : { params: { idProperty: 'email' } }) }; - // https://developers.hubspot.com/docs/api/crm/contacts#update-contacts const response = await nango.patch(config); return createUpdatetoContact(response.data); diff --git a/integrations/hubspot/actions/update-deal.ts b/integrations/hubspot/actions/update-deal.ts index 7c80bf0b..84d033d4 100644 --- a/integrations/hubspot/actions/update-deal.ts +++ b/integrations/hubspot/actions/update-deal.ts @@ -16,11 +16,12 @@ export default async function runAction(nango: NangoAction, input: UpdateDealInp const hubSpotDeal = toHubspotDeal(parsedInput.data); const config: ProxyConfiguration = { + // https://developers.hubspot.com/docs/api/crm/deals#update-deals endpoint: `crm/v3/objects/deals/${parsedInput.data.id}`, data: hubSpotDeal, retries: 10 }; - // https://developers.hubspot.com/docs/api/crm/deals#update-deals + const response = await nango.patch(config); return createUpdateDeal(response.data); diff --git a/integrations/hubspot/actions/update-task.ts b/integrations/hubspot/actions/update-task.ts index bc870d65..de4e14d5 100644 --- a/integrations/hubspot/actions/update-task.ts +++ b/integrations/hubspot/actions/update-task.ts @@ -16,12 +16,12 @@ export default async function runAction(nango: NangoAction, input: UpdateTaskInp const hubSpotTask = toHubspotTask(parsedInput.data); const config: ProxyConfiguration = { + //https://developers.hubspot.com/docs/api/crm/tasks endpoint: `crm/v3/objects/tasks/${parsedInput.data.id}`, data: hubSpotTask, retries: 10 }; - //https://developers.hubspot.com/docs/api/crm/tasks const response = await nango.patch(config); return createUpdateTask(response.data); diff --git a/integrations/hubspot/syncs/companies.ts b/integrations/hubspot/syncs/companies.ts index 3be17bd6..985af219 100644 --- a/integrations/hubspot/syncs/companies.ts +++ b/integrations/hubspot/syncs/companies.ts @@ -17,6 +17,7 @@ export default async function fetchData(nango: NangoSync): Promise { 'website' ]; const config: ProxyConfiguration = { + //https://developers.hubspot.com/docs/api/crm/companies#retrieve-companies endpoint: '/crm/v3/objects/companies', params: { properties: properties.join(',') @@ -31,7 +32,6 @@ export default async function fetchData(nango: NangoSync): Promise { }, retries: 10 }; - //https://developers.hubspot.com/docs/api/crm/companies#retrieve-companies for await (const contacts of nango.paginate(config)) { const mappedCompanies = contacts.map((company: HubSpotCompanyNonUndefined) => toCompany(company)); await nango.batchSave(mappedCompanies, 'Company'); diff --git a/integrations/hubspot/syncs/contacts.ts b/integrations/hubspot/syncs/contacts.ts index 04247995..aa15bd9a 100644 --- a/integrations/hubspot/syncs/contacts.ts +++ b/integrations/hubspot/syncs/contacts.ts @@ -19,6 +19,7 @@ export default async function fetchData(nango: NangoSync): Promise { 'hubspot_owner_id' ]; const config: ProxyConfiguration = { + //https://developers.hubspot.com/docs/api/crm/contacts#retrieve-contacts-by-record-id-email-or-custom-unique-value-property endpoint: '/crm/v3/objects/contacts', params: { properties: properties.join(',') @@ -33,7 +34,6 @@ export default async function fetchData(nango: NangoSync): Promise { }, retries: 10 }; - //https://developers.hubspot.com/docs/api/crm/contacts#retrieve-contacts-by-record-id-email-or-custom-unique-value-property for await (const contacts of nango.paginate(config)) { const mappedContacts = contacts.map((contact: HubSpotContactNonUndefined) => toContact(contact)); await nango.batchSave(mappedContacts, 'Contact'); diff --git a/integrations/hubspot/syncs/deals.ts b/integrations/hubspot/syncs/deals.ts index 6ce61c66..5164e791 100644 --- a/integrations/hubspot/syncs/deals.ts +++ b/integrations/hubspot/syncs/deals.ts @@ -15,6 +15,7 @@ async function fetchCompanyById(nango: NangoSync, companyId: string) { } const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/crm/objects/companies?uuid=ed36fa47-a71a-4b7f-a100-ff70ffd55d48#get-%2Fcrm%2Fv3%2Fobjects%2Fcompanies%2F%7Bcompanyid%7D endpoint: `/crm/v3/objects/companies/${companyId}`, retries: 10, params: { @@ -33,6 +34,7 @@ async function fetchContactById(nango: NangoSync, contactId: string) { } const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/crm/objects/contacts#get-%2Fcrm%2Fv3%2Fobjects%2Fcontacts%2F%7Bcontactid%7D endpoint: `/crm/v3/objects/contacts/${contactId}`, retries: 10, params: { @@ -49,6 +51,7 @@ export default async function fetchData(nango: NangoSync): Promise { const properties = ['dealname', 'amount', 'closedate', 'description', 'hubspot_owner_id', 'dealstage', 'hs_deal_stage_probability']; const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/crm/objects/deals#get-%2Fcrm%2Fv3%2Fobjects%2Fdeals endpoint: '/crm/v3/objects/deals', params: { properties: properties.join(','), diff --git a/integrations/hubspot/syncs/tasks.ts b/integrations/hubspot/syncs/tasks.ts index 1af7117f..06231917 100644 --- a/integrations/hubspot/syncs/tasks.ts +++ b/integrations/hubspot/syncs/tasks.ts @@ -17,6 +17,7 @@ async function fetchCompanyById(nango: NangoSync, companyId: string) { } const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/crm/objects/companies#get-%2Fcrm%2Fv3%2Fobjects%2Fcompanies%2F%7Bcompanyid%7D endpoint: `/crm/v3/objects/companies/${companyId}`, retries: 10, params: { @@ -35,6 +36,7 @@ async function fetchDealsById(nango: NangoSync, dealId: string) { } const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/crm/objects/deals#get-%2Fcrm%2Fv3%2Fobjects%2Fdeals%2F%7Bdealid%7D endpoint: `/crm/v3/objects/deals/${dealId}`, retries: 10, params: { @@ -53,6 +55,7 @@ async function fetchContactById(nango: NangoSync, contactId: string) { } const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/crm/objects/contacts#get-%2Fcrm%2Fv3%2Fobjects%2Fcontacts%2F%7Bcontactid%7D endpoint: `/crm/v3/objects/contacts/${contactId}`, retries: 10, params: { @@ -69,6 +72,7 @@ export default async function fetchData(nango: NangoSync): Promise { const properties = ['hs_task_type', 'hs_task_subject', 'hs_task_priority', 'hubspot_owner_id', 'hs_timestamp', 'hs_task_body']; const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/crm/engagements/tasks#get-%2Fcrm%2Fv3%2Fobjects%2Ftasks endpoint: '/crm/v3/objects/tasks', params: { properties: properties.join(','), diff --git a/integrations/hubspot/syncs/users.ts b/integrations/hubspot/syncs/users.ts index b901a647..aaa3cda4 100644 --- a/integrations/hubspot/syncs/users.ts +++ b/integrations/hubspot/syncs/users.ts @@ -5,6 +5,7 @@ export default async function fetchData(nango: NangoSync) { let totalRecords = 0; const config: ProxyConfiguration = { + // https://developers.hubspot.com/beta-docs/reference/api/settings/users/user-provisioning#get-%2Fsettings%2Fv3%2Fusers%2F endpoint: '/settings/v3/users', paginate: { type: 'cursor', diff --git a/integrations/intercom/syncs/articles.ts b/integrations/intercom/syncs/articles.ts index 0ab2a468..c8012f12 100644 --- a/integrations/intercom/syncs/articles.ts +++ b/integrations/intercom/syncs/articles.ts @@ -15,6 +15,7 @@ import { toArticle } from '../mappers/to-article.js'; */ export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { + // https://developers.intercom.com/docs/references/rest-api/api.intercom.io/articles/listarticles endpoint: '/articles', paginate: { type: 'offset', diff --git a/integrations/intercom/syncs/contacts.ts b/integrations/intercom/syncs/contacts.ts index e74db38e..66151735 100644 --- a/integrations/intercom/syncs/contacts.ts +++ b/integrations/intercom/syncs/contacts.ts @@ -17,6 +17,7 @@ import type { IntercomContact } from '../types'; */ export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { + // https://developers.intercom.com/docs/references/rest-api/api.intercom.io/contacts/listcontacts endpoint: '/contacts', paginate: { type: 'cursor', diff --git a/integrations/intercom/syncs/conversations.ts b/integrations/intercom/syncs/conversations.ts index ad55f596..f68ccf62 100644 --- a/integrations/intercom/syncs/conversations.ts +++ b/integrations/intercom/syncs/conversations.ts @@ -43,6 +43,7 @@ export default async function fetchData(nango: NangoSync): Promise { } const config: ProxyConfiguration = { + // https://developers.intercom.com/intercom-api-reference/reference/listconversations endpoint: '/conversations', retries: 10, headers: { @@ -61,6 +62,7 @@ export default async function fetchData(nango: NangoSync): Promise { } const conversationConfig: ProxyConfiguration = { + // https://developers.intercom.com/docs/references/rest-api/api.intercom.io/conversations/retrieveconversation endpoint: `/conversations/${conversation.id}`, retries: 10, headers: { diff --git a/integrations/intercom/tests/intercom-articles.test.ts b/integrations/intercom/tests/intercom-articles.test.ts index b9409375..54b58ede 100644 --- a/integrations/intercom/tests/intercom-articles.test.ts +++ b/integrations/intercom/tests/intercom-articles.test.ts @@ -1,53 +1,52 @@ -import { vi, expect, it, describe } from "vitest"; +import { vi, expect, it, describe } from 'vitest'; -import fetchData from "../syncs/articles.js"; +import fetchData from '../syncs/articles.js'; -describe("intercom articles tests", () => { - const nangoMock = new global.vitest.NangoSyncMock({ - dirname: __dirname, - name: "articles", - Model: "Article" - }); +describe('intercom articles tests', () => { + const nangoMock = new global.vitest.NangoSyncMock({ + dirname: __dirname, + name: 'articles', + Model: 'Article' + }); - const models = "Article".split(','); - const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); + const models = 'Article'.split(','); + const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); - it("should get, map correctly the data and batchSave the result", async () => { - await fetchData(nangoMock); + it('should get, map correctly the data and batchSave the result', async () => { + await fetchData(nangoMock); - for (const model of models) { - const batchSaveData = await nangoMock.getBatchSaveData(model); + for (const model of models) { + const batchSaveData = await nangoMock.getBatchSaveData(model); - const totalCalls = batchSaveSpy.mock.calls.length; + const totalCalls = batchSaveSpy.mock.calls.length; - if (totalCalls > models.length) { - const splitSize = Math.ceil(batchSaveData.length / totalCalls); + if (totalCalls > models.length) { + const splitSize = Math.ceil(batchSaveData.length / totalCalls); - const splitBatchSaveData = []; - for (let i = 0; i < totalCalls; i++) { - const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); - splitBatchSaveData.push(chunk); + const splitBatchSaveData = []; + for (let i = 0; i < totalCalls; i++) { + const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); + splitBatchSaveData.push(chunk); + } + + splitBatchSaveData.forEach((data, index) => { + // @ts-ignore + expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); + }); + } else { + expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); } + } + }); - splitBatchSaveData.forEach((data, index) => { - // @ts-ignore - expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); - }); + it('should get, map correctly the data and batchDelete the result', async () => { + await fetchData(nangoMock); - } else { - expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); + for (const model of models) { + const batchDeleteData = await nangoMock.getBatchDeleteData(model); + if (batchDeleteData && batchDeleteData.length > 0) { + expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); + } } - } - }); - - it('should get, map correctly the data and batchDelete the result', async () => { - await fetchData(nangoMock); - - for (const model of models) { - const batchDeleteData = await nangoMock.getBatchDeleteData(model); - if (batchDeleteData && batchDeleteData.length > 0) { - expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); - } - } - }); + }); }); diff --git a/integrations/intercom/tests/intercom-contacts.test.ts b/integrations/intercom/tests/intercom-contacts.test.ts index bf79e144..2b2fab4b 100644 --- a/integrations/intercom/tests/intercom-contacts.test.ts +++ b/integrations/intercom/tests/intercom-contacts.test.ts @@ -1,53 +1,52 @@ -import { vi, expect, it, describe } from "vitest"; +import { vi, expect, it, describe } from 'vitest'; -import fetchData from "../syncs/contacts.js"; +import fetchData from '../syncs/contacts.js'; -describe("intercom contacts tests", () => { - const nangoMock = new global.vitest.NangoSyncMock({ - dirname: __dirname, - name: "contacts", - Model: "Contact" - }); +describe('intercom contacts tests', () => { + const nangoMock = new global.vitest.NangoSyncMock({ + dirname: __dirname, + name: 'contacts', + Model: 'Contact' + }); - const models = "Contact".split(','); - const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); + const models = 'Contact'.split(','); + const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); - it("should get, map correctly the data and batchSave the result", async () => { - await fetchData(nangoMock); + it('should get, map correctly the data and batchSave the result', async () => { + await fetchData(nangoMock); - for (const model of models) { - const batchSaveData = await nangoMock.getBatchSaveData(model); + for (const model of models) { + const batchSaveData = await nangoMock.getBatchSaveData(model); - const totalCalls = batchSaveSpy.mock.calls.length; + const totalCalls = batchSaveSpy.mock.calls.length; - if (totalCalls > models.length) { - const splitSize = Math.ceil(batchSaveData.length / totalCalls); + if (totalCalls > models.length) { + const splitSize = Math.ceil(batchSaveData.length / totalCalls); - const splitBatchSaveData = []; - for (let i = 0; i < totalCalls; i++) { - const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); - splitBatchSaveData.push(chunk); + const splitBatchSaveData = []; + for (let i = 0; i < totalCalls; i++) { + const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); + splitBatchSaveData.push(chunk); + } + + splitBatchSaveData.forEach((data, index) => { + // @ts-ignore + expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); + }); + } else { + expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); } + } + }); - splitBatchSaveData.forEach((data, index) => { - // @ts-ignore - expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); - }); + it('should get, map correctly the data and batchDelete the result', async () => { + await fetchData(nangoMock); - } else { - expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); + for (const model of models) { + const batchDeleteData = await nangoMock.getBatchDeleteData(model); + if (batchDeleteData && batchDeleteData.length > 0) { + expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); + } } - } - }); - - it('should get, map correctly the data and batchDelete the result', async () => { - await fetchData(nangoMock); - - for (const model of models) { - const batchDeleteData = await nangoMock.getBatchDeleteData(model); - if (batchDeleteData && batchDeleteData.length > 0) { - expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); - } - } - }); + }); }); diff --git a/integrations/intercom/tests/intercom-conversations.test.ts b/integrations/intercom/tests/intercom-conversations.test.ts index 90cc04e3..9325b638 100644 --- a/integrations/intercom/tests/intercom-conversations.test.ts +++ b/integrations/intercom/tests/intercom-conversations.test.ts @@ -1,53 +1,52 @@ -import { vi, expect, it, describe } from "vitest"; +import { vi, expect, it, describe } from 'vitest'; -import fetchData from "../syncs/conversations.js"; +import fetchData from '../syncs/conversations.js'; -describe("intercom conversations tests", () => { - const nangoMock = new global.vitest.NangoSyncMock({ - dirname: __dirname, - name: "conversations", - Model: "Conversation,ConversationMessage" - }); +describe('intercom conversations tests', () => { + const nangoMock = new global.vitest.NangoSyncMock({ + dirname: __dirname, + name: 'conversations', + Model: 'Conversation,ConversationMessage' + }); - const models = "Conversation,ConversationMessage".split(','); - const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); + const models = 'Conversation,ConversationMessage'.split(','); + const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); - it("should get, map correctly the data and batchSave the result", async () => { - await fetchData(nangoMock); + it('should get, map correctly the data and batchSave the result', async () => { + await fetchData(nangoMock); - for (const model of models) { - const batchSaveData = await nangoMock.getBatchSaveData(model); + for (const model of models) { + const batchSaveData = await nangoMock.getBatchSaveData(model); - const totalCalls = batchSaveSpy.mock.calls.length; + const totalCalls = batchSaveSpy.mock.calls.length; - if (totalCalls > models.length) { - const splitSize = Math.ceil(batchSaveData.length / totalCalls); + if (totalCalls > models.length) { + const splitSize = Math.ceil(batchSaveData.length / totalCalls); - const splitBatchSaveData = []; - for (let i = 0; i < totalCalls; i++) { - const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); - splitBatchSaveData.push(chunk); + const splitBatchSaveData = []; + for (let i = 0; i < totalCalls; i++) { + const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); + splitBatchSaveData.push(chunk); + } + + splitBatchSaveData.forEach((data, index) => { + // @ts-ignore + expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); + }); + } else { + expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); } + } + }); - splitBatchSaveData.forEach((data, index) => { - // @ts-ignore - expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); - }); + it('should get, map correctly the data and batchDelete the result', async () => { + await fetchData(nangoMock); - } else { - expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); + for (const model of models) { + const batchDeleteData = await nangoMock.getBatchDeleteData(model); + if (batchDeleteData && batchDeleteData.length > 0) { + expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); + } } - } - }); - - it('should get, map correctly the data and batchDelete the result', async () => { - await fetchData(nangoMock); - - for (const model of models) { - const batchDeleteData = await nangoMock.getBatchDeleteData(model); - if (batchDeleteData && batchDeleteData.length > 0) { - expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); - } - } - }); + }); }); diff --git a/integrations/intercom/tests/intercom-create-contact.test.ts b/integrations/intercom/tests/intercom-create-contact.test.ts index a48c92bd..a711cabe 100644 --- a/integrations/intercom/tests/intercom-create-contact.test.ts +++ b/integrations/intercom/tests/intercom-create-contact.test.ts @@ -1,19 +1,19 @@ -import { vi, expect, it, describe } from "vitest"; +import { vi, expect, it, describe } from 'vitest'; -import runAction from "../actions/create-contact.js"; +import runAction from '../actions/create-contact.js'; -describe("intercom create-contact tests", () => { - const nangoMock = new global.vitest.NangoActionMock({ - dirname: __dirname, - name: "create-contact", - Model: "Contact" - }); +describe('intercom create-contact tests', () => { + const nangoMock = new global.vitest.NangoActionMock({ + dirname: __dirname, + name: 'create-contact', + Model: 'Contact' + }); - it('should output the action output that is expected', async () => { - const input = await nangoMock.getInput(); - const response = await runAction(nangoMock, input); - const output = await nangoMock.getOutput(); + it('should output the action output that is expected', async () => { + const input = await nangoMock.getInput(); + const response = await runAction(nangoMock, input); + const output = await nangoMock.getOutput(); - expect(response).toEqual(output); - }); + expect(response).toEqual(output); + }); }); diff --git a/integrations/intercom/tests/intercom-delete-contact.test.ts b/integrations/intercom/tests/intercom-delete-contact.test.ts index b3c6c0c3..55450665 100644 --- a/integrations/intercom/tests/intercom-delete-contact.test.ts +++ b/integrations/intercom/tests/intercom-delete-contact.test.ts @@ -1,19 +1,19 @@ -import { vi, expect, it, describe } from "vitest"; +import { vi, expect, it, describe } from 'vitest'; -import runAction from "../actions/delete-contact.js"; +import runAction from '../actions/delete-contact.js'; -describe("intercom delete-contact tests", () => { - const nangoMock = new global.vitest.NangoActionMock({ - dirname: __dirname, - name: "delete-contact", - Model: "SuccessResponse" - }); +describe('intercom delete-contact tests', () => { + const nangoMock = new global.vitest.NangoActionMock({ + dirname: __dirname, + name: 'delete-contact', + Model: 'SuccessResponse' + }); - it('should output the action output that is expected', async () => { - const input = await nangoMock.getInput(); - const response = await runAction(nangoMock, input); - const output = await nangoMock.getOutput(); + it('should output the action output that is expected', async () => { + const input = await nangoMock.getInput(); + const response = await runAction(nangoMock, input); + const output = await nangoMock.getOutput(); - expect(response).toEqual(output); - }); + expect(response).toEqual(output); + }); }); diff --git a/integrations/intercom/tests/intercom-users.test.ts b/integrations/intercom/tests/intercom-users.test.ts index 4ccdd905..30d8c50a 100644 --- a/integrations/intercom/tests/intercom-users.test.ts +++ b/integrations/intercom/tests/intercom-users.test.ts @@ -1,53 +1,52 @@ -import { vi, expect, it, describe } from "vitest"; +import { vi, expect, it, describe } from 'vitest'; -import fetchData from "../syncs/users.js"; +import fetchData from '../syncs/users.js'; -describe("intercom users tests", () => { - const nangoMock = new global.vitest.NangoSyncMock({ - dirname: __dirname, - name: "users", - Model: "User" - }); +describe('intercom users tests', () => { + const nangoMock = new global.vitest.NangoSyncMock({ + dirname: __dirname, + name: 'users', + Model: 'User' + }); - const models = "User".split(','); - const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); + const models = 'User'.split(','); + const batchSaveSpy = vi.spyOn(nangoMock, 'batchSave'); - it("should get, map correctly the data and batchSave the result", async () => { - await fetchData(nangoMock); + it('should get, map correctly the data and batchSave the result', async () => { + await fetchData(nangoMock); - for (const model of models) { - const batchSaveData = await nangoMock.getBatchSaveData(model); + for (const model of models) { + const batchSaveData = await nangoMock.getBatchSaveData(model); - const totalCalls = batchSaveSpy.mock.calls.length; + const totalCalls = batchSaveSpy.mock.calls.length; - if (totalCalls > models.length) { - const splitSize = Math.ceil(batchSaveData.length / totalCalls); + if (totalCalls > models.length) { + const splitSize = Math.ceil(batchSaveData.length / totalCalls); - const splitBatchSaveData = []; - for (let i = 0; i < totalCalls; i++) { - const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); - splitBatchSaveData.push(chunk); + const splitBatchSaveData = []; + for (let i = 0; i < totalCalls; i++) { + const chunk = batchSaveData.slice(i * splitSize, (i + 1) * splitSize); + splitBatchSaveData.push(chunk); + } + + splitBatchSaveData.forEach((data, index) => { + // @ts-ignore + expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); + }); + } else { + expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); } + } + }); - splitBatchSaveData.forEach((data, index) => { - // @ts-ignore - expect(batchSaveSpy?.mock.calls[index][0]).toEqual(data); - }); + it('should get, map correctly the data and batchDelete the result', async () => { + await fetchData(nangoMock); - } else { - expect(nangoMock.batchSave).toHaveBeenCalledWith(batchSaveData, model); + for (const model of models) { + const batchDeleteData = await nangoMock.getBatchDeleteData(model); + if (batchDeleteData && batchDeleteData.length > 0) { + expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); + } } - } - }); - - it('should get, map correctly the data and batchDelete the result', async () => { - await fetchData(nangoMock); - - for (const model of models) { - const batchDeleteData = await nangoMock.getBatchDeleteData(model); - if (batchDeleteData && batchDeleteData.length > 0) { - expect(nangoMock.batchDelete).toHaveBeenCalledWith(batchDeleteData, model); - } - } - }); + }); }); diff --git a/integrations/jira/actions/create-issue.ts b/integrations/jira/actions/create-issue.ts index 070a3a16..7fdd89f0 100644 --- a/integrations/jira/actions/create-issue.ts +++ b/integrations/jira/actions/create-issue.ts @@ -26,6 +26,7 @@ export default async function runAction(nango: NangoAction, input: CreateIssueIn const jiraIssue = toJiraIssue(input); const config: ProxyConfiguration = { + //https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-post endpoint: `/ex/jira/${cloud.cloudId}/rest/api/3/issue`, headers: { 'X-Atlassian-Token': 'no-check' @@ -34,7 +35,6 @@ export default async function runAction(nango: NangoAction, input: CreateIssueIn retries: 10 }; - //https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-post const response = await nango.post(config); return response.data; diff --git a/integrations/jira/helpers/get-cloud-data.ts b/integrations/jira/helpers/get-cloud-data.ts index 4820c14c..7c7a58b6 100644 --- a/integrations/jira/helpers/get-cloud-data.ts +++ b/integrations/jira/helpers/get-cloud-data.ts @@ -21,6 +21,7 @@ export async function getCloudData(nango: NangoAction): Promise<{ cloudId: strin } const config: ProxyConfiguration = { + // https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/ endpoint: `oauth/token/accessible-resources`, retries: 10 }; diff --git a/integrations/jira/syncs/issue-types.ts b/integrations/jira/syncs/issue-types.ts index 24cec288..53c09f3a 100644 --- a/integrations/jira/syncs/issue-types.ts +++ b/integrations/jira/syncs/issue-types.ts @@ -17,6 +17,7 @@ export default async function fetchData(nango: NangoSync) { for (const project of metadata.projectIdsToSync) { const projectId = project.id; const config: ProxyConfiguration = { + //https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-types/#api-rest-api-3-issuetype-project-get endpoint: `/ex/jira/${cloud.cloudId}/rest/api/3/issuetype/project`, params: { projectId: Number(projectId) @@ -27,7 +28,6 @@ export default async function fetchData(nango: NangoSync) { retries: 10 }; - //https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-types/#api-rest-api-3-issuetype-project-get const issueTypeResponse = await nango.get(config); const issueTypes = toIssueTypes(issueTypeResponse.data, projectId); if (issueTypes.length > 0) { diff --git a/integrations/jira/syncs/issues.ts b/integrations/jira/syncs/issues.ts index 6289d706..c21f5881 100644 --- a/integrations/jira/syncs/issues.ts +++ b/integrations/jira/syncs/issues.ts @@ -28,6 +28,7 @@ export default async function fetchData(nango: NangoSync) { const finalJql = jql ? `${jql}${projectJql ? ` AND ${projectJql}` : ''}` : projectJql; const config: ProxyConfiguration = { + // https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-search/#api-rest-api-3-search-get endpoint: `/ex/jira/${cloud.cloudId}/rest/api/3/search`, params: { jql: finalJql, @@ -38,7 +39,7 @@ export default async function fetchData(nango: NangoSync) { offset_name_in_request: 'startAt', response_path: 'issues', limit_name_in_request: 'maxResults', - limit: 100 + limit: 50 }, headers: { 'X-Atlassian-Token': 'no-check' diff --git a/integrations/jira/syncs/projects.ts b/integrations/jira/syncs/projects.ts index 545e1c58..488cdf3a 100644 --- a/integrations/jira/syncs/projects.ts +++ b/integrations/jira/syncs/projects.ts @@ -13,6 +13,7 @@ export default async function fetchData(nango: NangoSync) { const properties = 'id,name,projectTypeKey,key'; const cloud = await getCloudData(nango); const config: ProxyConfiguration = { + // https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-rest-api-3-project-search-get endpoint: `/ex/jira/${cloud.cloudId}/rest/api/3/project/search`, params: { properties: properties @@ -30,7 +31,6 @@ export default async function fetchData(nango: NangoSync) { retries: 10 }; - //https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-rest-api-3-project-search-get for await (const projects of nango.paginate(config)) { const projectsToSave = toProjects(projects, cloud.baseUrl); await nango.batchSave(projectsToSave, 'Project'); diff --git a/integrations/keeper-scim/syncs/users.ts b/integrations/keeper-scim/syncs/users.ts index a0324cd9..2014268c 100644 --- a/integrations/keeper-scim/syncs/users.ts +++ b/integrations/keeper-scim/syncs/users.ts @@ -17,6 +17,7 @@ import type { KeeperUser } from '../types'; */ export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { + // https://docs.keeper.io/en/enterprise-guide/user-and-team-provisioning/automated-provisioning-with-scim endpoint: '/Users', paginate: { type: 'offset', diff --git a/integrations/lever-basic/syncs/opportunities-applications.ts b/integrations/lever-basic/syncs/opportunities-applications.ts index 354eb146..cc820b2c 100644 --- a/integrations/lever-basic/syncs/opportunities-applications.ts +++ b/integrations/lever-basic/syncs/opportunities-applications.ts @@ -8,9 +8,9 @@ export default async function fetchData(nango: NangoSync) { const opportunities: any[] = await getAllOpportunities(nango); for (const opportunity of opportunities) { - const endpoint = `/v1/opportunities/${opportunity.id}/applications`; - - const config = { + const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-applications + endpoint: `/v1/opportunities/${opportunity.id}/applications`, paginate: { type: 'cursor', cursor_path_in_response: 'next', @@ -20,7 +20,7 @@ export default async function fetchData(nango: NangoSync) { limit: LIMIT } }; - for await (const application of nango.paginate({ ...config, endpoint })) { + for await (const application of nango.paginate(config)) { const mappedApplication: LeverOpportunityApplication[] = application.map(mapApplication) || []; // Save applications const batchSize: number = mappedApplication.length; @@ -34,6 +34,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllOpportunities(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-opportunities endpoint: '/v1/opportunities', paginate: { type: 'cursor', diff --git a/integrations/lever-basic/syncs/opportunities-feedbacks.ts b/integrations/lever-basic/syncs/opportunities-feedbacks.ts index 59fdee14..52c26b42 100644 --- a/integrations/lever-basic/syncs/opportunities-feedbacks.ts +++ b/integrations/lever-basic/syncs/opportunities-feedbacks.ts @@ -8,9 +8,9 @@ export default async function fetchData(nango: NangoSync) { const opportunities: any[] = await getAllOpportunities(nango); for (const opportunity of opportunities) { - const endpoint = `/v1/opportunities/${opportunity.id}/feedback`; - - const config = { + const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-feedback + endpoint: `/v1/opportunities/${opportunity.id}/feedback`, paginate: { type: 'cursor', cursor_path_in_response: 'next', @@ -20,7 +20,7 @@ export default async function fetchData(nango: NangoSync) { limit: LIMIT } }; - for await (const feedback of nango.paginate({ ...config, endpoint })) { + for await (const feedback of nango.paginate(config)) { const mappedFeedback: LeverOpportunityFeedback[] = feedback.map(mapFeedback) || []; // Save feedbacks const batchSize: number = mappedFeedback.length; @@ -34,6 +34,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllOpportunities(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-opportunities endpoint: '/v1/opportunities', paginate: { type: 'cursor', diff --git a/integrations/lever-basic/syncs/opportunities-interviews.ts b/integrations/lever-basic/syncs/opportunities-interviews.ts index e4ee66e5..521df487 100644 --- a/integrations/lever-basic/syncs/opportunities-interviews.ts +++ b/integrations/lever-basic/syncs/opportunities-interviews.ts @@ -8,9 +8,9 @@ export default async function fetchData(nango: NangoSync) { const opportunities: any[] = await getAllOpportunities(nango); for (const opportunity of opportunities) { - const endpoint = `/v1/opportunities/${opportunity.id}/interviews`; - const config = { + // https://hire.lever.co/developer/documentation#list-all-interviews + endpoint: `/v1/opportunities/${opportunity.id}/interviews`, paginate: { type: 'cursor', cursor_path_in_response: 'next', @@ -20,7 +20,7 @@ export default async function fetchData(nango: NangoSync) { limit: LIMIT } }; - for await (const interview of nango.paginate({ ...config, endpoint })) { + for await (const interview of nango.paginate(config)) { const mappedInterview: LeverOpportunityInterview[] = interview.map(mapInterview) || []; // Save interviews const batchSize: number = mappedInterview.length; @@ -34,6 +34,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllOpportunities(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-opportunities endpoint: '/v1/opportunities', paginate: { type: 'cursor', diff --git a/integrations/lever-basic/syncs/opportunities-notes.ts b/integrations/lever-basic/syncs/opportunities-notes.ts index 3a26db29..6d6d3727 100644 --- a/integrations/lever-basic/syncs/opportunities-notes.ts +++ b/integrations/lever-basic/syncs/opportunities-notes.ts @@ -8,9 +8,9 @@ export default async function fetchData(nango: NangoSync) { const opportunities: any[] = await getAllOpportunities(nango); for (const opportunity of opportunities) { - const endpoint = `/v1/opportunities/${opportunity.id}/notes`; - - const config = { + const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-notes + endpoint: `/v1/opportunities/${opportunity.id}/notes`, paginate: { type: 'cursor', cursor_path_in_response: 'next', @@ -20,7 +20,7 @@ export default async function fetchData(nango: NangoSync) { limit: LIMIT } }; - for await (const note of nango.paginate({ ...config, endpoint })) { + for await (const note of nango.paginate(config)) { const mappedNote: LeverOpportunityNote[] = note.map(mapNote) || []; // Save notes const batchSize: number = mappedNote.length; @@ -34,6 +34,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllOpportunities(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-opportunities endpoint: '/v1/opportunities', paginate: { type: 'cursor', diff --git a/integrations/lever-basic/syncs/opportunities-offers.ts b/integrations/lever-basic/syncs/opportunities-offers.ts index 79be6159..9ec1a94a 100644 --- a/integrations/lever-basic/syncs/opportunities-offers.ts +++ b/integrations/lever-basic/syncs/opportunities-offers.ts @@ -8,9 +8,9 @@ export default async function fetchData(nango: NangoSync) { const opportunities: any[] = await getAllOpportunities(nango); for (const opportunity of opportunities) { - const endpoint = `/v1/opportunities/${opportunity.id}/offers`; - const config = { + // https://hire.lever.co/developer/documentation#list-all-offers + endpoint: `/v1/opportunities/${opportunity.id}/offers`, paginate: { type: 'cursor', cursor_path_in_response: 'next', @@ -20,7 +20,7 @@ export default async function fetchData(nango: NangoSync) { limit: LIMIT } }; - for await (const offer of nango.paginate({ ...config, endpoint })) { + for await (const offer of nango.paginate(config)) { const mappedOffer: LeverOpportunityOffer[] = offer.map(mapOffer) || []; // Save offers const batchSize: number = mappedOffer.length; @@ -34,6 +34,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllOpportunities(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-opportunities endpoint: '/v1/opportunities', paginate: { type: 'cursor', diff --git a/integrations/lever-basic/syncs/postings-apply.ts b/integrations/lever-basic/syncs/postings-apply.ts index b7e85c83..6dd7eec1 100644 --- a/integrations/lever-basic/syncs/postings-apply.ts +++ b/integrations/lever-basic/syncs/postings-apply.ts @@ -22,6 +22,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllPostings(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://hire.lever.co/developer/documentation#list-all-postings endpoint: '/v1/postings', paginate: { type: 'cursor', @@ -41,6 +42,7 @@ async function getAllPostings(nango: NangoSync) { } async function getPostingApply(nango: NangoSync, postingId: string) { + // https://hire.lever.co/developer/documentation#apply-to-a-posting const endpoint = `/v1/postings/${postingId}/apply`; const apply = await nango.get({ endpoint, retries: 10 }); return mapApply(apply.data.data); diff --git a/integrations/notion/actions/fetch-database.ts b/integrations/notion/actions/fetch-database.ts index 512c53d0..55c3388c 100644 --- a/integrations/notion/actions/fetch-database.ts +++ b/integrations/notion/actions/fetch-database.ts @@ -16,6 +16,7 @@ export default async function runAction(nango: NangoAction, input: DatabaseInput const proxyConfig: ProxyConfiguration = { method: 'POST', + // https://developers.notion.com/reference/post-database-query endpoint: `/v1/databases/${parsedInput.data.databaseId}/query` }; @@ -30,6 +31,7 @@ export default async function runAction(nango: NangoAction, input: DatabaseInput } const databaseResponse = await nango.get({ + // https://developers.notion.com/reference/retrieve-a-database endpoint: `/v1/databases/${parsedInput.data.databaseId}`, retries: 10 }); diff --git a/integrations/notion/syncs/databases.ts b/integrations/notion/syncs/databases.ts index 9322f90b..83d43236 100644 --- a/integrations/notion/syncs/databases.ts +++ b/integrations/notion/syncs/databases.ts @@ -3,6 +3,7 @@ import type { NangoSync, ProxyConfiguration, NotionCompleteDatabase } from '../. export default async function fetchData(nango: NangoSync): Promise { for await (const databases of nango.paginate({ method: 'post', + // https://developers.notion.com/reference/post-search endpoint: '/v1/search', data: { filter: { @@ -18,6 +19,7 @@ export default async function fetchData(nango: NangoSync): Promise { for (const database of databases) { const proxyConfig: ProxyConfiguration = { method: 'POST', + // https://developers.notion.com/reference/post-database-query endpoint: `/v1/databases/${database.id}/query`, paginate: { cursor_path_in_response: 'next_cursor' diff --git a/integrations/notion/syncs/users.ts b/integrations/notion/syncs/users.ts index 18e3627b..4b11af27 100644 --- a/integrations/notion/syncs/users.ts +++ b/integrations/notion/syncs/users.ts @@ -3,6 +3,7 @@ import type { NotionUser } from '../types'; export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { + // https://developers.notion.com/reference/get-users endpoint: '/v1/users', retries: 10 }; diff --git a/integrations/notion/utils.ts b/integrations/notion/utils.ts index d14a9915..439c5c00 100644 --- a/integrations/notion/utils.ts +++ b/integrations/notion/utils.ts @@ -56,6 +56,7 @@ export const paginate = async (nango: NangoSync | NangoAction, method: 'get' | ' const config: ProxyConfiguration = { method, + // @eslint-disable-next-line @nangohq/custom-integrations-linting/include-docs-for-endpoints endpoint, data: method === 'post' ? postData : {}, params, diff --git a/integrations/outlook/actions/fetch-attachment.ts b/integrations/outlook/actions/fetch-attachment.ts index c135e127..214dffef 100644 --- a/integrations/outlook/actions/fetch-attachment.ts +++ b/integrations/outlook/actions/fetch-attachment.ts @@ -4,11 +4,11 @@ export default async function runAction(nango: NangoAction, input: DocumentInput const { threadId, attachmentId } = input; const config: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/attachment-get?view=graph-rest-1.0&tabs=http#http-request endpoint: `/v1.0/me/messages/${threadId}/attachments/${attachmentId}/$value`, retries: 10 }; - // https://learn.microsoft.com/en-us/graph/api/attachment-get?view=graph-rest-1.0&tabs=http#http-request const attachmentResponse = await nango.get(config); return attachmentResponse.data; diff --git a/integrations/outlook/syncs/emails.ts b/integrations/outlook/syncs/emails.ts index 0c67aae7..ae606481 100644 --- a/integrations/outlook/syncs/emails.ts +++ b/integrations/outlook/syncs/emails.ts @@ -14,6 +14,7 @@ export default async function fetchData(nango: NangoSync) { const pageSize = 100; const config: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http#example-1-list-all-messages endpoint: '/v1.0/me/messages', params: { $filter: `receivedDateTime ge ${syncDate.toISOString()}`, @@ -32,7 +33,6 @@ export default async function fetchData(nango: NangoSync) { retries: 10 }; - // https://learn.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http#example-1-list-all-messages for await (const messageList of nango.paginate(config)) { const emails: OutlookEmail[] = messageList.map((message: OutlookMessage) => { const headers = extractHeaders(message); diff --git a/integrations/quickbooks/actions/create-account.ts b/integrations/quickbooks/actions/create-account.ts index 3adb9a33..1c27a81f 100644 --- a/integrations/quickbooks/actions/create-account.ts +++ b/integrations/quickbooks/actions/create-account.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: CreateAccount const quickBooksAccount = toQuickBooksAccount(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account#create-an-account endpoint: `/v3/company/${companyId}/account`, data: quickBooksAccount, retries: 10 diff --git a/integrations/quickbooks/actions/create-credit-memo.ts b/integrations/quickbooks/actions/create-credit-memo.ts index 537c0b97..1f7f379e 100644 --- a/integrations/quickbooks/actions/create-credit-memo.ts +++ b/integrations/quickbooks/actions/create-credit-memo.ts @@ -61,6 +61,7 @@ export default async function runAction(nango: NangoAction, input: CreateCreditM const quickBooksInvoice = toQuickBooksCreditMemo(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/creditmemo#create-a-credit-memo endpoint: `/v3/company/${companyId}/creditmemo`, data: quickBooksInvoice, retries: 10 diff --git a/integrations/quickbooks/actions/create-customer.ts b/integrations/quickbooks/actions/create-customer.ts index e1c39aa6..c5f49195 100644 --- a/integrations/quickbooks/actions/create-customer.ts +++ b/integrations/quickbooks/actions/create-customer.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: CreateCustome const quickBooksCustomer = toQuickBooksCustomer(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#create-a-customer endpoint: `/v3/company/${companyId}/customer`, data: quickBooksCustomer, retries: 10 diff --git a/integrations/quickbooks/actions/create-invoice.ts b/integrations/quickbooks/actions/create-invoice.ts index 48f56913..8493c524 100644 --- a/integrations/quickbooks/actions/create-invoice.ts +++ b/integrations/quickbooks/actions/create-invoice.ts @@ -61,6 +61,7 @@ export default async function runAction(nango: NangoAction, input: CreateInvoice const quickBooksInvoice = toQuickBooksInvoice(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#create-an-invoice endpoint: `/v3/company/${companyId}/invoice`, data: quickBooksInvoice, retries: 10 diff --git a/integrations/quickbooks/actions/create-item.ts b/integrations/quickbooks/actions/create-item.ts index e99cd6e3..aa9dca77 100644 --- a/integrations/quickbooks/actions/create-item.ts +++ b/integrations/quickbooks/actions/create-item.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: CreateItem): const quickBooksItem = toQuickBooksItem(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item#create-an-item endpoint: `/v3/company/${companyId}/item`, data: quickBooksItem, retries: 10 diff --git a/integrations/quickbooks/actions/create-payment.ts b/integrations/quickbooks/actions/create-payment.ts index d242af71..85180aec 100644 --- a/integrations/quickbooks/actions/create-payment.ts +++ b/integrations/quickbooks/actions/create-payment.ts @@ -40,6 +40,7 @@ export default async function runAction(nango: NangoAction, input: CreatePayment const quickBooksPayment = toQuickBooksPayment(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment#create-a-payment endpoint: `/v3/company/${companyId}/payment`, data: quickBooksPayment, retries: 10 diff --git a/integrations/quickbooks/actions/update-account.ts b/integrations/quickbooks/actions/update-account.ts index 98ee0154..1beeb756 100644 --- a/integrations/quickbooks/actions/update-account.ts +++ b/integrations/quickbooks/actions/update-account.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: UpdateAccount const quickBooksAccount = toQuickBooksAccount(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account#sparse-update-a-account endpoint: `/v3/company/${companyId}/account`, data: quickBooksAccount, retries: 10 diff --git a/integrations/quickbooks/actions/update-credit-memo.ts b/integrations/quickbooks/actions/update-credit-memo.ts index 0d5412eb..4f930ad9 100644 --- a/integrations/quickbooks/actions/update-credit-memo.ts +++ b/integrations/quickbooks/actions/update-credit-memo.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: UpdateCreditM const quickBooksInvoice = toQuickBooksCreditMemo(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/creditmemo#full-update-a-credit-memo endpoint: `/v3/company/${companyId}/creditmemo`, data: quickBooksInvoice, retries: 10 diff --git a/integrations/quickbooks/actions/update-customer.ts b/integrations/quickbooks/actions/update-customer.ts index b33d6ab1..651cf13e 100644 --- a/integrations/quickbooks/actions/update-customer.ts +++ b/integrations/quickbooks/actions/update-customer.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: UpdateCustome const quickBooksCustomer = toQuickBooksCustomer(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#sparse-update-a-customer endpoint: `/v3/company/${companyId}/customer`, data: quickBooksCustomer, retries: 10 diff --git a/integrations/quickbooks/actions/update-invoice.ts b/integrations/quickbooks/actions/update-invoice.ts index 383ee663..6d84f370 100644 --- a/integrations/quickbooks/actions/update-invoice.ts +++ b/integrations/quickbooks/actions/update-invoice.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: UpdateInvoice const quickBooksInvoice = toQuickBooksInvoice(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice#sparse-update-an-invoice endpoint: `/v3/company/${companyId}/invoice`, data: quickBooksInvoice, retries: 10 diff --git a/integrations/quickbooks/actions/update-item.ts b/integrations/quickbooks/actions/update-item.ts index 2dea1913..ff27a430 100644 --- a/integrations/quickbooks/actions/update-item.ts +++ b/integrations/quickbooks/actions/update-item.ts @@ -34,6 +34,7 @@ export default async function runAction(nango: NangoAction, input: UpdateItem): const quickBooksItem = toQuickBooksItem(input); const config: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer#sparse-update-a-customer endpoint: `/v3/company/${companyId}/item`, data: quickBooksItem, retries: 10 diff --git a/integrations/quickbooks/helpers/paginate.ts b/integrations/quickbooks/helpers/paginate.ts index 276866d5..fc9bbd0f 100644 --- a/integrations/quickbooks/helpers/paginate.ts +++ b/integrations/quickbooks/helpers/paginate.ts @@ -38,6 +38,7 @@ export async function* paginate( await nango.log('Syncing records using the following query:', { queryWithPagination }); const payload: ProxyConfiguration = { + // https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/data-queries endpoint: `/v3/company/${companyId}/query`, params: { query: queryWithPagination }, retries: 10 diff --git a/integrations/salesforce/actions/fetch-fields.ts b/integrations/salesforce/actions/fetch-fields.ts index 724e7e46..c6becb32 100644 --- a/integrations/salesforce/actions/fetch-fields.ts +++ b/integrations/salesforce/actions/fetch-fields.ts @@ -15,11 +15,13 @@ export default async function runAction(nango: NangoAction, input: SalesforceEnt const entity = input?.name || 'Task'; const proxyConfigFields: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_describe.htm endpoint: `/services/data/v60.0/sobjects/${entity}/describe`, retries: 10 }; const proxyConfigValidationIds: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_validationrule.htm endpoint: `/services/data/v60.0/tooling/query`, retries: 10, params: { @@ -64,6 +66,7 @@ async function fetchValidationRuleMetadata(nango: NangoAction, validationRulesId const metadataFetchPromises: Promise[] = validationRulesIds.map((rule) => nango .get({ + // https://help.salesforce.com/s/articleView?id=000383591&type=1 endpoint: `/services/data/v60.0/tooling/query`, retries: 10, params: { diff --git a/integrations/salesforce/syncs/accounts.ts b/integrations/salesforce/syncs/accounts.ts index 14ac6b0e..576446d2 100644 --- a/integrations/salesforce/syncs/accounts.ts +++ b/integrations/salesforce/syncs/accounts.ts @@ -26,6 +26,7 @@ async function fetchAndSaveRecords(nango: NangoSync, query: string) { const endpoint = '/services/data/v60.0/query'; const proxyConfig: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm endpoint, retries: 10, params: { q: query }, @@ -36,7 +37,6 @@ async function fetchAndSaveRecords(nango: NangoSync, query: string) { } }; - // https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_account.htm for await (const accounts of nango.paginate(proxyConfig)) { const mappedAccounts = accounts.map((account: SalesforceAccount) => toAccount(account)); await nango.batchSave(mappedAccounts, 'Account'); diff --git a/integrations/salesforce/syncs/articles.ts b/integrations/salesforce/syncs/articles.ts index f587313e..d512f77f 100644 --- a/integrations/salesforce/syncs/articles.ts +++ b/integrations/salesforce/syncs/articles.ts @@ -33,6 +33,7 @@ async function fetchAndSaveRecords(nango: NangoSync, query: string, customFields const endpoint = '/services/data/v60.0/query'; const proxyConfig: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm endpoint, retries: 10, params: { q: query }, diff --git a/integrations/salesforce/syncs/contacts.ts b/integrations/salesforce/syncs/contacts.ts index fca20b3a..e18f234c 100644 --- a/integrations/salesforce/syncs/contacts.ts +++ b/integrations/salesforce/syncs/contacts.ts @@ -29,6 +29,7 @@ async function fetchAndSaveRecords(nango: NangoSync, query: string) { const endpoint = '/services/data/v60.0/query'; const proxyConfig: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm endpoint, retries: 10, params: { q: query }, diff --git a/integrations/salesforce/syncs/leads.ts b/integrations/salesforce/syncs/leads.ts index db54e409..e1348ee2 100644 --- a/integrations/salesforce/syncs/leads.ts +++ b/integrations/salesforce/syncs/leads.ts @@ -29,6 +29,7 @@ async function fetchAndSaveRecords(nango: NangoSync, query: string) { const endpoint = '/services/data/v60.0/query'; const proxyConfig: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm endpoint, retries: 10, params: { q: query }, diff --git a/integrations/salesforce/syncs/opportunities.ts b/integrations/salesforce/syncs/opportunities.ts index 1bb821e0..5c75f8ec 100644 --- a/integrations/salesforce/syncs/opportunities.ts +++ b/integrations/salesforce/syncs/opportunities.ts @@ -30,6 +30,7 @@ async function fetchAndSaveRecords(nango: NangoSync, query: string) { const endpoint = '/services/data/v60.0/query'; const proxyConfig: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm endpoint, retries: 10, params: { q: query }, diff --git a/integrations/salesforce/syncs/tickets.ts b/integrations/salesforce/syncs/tickets.ts index 35b7815d..155fdec6 100644 --- a/integrations/salesforce/syncs/tickets.ts +++ b/integrations/salesforce/syncs/tickets.ts @@ -44,6 +44,7 @@ async function fetchAndSaveTickets(nango: NangoSync, query: string) { const endpoint = '/services/data/v60.0/query'; const proxyConfig: ProxyConfiguration = { + // https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm endpoint, retries: 10, params: { q: query }, diff --git a/integrations/sharepoint-online/syncs/shared-sites-selection.ts b/integrations/sharepoint-online/syncs/shared-sites-selection.ts index c0dd703e..c082b6b5 100644 --- a/integrations/sharepoint-online/syncs/shared-sites-selection.ts +++ b/integrations/sharepoint-online/syncs/shared-sites-selection.ts @@ -35,7 +35,8 @@ async function getSiteIdToLists(nango: NangoSync, files: string[]): Promise = {}; for (const siteId of files) { - const config = { + const config: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/list-list?view=graph-rest-1.0&tabs=http endpoint: `v1.0/sites/${siteId}/lists`, paginate: { type: 'link', @@ -65,6 +66,7 @@ async function getSiteIdToLists(nango: NangoSync, files: string[]): Promise { const config: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/listitem-delta?view=graph-rest-1.0&tabs=http endpoint: `/v1.0/sites/${siteId}/lists/${listId}/items/delta`, paginate: { type: 'link', @@ -100,6 +102,7 @@ async function processListItems(nango: NangoSync, siteId: string, listId: string */ async function fetchDriveItemDetails(nango: NangoSync, siteId: string, listId: string, itemId: string): Promise { const response = await nango.get({ + // https://learn.microsoft.com/en-us/graph/api/driveitem-get?view=graph-rest-1.0&tabs=http endpoint: `/v1.0/sites/${siteId}/lists/${listId}/items/${itemId}/driveItem`, retries: 10 }); diff --git a/integrations/sharepoint-online/syncs/user-files-selection.ts b/integrations/sharepoint-online/syncs/user-files-selection.ts index 86640c42..48152118 100644 --- a/integrations/sharepoint-online/syncs/user-files-selection.ts +++ b/integrations/sharepoint-online/syncs/user-files-selection.ts @@ -16,6 +16,7 @@ export default async function fetchData(nango: NangoSync): Promise { for (const fileId of fileIds) { const fileConfig: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/driveitem-get?view=graph-rest-1.0&tabs=http endpoint: `/v1.0/sites/${siteId}/drive/items/${fileId}`, retries: 10 }; diff --git a/integrations/sharepoint-online/syncs/user-files.ts b/integrations/sharepoint-online/syncs/user-files.ts index 6db103dd..bbb0b82a 100644 --- a/integrations/sharepoint-online/syncs/user-files.ts +++ b/integrations/sharepoint-online/syncs/user-files.ts @@ -4,6 +4,7 @@ import { toFile } from '../mappers/to-file.js'; export default async function fetchData(nango: NangoSync): Promise { const driveConfiguration: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/drive-list?view=graph-rest-1.0&tabs=http#list-the-current-users-drives endpoint: '/v1.0/me/drives', retries: 10 }; @@ -17,6 +18,7 @@ export default async function fetchData(nango: NangoSync): Promise { const { id } = drive; const itemsConfiguration: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0#commonly-accessed-resources endpoint: `/v1.0/drives/${id}/root/children`, retries: 10 }; @@ -39,6 +41,7 @@ async function fetchFilesRecursive(nango: NangoSync, driveId: string, item: Driv if (item.folder && item.folder.childCount > 0) { const folderConfig: ProxyConfiguration = { + // https://learn.microsoft.com/en-us/graph/api/driveitem-list-children?view=graph-rest-1.0&tabs=http#http-request endpoint: `/v1.0/drives/${driveId}/items/${item.id}/children`, retries: 10 }; diff --git a/integrations/slack/actions/send-message.ts b/integrations/slack/actions/send-message.ts index aa182386..b53001b8 100644 --- a/integrations/slack/actions/send-message.ts +++ b/integrations/slack/actions/send-message.ts @@ -32,6 +32,7 @@ export default async function runAction(nango: NangoAction, input: SendMesssageI }; const config: ProxyConfiguration = { + // https://api.slack.com/methods/chat.postMessage endpoint: '/chat.postMessage', data: slackMessage, headers: { diff --git a/integrations/slack/syncs/messages.ts b/integrations/slack/syncs/messages.ts index 105b5e0a..38e66564 100644 --- a/integrations/slack/syncs/messages.ts +++ b/integrations/slack/syncs/messages.ts @@ -18,12 +18,14 @@ export default async function fetchData(nango: NangoSync) { let batchMessages: SlackMessage[] = []; let batchMessageReply: SlackMessageReply[] = []; - const channelsRequestConfig = { + const channelsRequestConfig: ProxyConfiguration = { + // https://api.slack.com/methods/users.conversations endpoint: 'users.conversations', paginate: { limit: 200, response_path: 'channels' - } + }, + retries: 10 }; // For every channel read messages, replies & reactions @@ -42,12 +44,14 @@ export default async function fetchData(nango: NangoSync) { }` ); - const messagesRequestConfig = { + const messagesRequestConfig: ProxyConfiguration = { + // https://api.slack.com/methods/conversations.history endpoint: 'conversations.history', params: { channel: currentChannel['id'], oldest: channelSyncTimestamp.toString() }, + retries: 10, paginate: { limit: 200, response_path: 'messages' @@ -90,11 +94,13 @@ export default async function fetchData(nango: NangoSync) { // Replies to fetch? if (message.reply_count > 0) { const messagesReplyRequestConfig: ProxyConfiguration = { + // https://api.slack.com/methods/conversations.replies endpoint: 'conversations.replies', params: { channel: currentChannel.id, ts: message.thread_ts }, + retries: 10, paginate: { limit: 200, response_path: 'messages' diff --git a/integrations/wildix-pbx/syncs/colleagues.ts b/integrations/wildix-pbx/syncs/colleagues.ts index 04a6eb5f..2f6519e0 100644 --- a/integrations/wildix-pbx/syncs/colleagues.ts +++ b/integrations/wildix-pbx/syncs/colleagues.ts @@ -9,11 +9,11 @@ export default async function fetchData(nango: NangoSync) { const connection = await nango.getConnection(); - // https://docs.wildix.com/wms/index.html#tag/Colleagues // eslint-disable-next-line @nangohq/custom-integrations-linting/no-while-true while (true) { const payload: ProxyConfiguration = { baseUrlOverride: `https://${connection.connection_config['subdomain']}.wildixin.com`, + // https://docs.wildix.com/wms/index.html#tag/Colleagues endpoint: '/api/v1/Colleagues/', params: { start, diff --git a/integrations/woocommerce/syncs/customers.ts b/integrations/woocommerce/syncs/customers.ts index e4d69a39..21ad70ef 100644 --- a/integrations/woocommerce/syncs/customers.ts +++ b/integrations/woocommerce/syncs/customers.ts @@ -15,6 +15,7 @@ import { toCustomer } from '../mappers/to-customer.js'; */ export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { + // https://woocommerce.github.io/woocommerce-rest-api-docs/#list-all-customers endpoint: '/wp-json/wc/v3/customers', retries: 10, paginate: { diff --git a/integrations/woocommerce/syncs/orders.ts b/integrations/woocommerce/syncs/orders.ts index 8a483839..b1743921 100644 --- a/integrations/woocommerce/syncs/orders.ts +++ b/integrations/woocommerce/syncs/orders.ts @@ -15,6 +15,7 @@ import { toOrder } from '../mappers/to-order.js'; */ export default async function fetchData(nango: NangoSync): Promise { const config: ProxyConfiguration = { + // https://woocommerce.github.io/woocommerce-rest-api-docs/#list-all-orders endpoint: '/wp-json/wc/v3/orders', retries: 10, params: nango.lastSyncDate diff --git a/integrations/workable/syncs/candidates-activities.ts b/integrations/workable/syncs/candidates-activities.ts index dfc3612a..0fb6e265 100644 --- a/integrations/workable/syncs/candidates-activities.ts +++ b/integrations/workable/syncs/candidates-activities.ts @@ -8,9 +8,9 @@ export default async function fetchData(nango: NangoSync) { const candidates: any[] = await getAllCandidates(nango); for (const candidate of candidates) { - const endpoint = `/spi/v3/candidates/${candidate.id}/activities`; - - const config = { + const config: ProxyConfiguration = { + // https://workable.readme.io/reference/candidate-activities + endpoint: `/spi/v3/candidates/${candidate.id}/activities`, paginate: { type: 'link', link_path_in_response_body: 'paging.next', @@ -19,7 +19,7 @@ export default async function fetchData(nango: NangoSync) { limit: LIMIT } }; - for await (const activity of nango.paginate({ ...config, endpoint })) { + for await (const activity of nango.paginate(config)) { const mappedActivity: WorkableCandidateActivity[] = activity.map(mapActivity) || []; const batchSize: number = mappedActivity.length; @@ -33,6 +33,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllCandidates(nango: NangoSync) { const records: any[] = []; const proxyConfig: ProxyConfiguration = { + // https://workable.readme.io/reference/job-candidates-index endpoint: '/spi/v3/candidates', paginate: { type: 'link', diff --git a/integrations/workable/syncs/candidates-offer.ts b/integrations/workable/syncs/candidates-offer.ts index a954a893..3e7e102c 100644 --- a/integrations/workable/syncs/candidates-offer.ts +++ b/integrations/workable/syncs/candidates-offer.ts @@ -23,6 +23,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllCandidates(nango: NangoSync) { const records: any[] = []; const proxyConfig: ProxyConfiguration = { + // https://workable.readme.io/reference/job-candidates-index endpoint: '/spi/v3/candidates', paginate: { type: 'link', diff --git a/integrations/workable/syncs/candidates.ts b/integrations/workable/syncs/candidates.ts index d833b55a..7bf0af60 100644 --- a/integrations/workable/syncs/candidates.ts +++ b/integrations/workable/syncs/candidates.ts @@ -1,10 +1,11 @@ -import type { WorkableCandidate, NangoSync } from '../../models'; +import type { ProxyConfiguration, WorkableCandidate, NangoSync } from '../../models'; export default async function fetchData(nango: NangoSync) { let totalRecords = 0; - const endpoint = '/spi/v3/candidates'; - const config = { + const config: ProxyConfiguration = { + // https://workable.readme.io/reference/job-candidates-index + endpoint: '/spi/v3/candidates', ...(nango.lastSyncDate ? { params: { created_after: nango.lastSyncDate?.toISOString() } } : {}), paginate: { type: 'link', @@ -14,7 +15,7 @@ export default async function fetchData(nango: NangoSync) { limit: 100 } }; - for await (const candidate of nango.paginate({ ...config, endpoint })) { + for await (const candidate of nango.paginate(config)) { const mappedCandidate: WorkableCandidate[] = candidate.map(mapCandidate) || []; const batchSize: number = mappedCandidate.length; diff --git a/integrations/workable/syncs/create-candidate.ts b/integrations/workable/syncs/create-candidate.ts deleted file mode 100644 index 445c00b9..00000000 --- a/integrations/workable/syncs/create-candidate.ts +++ /dev/null @@ -1,100 +0,0 @@ -import type { NangoAction, WorkableCreateCandidateResponse, WorkableCreateCandidateInput } from '../../models'; - -export default async function runAction(nango: NangoAction, input: WorkableCreateCandidateInput): Promise { - if (!input.shortcode) { - throw new nango.ActionError({ - message: 'job shortcode is a required field' - }); - } else if (!input.candidate.name) { - throw new nango.ActionError({ - message: 'name is required for the candidate' - }); - } else if (!input.candidate.firstname) { - throw new nango.ActionError({ - message: 'firstname is required for the candidate' - }); - } else if (!input.candidate.lastname) { - throw new nango.ActionError({ - message: 'lastname is required for the candidate' - }); - } else if (!input.candidate.email) { - throw new nango.ActionError({ - message: 'email is required for the candidate' - }); - } else if ( - input.candidate.education_entries && - Array.isArray(input.candidate.education_entries) && - input.candidate.education_entries.some((entry: any) => !entry.school) - ) { - throw new nango.ActionError({ - message: "school is required for the candidate's education entries" - }); - } else if ( - input.candidate.experience_entries && - Array.isArray(input.candidate.experience_entries) && - input.candidate.experience_entries.some((entry: any) => !entry.title) - ) { - throw new nango.ActionError({ - message: "title is required for the candidate's experience entries" - }); - } else if (input.candidate.answers && Array.isArray(input.candidate.answers) && input.candidate.answers.some((entry: any) => !entry.question_key)) { - throw new nango.ActionError({ - message: "question_key is required for the candidate's answer" - }); - } else if ( - input.candidate.social_profiles && - Array.isArray(input.candidate.social_profiles) && - input.candidate.social_profiles.some((entry: any) => !entry.type) - ) { - throw new nango.ActionError({ - message: "type is required for the candidate's social profiles" - }); - } else if ( - input.candidate.social_profiles && - Array.isArray(input.candidate.social_profiles) && - input.candidate.social_profiles.some((entry: any) => !entry.url) - ) { - throw new nango.ActionError({ - message: "url is required for the candidate's social profiles" - }); - } - - const endpoint = `/spi/v3/jobs/${input.shortcode}/candidates`; - - const postData = { - shortcode: input.shortcode, - candidate: { - name: input.candidate.name, - firstname: input.candidate.firstname, - lastname: input.candidate.lastname, - email: input.candidate.email, - headline: input.candidate.headline, - summary: input.candidate.summary, - address: input.candidate.address, - phone: input.candidate.phone, - cover_letter: input.candidate.cover_letter, - education_entries: input.candidate.education_entries, - experience_entries: input.candidate.experience_entries, - answers: input.candidate.answers, - skills: input.candidate.skills, - tags: input.candidate.tags, - disqualified: input.candidate.disqualified, - disqualification_reason: input.candidate.disqualification_reason, - disqualified_at: input.candidate.disqualified_at, - social_profiles: input.candidate.social_profiles - }, - domain: input.domain, - recruiter_key: input.recruiter_key - }; - - const resp = await nango.post({ - endpoint: endpoint, - data: postData, - retries: 10 - }); - - return { - status: resp.data.status, - candidate: resp.data.candidate - }; -} diff --git a/integrations/workable/syncs/create-comment.ts b/integrations/workable/syncs/create-comment.ts deleted file mode 100644 index 3ed93520..00000000 --- a/integrations/workable/syncs/create-comment.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { NangoAction, WorkableCreateCommentResponse, WorkableCreateCommentInput } from '../../models'; - -export default async function runAction(nango: NangoAction, input: WorkableCreateCommentInput): Promise { - if (!input.id) { - throw new nango.ActionError({ - message: 'candidate id is a required field' - }); - } else if (!input.member_id) { - throw new nango.ActionError({ - message: 'member_id is a required field' - }); - } else if (!input.comment) { - throw new nango.ActionError({ - message: 'comment is a required field' - }); - } else if (!input.comment.body) { - throw new nango.ActionError({ - message: 'body is a required field for comment' - }); - } - - const endpoint = `/spi/v3/candidates/${input.id}/comments`; - - const postData = { - member_id: input.member_id, - comment: { - body: input.comment.body, - policy: input.comment.policy, - attachment: input.comment.attachment - } - }; - - const resp = await nango.post({ - endpoint: endpoint, - data: postData, - retries: 10 - }); - - return { - id: resp.data.id - }; -} diff --git a/integrations/workable/syncs/jobs-candidates.ts b/integrations/workable/syncs/jobs-candidates.ts index 345fd9d1..262f3fd3 100644 --- a/integrations/workable/syncs/jobs-candidates.ts +++ b/integrations/workable/syncs/jobs-candidates.ts @@ -8,9 +8,9 @@ export default async function fetchData(nango: NangoSync) { const jobs: any[] = await getAllJobs(nango); for (const job of jobs) { - const endpoint = `/spi/v3/jobs/${job.shortcode}/candidates`; - - const config = { + const config: ProxyConfiguration = { + // https://workable.readme.io/reference/job-candidates-create + endpoint: `/spi/v3/jobs/${job.shortcode}/candidates`, paginate: { type: 'link', link_path_in_response_body: 'paging.next', @@ -19,7 +19,7 @@ export default async function fetchData(nango: NangoSync) { limit: LIMIT } }; - for await (const candidate of nango.paginate({ ...config, endpoint })) { + for await (const candidate of nango.paginate(config)) { const mappedCandidate: WorkableCandidate[] = candidate.map(mapCandidate) || []; // Save candidates const batchSize: number = mappedCandidate.length; @@ -33,6 +33,7 @@ export default async function fetchData(nango: NangoSync) { async function getAllJobs(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://workable.readme.io/reference/jobs endpoint: '/spi/v3/jobs', paginate: { type: 'link', diff --git a/integrations/workable/syncs/jobs-questions.ts b/integrations/workable/syncs/jobs-questions.ts index 116567ce..112fd921 100644 --- a/integrations/workable/syncs/jobs-questions.ts +++ b/integrations/workable/syncs/jobs-questions.ts @@ -10,7 +10,11 @@ export default async function fetchData(nango: NangoSync) { for (const job of jobs) { const endpoint = `/spi/v3/jobs/${job.shortcode}/questions`; - const response = await nango.get({ endpoint, retries: 10 }); + const response = await nango.get({ + // https://workable.readme.io/reference/job-questions + endpoint, + retries: 10 + }); const questions: any[] = response.data.questions || []; const mappedQuestions: WorkableJobQuestion[] = questions.map(mapQuestion) || []; @@ -33,6 +37,7 @@ async function processChunks(nango: NangoSync, data: WorkableJobQuestion[], shor async function getAllJobs(nango: NangoSync) { const records: any[] = []; const config: ProxyConfiguration = { + // https://workable.readme.io/reference/jobs endpoint: '/spi/v3/jobs', paginate: { type: 'link', diff --git a/integrations/workable/syncs/jobs.ts b/integrations/workable/syncs/jobs.ts index dec75d78..3172a111 100644 --- a/integrations/workable/syncs/jobs.ts +++ b/integrations/workable/syncs/jobs.ts @@ -1,11 +1,12 @@ -import type { WorkableJob, NangoSync } from '../../models'; +import type { ProxyConfiguration, WorkableJob, NangoSync } from '../../models'; export default async function fetchData(nango: NangoSync) { let totalRecords = 0; - const endpoint = '/spi/v3/jobs'; - const config = { + const config: ProxyConfiguration = { ...(nango.lastSyncDate ? { params: { created_after: nango.lastSyncDate?.toISOString() } } : {}), + // https://workable.readme.io/reference/jobs + endpoint: '/spi/v3/jobs', paginate: { type: 'link', link_path_in_response_body: 'paging.next', @@ -14,7 +15,7 @@ export default async function fetchData(nango: NangoSync) { limit: 100 } }; - for await (const job of nango.paginate({ ...config, endpoint })) { + for await (const job of nango.paginate(config)) { const mappedJob: WorkableJob[] = job.map(mapJob) || []; const batchSize: number = mappedJob.length; diff --git a/integrations/xero/actions/create-contact.ts b/integrations/xero/actions/create-contact.ts index 1019cdaa..600dee6e 100644 --- a/integrations/xero/actions/create-contact.ts +++ b/integrations/xero/actions/create-contact.ts @@ -22,6 +22,7 @@ export default async function runAction(nango: NangoAction, input: CreateContact } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/contacts/#post-contacts endpoint: 'api.xro/2.0/Contacts', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/create-credit-note.ts b/integrations/xero/actions/create-credit-note.ts index c283ec81..009591f2 100644 --- a/integrations/xero/actions/create-credit-note.ts +++ b/integrations/xero/actions/create-credit-note.ts @@ -32,6 +32,7 @@ export default async function runAction(nango: NangoAction, input: CreditNote[]) } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/creditnotes/#post-creditnotes endpoint: 'api.xro/2.0/CreditNotes', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/create-invoice.ts b/integrations/xero/actions/create-invoice.ts index 994fa4ec..163ccc22 100644 --- a/integrations/xero/actions/create-invoice.ts +++ b/integrations/xero/actions/create-invoice.ts @@ -33,6 +33,7 @@ export default async function runAction(nango: NangoAction, input: CreateInvoice } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/invoices/#post-invoices endpoint: 'api.xro/2.0/Invoices', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/create-item.ts b/integrations/xero/actions/create-item.ts index 99a145df..9576a468 100644 --- a/integrations/xero/actions/create-item.ts +++ b/integrations/xero/actions/create-item.ts @@ -16,6 +16,7 @@ export default async function runAction(nango: NangoAction, input: Item[]): Prom } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/items/#post-items endpoint: 'api.xro/2.0/Items', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/create-payment.ts b/integrations/xero/actions/create-payment.ts index 426a9fb8..a0c1eef6 100644 --- a/integrations/xero/actions/create-payment.ts +++ b/integrations/xero/actions/create-payment.ts @@ -28,6 +28,7 @@ export default async function runAction(nango: NangoAction, input: CreatePayment } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/payments/#put-payments endpoint: 'api.xro/2.0/Payments', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/update-contact.ts b/integrations/xero/actions/update-contact.ts index d0673cff..6efd6675 100644 --- a/integrations/xero/actions/update-contact.ts +++ b/integrations/xero/actions/update-contact.ts @@ -25,6 +25,7 @@ export default async function runAction(nango: NangoAction, input?: Contact[]): } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/contacts/#post-contacts endpoint: 'api.xro/2.0/Contacts', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/update-credit-note.ts b/integrations/xero/actions/update-credit-note.ts index 7d1cb416..4893fde6 100644 --- a/integrations/xero/actions/update-credit-note.ts +++ b/integrations/xero/actions/update-credit-note.ts @@ -30,6 +30,7 @@ export default async function runAction(nango: NangoAction, input: CreditNote[]) } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/creditnotes/#post-creditnotes endpoint: 'api.xro/2.0/CreditNotes', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/update-invoice.ts b/integrations/xero/actions/update-invoice.ts index 548ccbd2..fa8b6709 100644 --- a/integrations/xero/actions/update-invoice.ts +++ b/integrations/xero/actions/update-invoice.ts @@ -21,6 +21,7 @@ export default async function runAction(nango: NangoAction, input: UpdateInvoice } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/invoices/#post-invoices endpoint: 'api.xro/2.0/Invoices', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/actions/update-item.ts b/integrations/xero/actions/update-item.ts index b905b957..279a3693 100644 --- a/integrations/xero/actions/update-item.ts +++ b/integrations/xero/actions/update-item.ts @@ -16,6 +16,7 @@ export default async function runAction(nango: NangoAction, input: Item[]): Prom } const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/items/#post-items endpoint: 'api.xro/2.0/Items', headers: { 'xero-tenant-id': tenant_id diff --git a/integrations/xero/syncs/items.ts b/integrations/xero/syncs/items.ts index 0cfc2bef..99df5890 100644 --- a/integrations/xero/syncs/items.ts +++ b/integrations/xero/syncs/items.ts @@ -6,6 +6,7 @@ export default async function fetchData(nango: NangoSync): Promise { const tenant_id = await getTenantId(nango); const config: ProxyConfiguration = { + // https://developer.xero.com/documentation/api/accounting/items/#get-items endpoint: 'api.xro/2.0/Items', headers: { 'xero-tenant-id': tenant_id, diff --git a/integrations/zendesk/actions/search-tickets.ts b/integrations/zendesk/actions/search-tickets.ts index 8189767d..524b18d8 100644 --- a/integrations/zendesk/actions/search-tickets.ts +++ b/integrations/zendesk/actions/search-tickets.ts @@ -10,6 +10,7 @@ export default async function runAction(nango: NangoAction, input: SearchTicketI } const config = { + // https://developer.zendesk.com/api-reference/ticketing/ticket-management/search/ endpoint: `/api/v2/search`, params: { query: input.query, @@ -45,6 +46,7 @@ async function* paginate( }; const config: ProxyConfiguration = { + // https://developer.zendesk.com/api-reference/ticketing/ticket-management/search/ endpoint: nextPageLink, params: configParams, retries: 10 diff --git a/integrations/zoho-mail/syncs/tasks.ts b/integrations/zoho-mail/syncs/tasks.ts index 0de4e12b..d7ceb40c 100644 --- a/integrations/zoho-mail/syncs/tasks.ts +++ b/integrations/zoho-mail/syncs/tasks.ts @@ -4,6 +4,7 @@ export default async function fetchData(nango: NangoSync) { let totalRecords = 0; const config: ProxyConfiguration = { + // https://www.zoho.com/mail/help/api/get-all-group-or-personal-tasks.html endpoint: '/api/tasks/me', paginate: { type: 'link', diff --git a/package-lock.json b/package-lock.json index f9db4ace..76aebd11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "husky": "8.0.3", "js-yaml": "4.1.0", "lint-staged": "15.2.9", - "nango": "^0.42.21", + "nango": "^0.42.22", "onchange": "7.1.0", "ts-to-zod": "^3.9.1", "tsx": "^4.19.0", @@ -2220,9 +2220,9 @@ "dev": true }, "node_modules/@nangohq/nango-yaml": { - "version": "0.42.21", - "resolved": "https://registry.npmjs.org/@nangohq/nango-yaml/-/nango-yaml-0.42.21.tgz", - "integrity": "sha512-lHUxAIUBH6gCmBEYX3rORk92hMjUsO1pNEjBXrrFQyMW3ZZbeXt6PCQlRaWQMF0zh8VNMDJ12qbS6tI5iyhP+A==", + "version": "0.42.22", + "resolved": "https://registry.npmjs.org/@nangohq/nango-yaml/-/nango-yaml-0.42.22.tgz", + "integrity": "sha512-H6srHxVhm/yldoz7XCg+O5IHehgdwnpkFemkHHaGZAUNPREmmOODpELssz5wvPALkz8knhXCPdW+Py0/8LnkRg==", "dev": true, "dependencies": { "js-yaml": "^4.1.0", @@ -2240,9 +2240,9 @@ } }, "node_modules/@nangohq/node": { - "version": "0.42.21", - "resolved": "https://registry.npmjs.org/@nangohq/node/-/node-0.42.21.tgz", - "integrity": "sha512-LdB99LsmWKywomTo05ghMwiHvVO1awibqQyIFiBcJ2MtEQbHz3WSNeZ41v8txxeMmgnX6Lxi0jirtlsun1J4oQ==", + "version": "0.42.22", + "resolved": "https://registry.npmjs.org/@nangohq/node/-/node-0.42.22.tgz", + "integrity": "sha512-zFiq6PdtYkaM3oOFLBpKiuu4Gmz2nl8PHSk2JxiRRjx5HBd4oFYf8w7HLY53pRtCHxgLMCJwBDjYF3hjlr8Paw==", "dev": true, "license": "SEE LICENSE IN LICENSE FILE IN GIT REPOSITORY", "dependencies": { @@ -2253,9 +2253,9 @@ } }, "node_modules/@nangohq/shared": { - "version": "0.42.21", - "resolved": "https://registry.npmjs.org/@nangohq/shared/-/shared-0.42.21.tgz", - "integrity": "sha512-Ow1XwgN/coupJkGlL/JvOl6ssukAKrPpd3U7JfCs9eDmjRss/+zGHt09sg5tjsKn5rYuqajFijZ68wqS0UT5Jw==", + "version": "0.42.22", + "resolved": "https://registry.npmjs.org/@nangohq/shared/-/shared-0.42.22.tgz", + "integrity": "sha512-aBb7rOC4iXlNbmeMGNe9asyyB02cxIWoljnsHVK1RhtGYPfvly2GbfwjkHC+750YCi/iu+xohbiBjWSG/nLaLQ==", "bundleDependencies": [ "@nangohq/utils", "@nangohq/database" @@ -2267,8 +2267,8 @@ "@datadog/datadog-api-client": "1.26.0", "@hapi/boom": "^10.0.1", "@nangohq/database": "file:vendor/nangohq-database-1.0.0.tgz", - "@nangohq/nango-yaml": "^0.42.21", - "@nangohq/node": "^0.42.21", + "@nangohq/nango-yaml": "0.42.22", + "@nangohq/node": "^0.42.22", "@nangohq/utils": "file:vendor/nangohq-utils-1.0.0.tgz", "@sentry/node": "^7.119.2", "ajv": "^8.12.0", @@ -2305,7 +2305,7 @@ "pg", "tarn" ], - "extraneous": true, + "dev": true, "inBundle": true, "dependencies": { "@nangohq/utils": "file:vendor/nangohq-utils-1.0.0.tgz", @@ -2330,7 +2330,7 @@ "winston", "zod" ], - "extraneous": true, + "dev": true, "inBundle": true, "license": "SEE LICENSE IN LICENSE FILE IN GIT REPOSITORY", "dependencies": { @@ -2350,7 +2350,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@colors/colors": { "version": "1.6.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2359,7 +2359,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@dabh/diagnostics": { "version": "2.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2370,7 +2370,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@datadog/native-appsec": { "version": "8.0.1", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -2383,7 +2383,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@datadog/native-iast-rewriter": { "version": "2.4.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -2396,7 +2396,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@datadog/native-iast-rewriter/node_modules/node-gyp-build": { "version": "4.8.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -2407,7 +2407,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@datadog/native-iast-taint-tracking": { "version": "3.1.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -2417,7 +2417,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@datadog/native-metrics": { "version": "2.0.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -2431,7 +2431,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@datadog/pprof": { "version": "5.3.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -2448,13 +2448,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@datadog/sketches-js": { "version": "2.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@opentelemetry/api": { "version": "1.8.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -2463,7 +2463,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@opentelemetry/core": { "version": "1.27.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -2478,7 +2478,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@opentelemetry/semantic-conventions": { "version": "1.27.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -2487,31 +2487,31 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/base64": { "version": "1.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/codegen": { "version": "2.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/fetch": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "dependencies": { @@ -2521,37 +2521,37 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/float": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/inquire": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/path": { "version": "1.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/pool": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@protobufjs/utf8": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@types/node": { - "version": "22.8.0", - "extraneous": true, + "version": "22.9.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2560,13 +2560,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/@types/triple-beam": { "version": "1.3.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/abort-controller": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2577,8 +2577,8 @@ } }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/acorn": { - "version": "8.13.0", - "extraneous": true, + "version": "8.14.0", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -2590,7 +2590,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/acorn-import-attributes": { "version": "1.9.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "peerDependencies": { @@ -2599,7 +2599,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/agent-base": { "version": "7.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2611,19 +2611,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/async": { "version": "3.2.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/asynckit": { "version": "0.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/axios": { "version": "1.7.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2634,7 +2634,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/base64-js": { "version": "1.5.1", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -2654,7 +2654,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/buffer": { "version": "6.0.3", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -2678,13 +2678,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/cjs-module-lexer": { "version": "1.4.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/color": { "version": "3.2.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2694,7 +2694,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/color-convert": { "version": "1.9.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2703,13 +2703,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/color-name": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/color-string": { "version": "1.9.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2719,7 +2719,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/colorspace": { "version": "1.1.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2729,7 +2729,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/combined-stream": { "version": "1.0.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2741,13 +2741,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/crypto-randomuuid": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/dc-polyfill": { "version": "0.1.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2756,7 +2756,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/dd-trace": { "version": "5.21.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "(Apache-2.0 OR BSD-3-Clause)", @@ -2797,7 +2797,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/debug": { "version": "4.3.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2814,13 +2814,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/debug/node_modules/ms": { "version": "2.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/delay": { "version": "5.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2832,7 +2832,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/delayed-stream": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2841,7 +2841,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/detect-newline": { "version": "3.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2850,19 +2850,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/enabled": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/event-lite": { "version": "0.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/event-target-shim": { "version": "5.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2871,7 +2871,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/events": { "version": "3.3.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2880,31 +2880,31 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/exponential-backoff": { "version": "3.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/fast-safe-stringify": { "version": "2.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/fecha": { "version": "4.2.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/fn.name": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/follow-redirects": { "version": "1.15.9", - "extraneous": true, + "dev": true, "funding": [ { "type": "individual", @@ -2924,7 +2924,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/form-data": { "version": "4.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2938,7 +2938,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/guess-json-indent": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -2947,7 +2947,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/http-proxy-agent": { "version": "7.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2960,7 +2960,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/https-proxy-agent": { "version": "7.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -2973,7 +2973,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/ieee754": { "version": "1.2.1", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -2993,7 +2993,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/ignore": { "version": "5.3.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3002,7 +3002,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/import-in-the-middle": { "version": "1.11.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -3014,31 +3014,31 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/inherits": { "version": "2.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/int64-buffer": { "version": "0.1.10", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/is-arrayish": { "version": "0.3.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/isarray": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -3047,7 +3047,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/jest-docblock": { "version": "29.7.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3059,7 +3059,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/koalas": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3068,24 +3068,24 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/kuler": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/limiter": { "version": "1.1.5", - "extraneous": true, + "dev": true, "inBundle": true }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/lodash.sortby": { "version": "4.7.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/logform": { "version": "2.6.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3102,19 +3102,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/logform/node_modules/ms": { "version": "2.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/long": { "version": "5.2.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/lru-cache": { "version": "7.18.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -3123,7 +3123,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/mime-db": { "version": "1.52.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3132,7 +3132,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/mime-types": { "version": "2.1.35", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3144,13 +3144,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/module-details-from-path": { "version": "1.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/msgpack-lite": { "version": "0.1.26", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3165,7 +3165,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/nanoid": { "version": "5.0.7", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -3183,13 +3183,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/node-addon-api": { "version": "6.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/node-gyp-build": { "version": "3.9.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -3200,7 +3200,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/one-time": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3209,7 +3209,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/opentracing": { "version": "0.14.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -3218,7 +3218,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/p-limit": { "version": "3.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3233,19 +3233,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/path-to-regexp": { "version": "0.1.11", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/pprof-format": { "version": "2.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/process": { "version": "0.11.10", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3254,7 +3254,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/protobufjs": { "version": "7.4.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "BSD-3-Clause", @@ -3278,13 +3278,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/proxy-from-env": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/readable-stream": { "version": "3.6.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3298,7 +3298,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/retry": { "version": "0.13.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3307,7 +3307,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/safe-buffer": { "version": "5.2.1", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -3327,7 +3327,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/safe-stable-stringify": { "version": "2.5.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3336,7 +3336,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/semver": { "version": "7.6.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", "bin": { @@ -3348,7 +3348,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/serialize-error": { "version": "11.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3363,7 +3363,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/shell-quote": { "version": "1.8.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "funding": { @@ -3372,7 +3372,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/simple-swizzle": { "version": "0.2.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3381,7 +3381,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/source-map": { "version": "0.7.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -3390,7 +3390,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/stack-trace": { "version": "0.0.10", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3399,7 +3399,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/string_decoder": { "version": "1.3.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3408,7 +3408,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/string-byte-length": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3417,7 +3417,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/string-byte-slice": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3426,19 +3426,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/text-hex": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/tlhunter-sorted-set": { "version": "0.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/triple-beam": { "version": "1.4.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3447,7 +3447,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/truncate-json": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3461,7 +3461,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/type-fest": { "version": "2.19.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -3473,19 +3473,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/undici-types": { "version": "6.19.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/util-deprecate": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/winston": { "version": "3.13.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3507,7 +3507,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/winston-transport": { "version": "4.8.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3521,7 +3521,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/winston-transport/node_modules/readable-stream": { "version": "4.5.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3537,7 +3537,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/winston/node_modules/is-stream": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3549,7 +3549,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/yocto-queue": { "version": "0.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3561,7 +3561,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/@nangohq/utils/node_modules/zod": { "version": "3.23.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "funding": { @@ -3570,7 +3570,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/buffer-writer": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3579,13 +3579,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/colorette": { "version": "2.0.19", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/commander": { "version": "10.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3594,7 +3594,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/debug": { "version": "4.3.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3611,7 +3611,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/escalade": { "version": "3.2.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3620,7 +3620,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/esm": { "version": "3.2.25", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3629,7 +3629,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/function-bind": { "version": "1.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "funding": { @@ -3638,7 +3638,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/get-package-type": { "version": "0.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3647,13 +3647,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/getopts": { "version": "2.3.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/hasown": { "version": "2.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3665,7 +3665,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/interpret": { "version": "2.2.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3674,7 +3674,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/is-core-module": { "version": "2.15.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3689,7 +3689,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/knex": { "version": "3.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3740,31 +3740,31 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/lodash": { "version": "4.17.21", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/ms": { "version": "2.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/packet-reader": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/path-parse": { "version": "1.0.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pg": { "version": "8.11.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3793,19 +3793,20 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pg-cloudflare": { "version": "1.1.1", - "extraneous": true, + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pg-connection-string": { "version": "2.6.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pg-int8": { "version": "1.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -3814,7 +3815,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pg-pool": { "version": "3.7.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "peerDependencies": { @@ -3823,13 +3824,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pg-protocol": { "version": "1.7.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pg-types": { "version": "2.2.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3845,7 +3846,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/pgpass": { "version": "1.0.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3854,7 +3855,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/postgres-array": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3863,7 +3864,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/postgres-bytea": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3872,7 +3873,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/postgres-date": { "version": "1.0.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3881,7 +3882,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/postgres-interval": { "version": "1.2.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3893,7 +3894,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/rechoir": { "version": "0.8.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3905,7 +3906,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/resolve": { "version": "1.22.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -3922,7 +3923,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/resolve-from": { "version": "5.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3931,7 +3932,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/split2": { "version": "4.2.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -3940,7 +3941,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3952,7 +3953,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/tarn": { "version": "3.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3961,7 +3962,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/tildify": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3970,7 +3971,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/database/node_modules/xtend": { "version": "4.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -3993,7 +3994,7 @@ "winston", "zod" ], - "extraneous": true, + "dev": true, "inBundle": true, "license": "SEE LICENSE IN LICENSE FILE IN GIT REPOSITORY", "dependencies": { @@ -4013,7 +4014,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@colors/colors": { "version": "1.6.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4022,7 +4023,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@dabh/diagnostics": { "version": "2.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4033,7 +4034,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@datadog/native-appsec": { "version": "8.0.1", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -4046,7 +4047,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@datadog/native-iast-rewriter": { "version": "2.4.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -4059,7 +4060,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@datadog/native-iast-rewriter/node_modules/node-gyp-build": { "version": "4.8.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -4070,7 +4071,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@datadog/native-iast-taint-tracking": { "version": "3.1.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -4080,7 +4081,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@datadog/native-metrics": { "version": "2.0.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -4094,7 +4095,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@datadog/pprof": { "version": "5.3.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "Apache-2.0", @@ -4111,13 +4112,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@datadog/sketches-js": { "version": "2.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@opentelemetry/api": { "version": "1.8.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -4126,7 +4127,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@opentelemetry/core": { "version": "1.27.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -4141,7 +4142,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@opentelemetry/semantic-conventions": { "version": "1.27.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -4150,31 +4151,31 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/base64": { "version": "1.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/codegen": { "version": "2.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/fetch": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "dependencies": { @@ -4184,37 +4185,37 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/float": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/inquire": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/path": { "version": "1.1.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/pool": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@protobufjs/utf8": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@types/node": { - "version": "22.8.0", - "extraneous": true, + "version": "22.9.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4223,13 +4224,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/@types/triple-beam": { "version": "1.3.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/abort-controller": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4240,8 +4241,8 @@ } }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/acorn": { - "version": "8.13.0", - "extraneous": true, + "version": "8.14.0", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -4253,7 +4254,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/acorn-import-attributes": { "version": "1.9.5", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "peerDependencies": { @@ -4262,7 +4263,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/agent-base": { "version": "7.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4274,19 +4275,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/async": { "version": "3.2.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/asynckit": { "version": "0.4.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/axios": { "version": "1.7.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4297,7 +4298,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/base64-js": { "version": "1.5.1", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -4317,7 +4318,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/buffer": { "version": "6.0.3", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -4341,13 +4342,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/cjs-module-lexer": { "version": "1.4.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/color": { "version": "3.2.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4357,7 +4358,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/color-convert": { "version": "1.9.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4366,13 +4367,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/color-name": { "version": "1.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/color-string": { "version": "1.9.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4382,7 +4383,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/colorspace": { "version": "1.1.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4392,7 +4393,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/combined-stream": { "version": "1.0.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4404,13 +4405,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/crypto-randomuuid": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/dc-polyfill": { "version": "0.1.6", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4419,7 +4420,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/dd-trace": { "version": "5.21.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "(Apache-2.0 OR BSD-3-Clause)", @@ -4460,7 +4461,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/debug": { "version": "4.3.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4477,13 +4478,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/debug/node_modules/ms": { "version": "2.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/delay": { "version": "5.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4495,7 +4496,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/delayed-stream": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4504,7 +4505,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/detect-newline": { "version": "3.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4513,19 +4514,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/enabled": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/event-lite": { "version": "0.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/event-target-shim": { "version": "5.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4534,7 +4535,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/events": { "version": "3.3.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4543,31 +4544,31 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/exponential-backoff": { "version": "3.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/fast-safe-stringify": { "version": "2.1.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/fecha": { "version": "4.2.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/fn.name": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/follow-redirects": { "version": "1.15.9", - "extraneous": true, + "dev": true, "funding": [ { "type": "individual", @@ -4587,7 +4588,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/form-data": { "version": "4.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4601,7 +4602,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/guess-json-indent": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4610,7 +4611,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/http-proxy-agent": { "version": "7.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4623,7 +4624,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/https-proxy-agent": { "version": "7.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4636,7 +4637,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/ieee754": { "version": "1.2.1", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -4656,7 +4657,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/ignore": { "version": "5.3.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4665,7 +4666,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/import-in-the-middle": { "version": "1.11.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -4677,31 +4678,31 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/inherits": { "version": "2.0.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/int64-buffer": { "version": "0.1.10", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/is-arrayish": { "version": "0.3.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/isarray": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -4710,7 +4711,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/jest-docblock": { "version": "29.7.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4722,7 +4723,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/koalas": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4731,24 +4732,24 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/kuler": { "version": "2.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/limiter": { "version": "1.1.5", - "extraneous": true, + "dev": true, "inBundle": true }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/lodash.sortby": { "version": "4.7.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/logform": { "version": "2.6.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4765,19 +4766,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/logform/node_modules/ms": { "version": "2.1.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/long": { "version": "5.2.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/lru-cache": { "version": "7.18.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -4786,7 +4787,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/mime-db": { "version": "1.52.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4795,7 +4796,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/mime-types": { "version": "2.1.35", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4807,13 +4808,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/module-details-from-path": { "version": "1.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/msgpack-lite": { "version": "0.1.26", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4828,7 +4829,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/nanoid": { "version": "5.0.7", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -4846,13 +4847,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/node-addon-api": { "version": "6.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/node-gyp-build": { "version": "3.9.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -4863,7 +4864,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/one-time": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4872,7 +4873,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/opentracing": { "version": "0.14.7", - "extraneous": true, + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -4881,7 +4882,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/p-limit": { "version": "3.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4896,19 +4897,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/path-to-regexp": { "version": "0.1.11", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/pprof-format": { "version": "2.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/process": { "version": "0.11.10", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4917,7 +4918,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/protobufjs": { "version": "7.4.0", - "extraneous": true, + "dev": true, "hasInstallScript": true, "inBundle": true, "license": "BSD-3-Clause", @@ -4941,13 +4942,13 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/proxy-from-env": { "version": "1.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/readable-stream": { "version": "3.6.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -4961,7 +4962,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/retry": { "version": "0.13.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4970,7 +4971,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/safe-buffer": { "version": "5.2.1", - "extraneous": true, + "dev": true, "funding": [ { "type": "github", @@ -4990,7 +4991,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/safe-stable-stringify": { "version": "2.5.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -4999,7 +5000,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/semver": { "version": "7.6.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "ISC", "bin": { @@ -5011,7 +5012,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/serialize-error": { "version": "11.0.3", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -5026,7 +5027,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/shell-quote": { "version": "1.8.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "funding": { @@ -5035,7 +5036,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/simple-swizzle": { "version": "0.2.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -5044,7 +5045,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/source-map": { "version": "0.7.4", - "extraneous": true, + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -5053,7 +5054,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/stack-trace": { "version": "0.0.10", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -5062,7 +5063,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/string_decoder": { "version": "1.3.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -5071,7 +5072,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/string-byte-length": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -5080,7 +5081,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/string-byte-slice": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -5089,19 +5090,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/text-hex": { "version": "1.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/tlhunter-sorted-set": { "version": "0.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/triple-beam": { "version": "1.4.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -5110,7 +5111,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/truncate-json": { "version": "3.0.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -5124,7 +5125,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/type-fest": { "version": "2.19.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -5136,19 +5137,19 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/undici-types": { "version": "6.19.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/util-deprecate": { "version": "1.0.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/winston": { "version": "3.13.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -5170,7 +5171,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/winston-transport": { "version": "4.8.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -5184,7 +5185,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/winston-transport/node_modules/readable-stream": { "version": "4.5.2", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -5200,7 +5201,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/winston/node_modules/is-stream": { "version": "2.0.1", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -5212,7 +5213,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/yocto-queue": { "version": "0.1.0", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -5224,7 +5225,7 @@ }, "node_modules/@nangohq/shared/node_modules/@nangohq/utils/node_modules/zod": { "version": "3.23.8", - "extraneous": true, + "dev": true, "inBundle": true, "license": "MIT", "funding": { @@ -12024,17 +12025,17 @@ } }, "node_modules/nango": { - "version": "0.42.21", - "resolved": "https://registry.npmjs.org/nango/-/nango-0.42.21.tgz", - "integrity": "sha512-yXzGnEt3SLA/2Ge6peSXb9od2IPTTiu5aEwSnggUFQhIY2aSM7wHZYpKSmCa5UXXz0eFkHh81JKdLY2Yifdiaw==", + "version": "0.42.22", + "resolved": "https://registry.npmjs.org/nango/-/nango-0.42.22.tgz", + "integrity": "sha512-1LvJSgfEPFrx6fHILeFue+c6XgQGxnPnIHf2yIsE1nAmyCG43KMVXvJzfn/YvAoqwKMWMvtrv4NUr82foBPCcw==", "dev": true, "license": "SEE LICENSE IN LICENSE FILE IN GIT REPOSITORY", "dependencies": { "@babel/parser": "^7.22.5", "@babel/traverse": "^7.22.5", "@babel/types": "^7.22.5", - "@nangohq/nango-yaml": "^0.42.21", - "@nangohq/shared": "^0.42.21", + "@nangohq/nango-yaml": "0.42.22", + "@nangohq/shared": "^0.42.22", "@swc/core": "^1.5.25", "ajv": "^8.12.0", "ajv-errors": "^3.0.0", diff --git a/package.json b/package.json index 476b34fd..bded8202 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "husky": "8.0.3", "js-yaml": "4.1.0", "lint-staged": "15.2.9", - "nango": "^0.42.21", + "nango": "^0.42.22", "onchange": "7.1.0", "ts-to-zod": "^3.9.1", "tsx": "^4.19.0",