From 0a720e235aab32cb3c29dce1809fd359ec42d340 Mon Sep 17 00:00:00 2001 From: Martin Zanoni Date: Wed, 21 Oct 2026 10:05:53 +0200 Subject: [PATCH 1/2] feat: add OAuth support to integrations --- .github/workflows/unit-testing.yml | 8 ++++++++ packages/integrations/src/dataAccessor.ts | 10 ++++++---- packages/integrations/src/integrator.ts | 10 ++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.github/workflows/unit-testing.yml b/.github/workflows/unit-testing.yml index ad0150c..3c8f420 100644 --- a/.github/workflows/unit-testing.yml +++ b/.github/workflows/unit-testing.yml @@ -62,8 +62,16 @@ jobs: uses: actions/setup-node@v7 with: node-version: ${{ env.node-version }} + - run: npm ci + working-directory: ./packages/client + name: Install client dependencies + - run: npm run build && npm run build:types + working-directory: ./packages/client + name: Build local client - run: npm ci name: Install dependencies + - run: npm install --no-save --package-lock=false ../client + name: Install local client - run: npm run build name: Build - run: npm test diff --git a/packages/integrations/src/dataAccessor.ts b/packages/integrations/src/dataAccessor.ts index a1425d7..3985961 100644 --- a/packages/integrations/src/dataAccessor.ts +++ b/packages/integrations/src/dataAccessor.ts @@ -1,12 +1,14 @@ -import { RelewiseClient, RelewiseClientOptions, RelewiseRequestOptions, UserQuery, UserDetailsCollectionResponse } from '@relewise/client'; +import { RelewiseClient, RelewiseClientOptions, RelewiseOAuthClientOptions, OAuthClientCredentials, RelewiseRequestOptions, UserQuery, UserDetailsCollectionResponse } from '@relewise/client'; export class DataAccessor extends RelewiseClient { - constructor(protected readonly datasetId: string, protected readonly apiKey: string, options?: RelewiseClientOptions) { - super(datasetId, apiKey, options); + constructor(datasetId: string, apiKey: string, options?: RelewiseClientOptions); + constructor(datasetId: string, credentials: OAuthClientCredentials, options: RelewiseOAuthClientOptions); + constructor(datasetId: string, credentials: string | OAuthClientCredentials, options?: RelewiseClientOptions) { + super(datasetId, credentials as string, options); } public async queryUsers(request: UserQuery, options?: RelewiseRequestOptions): Promise { return this.request('UserQuery', request, options); } -} \ No newline at end of file +} diff --git a/packages/integrations/src/integrator.ts b/packages/integrations/src/integrator.ts index 92ab9d9..a13e5fa 100644 --- a/packages/integrations/src/integrator.ts +++ b/packages/integrations/src/integrator.ts @@ -1,11 +1,13 @@ -import { RelewiseClient, RelewiseClientOptions, ProductUpdate, RelewiseRequestOptions, TrackProductUpdateRequest, ProductAdministrativeAction, TrackProductAdministrativeActionRequest, Trackable, SearchResponseCollection, BatchedTrackingRequest, ProductCategoryUpdate, TrackProductCategoryUpdateRequest, TrackProductCategoryAdministrativeActionRequest, ProductCategoryAdministrativeAction, ContentCategoryAdministrativeAction, ContentCategoryUpdate, TrackContentCategoryAdministrativeActionRequest, TrackContentCategoryUpdateRequest, ContentUpdate, TrackContentUpdateRequest, ContentAdministrativeAction, TrackContentAdministrativeActionRequest, BrandUpdate, BrandAdministrativeAction, TrackBrandAdministrativeActionRequest, TrackBrandUpdateRequest, CompanyUpdate, TrackCompanyUpdateRequest, CompanyAdministrativeAction, TrackCompanyAdministrativeActionRequest } from '@relewise/client'; +import { RelewiseClient, RelewiseClientOptions, RelewiseOAuthClientOptions, OAuthClientCredentials, ProductUpdate, RelewiseRequestOptions, TrackProductUpdateRequest, ProductAdministrativeAction, TrackProductAdministrativeActionRequest, Trackable, SearchResponseCollection, BatchedTrackingRequest, ProductCategoryUpdate, TrackProductCategoryUpdateRequest, TrackProductCategoryAdministrativeActionRequest, ProductCategoryAdministrativeAction, ContentCategoryAdministrativeAction, ContentCategoryUpdate, TrackContentCategoryAdministrativeActionRequest, TrackContentCategoryUpdateRequest, ContentUpdate, TrackContentUpdateRequest, ContentAdministrativeAction, TrackContentAdministrativeActionRequest, BrandUpdate, BrandAdministrativeAction, TrackBrandAdministrativeActionRequest, TrackBrandUpdateRequest, CompanyUpdate, TrackCompanyUpdateRequest, CompanyAdministrativeAction, TrackCompanyAdministrativeActionRequest } from '@relewise/client'; export class Integrator extends RelewiseClient { public batchSize: number = 1_000; - constructor(protected readonly datasetId: string, protected readonly apiKey: string, options?: RelewiseClientOptions) { - super(datasetId, apiKey, options); + constructor(datasetId: string, apiKey: string, options?: RelewiseClientOptions); + constructor(datasetId: string, credentials: OAuthClientCredentials, options: RelewiseOAuthClientOptions); + constructor(datasetId: string, credentials: string | OAuthClientCredentials, options?: RelewiseClientOptions) { + super(datasetId, credentials as string, options); } public async updateProduct(request: ProductUpdate, options?: RelewiseRequestOptions): Promise { @@ -159,4 +161,4 @@ export class Integrator extends RelewiseClient { } return result; } -} \ No newline at end of file +} From c31eb96fddd5c735f3b1ac59f4dcee6604a37a7b Mon Sep 17 00:00:00 2001 From: Martin Zanoni Date: Wed, 21 Oct 2026 10:06:58 +0200 Subject: [PATCH 2/2] ci: defer integrations checks until client release --- .github/workflows/unit-testing.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/unit-testing.yml b/.github/workflows/unit-testing.yml index 3c8f420..ad0150c 100644 --- a/.github/workflows/unit-testing.yml +++ b/.github/workflows/unit-testing.yml @@ -62,16 +62,8 @@ jobs: uses: actions/setup-node@v7 with: node-version: ${{ env.node-version }} - - run: npm ci - working-directory: ./packages/client - name: Install client dependencies - - run: npm run build && npm run build:types - working-directory: ./packages/client - name: Build local client - run: npm ci name: Install dependencies - - run: npm install --no-save --package-lock=false ../client - name: Install local client - run: npm run build name: Build - run: npm test