Skip to content

Add new Adapter and Action interfaces, add new Next.js handler implementation, remove middlewares #401

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 46 commits into from
Feb 3, 2025
Merged
Changes from 1 commit
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
09ed14b
Add actions
witoszekdev Jan 28, 2025
3dc2417
Add adapter, new shared classes
witoszekdev Jan 28, 2025
e1b4a7e
Add next.js platform adapter
witoszekdev Jan 28, 2025
9ba5562
Add new implementation for next.js handlers
witoszekdev Jan 28, 2025
0d7d3c6
Replace domain validation with saleorApiUrl
witoszekdev Jan 28, 2025
d0bf8b1
Remove deprecated exports
witoszekdev Jan 28, 2025
6aa3e56
Remove deprecated exports, add missing export, fix imports
witoszekdev Jan 28, 2025
56a404d
Fix broken imports
witoszekdev Jan 28, 2025
a70c440
Remove middlewares
witoszekdev Jan 28, 2025
ab24ad3
Remove usage of Saleor-Domain header
witoszekdev Jan 28, 2025
238ed0e
Make saleorSchemaVersion required, dropping support for Saleor < 3.15
witoszekdev Jan 29, 2025
7586dc4
Make action types more strict, allow passing generic
witoszekdev Jan 29, 2025
4a3743c
Add register error codes type
witoszekdev Jan 29, 2025
5529ec6
Add register handler tests
witoszekdev Jan 29, 2025
3067970
Add more tests, fix broken jwks handling
witoszekdev Jan 29, 2025
5a3682a
Preffer http over other protocols when https is not present
witoszekdev Jan 29, 2025
d4e2a8b
Add tests for platform adapter
witoszekdev Jan 29, 2025
6354c56
Add missing export
witoszekdev Jan 29, 2025
2744e5b
Adapter middleware headers - always return undefined for missing values
witoszekdev Jan 29, 2025
07ace44
Add tests for adapter middleware
witoszekdev Jan 29, 2025
b3aac1b
Add tests for protected action validator
witoszekdev Jan 29, 2025
e959a73
Add tests for create-protected-handler
witoszekdev Jan 31, 2025
b79b8da
Remove unused code
witoszekdev Jan 31, 2025
2c0adce
Fix tests
witoszekdev Jan 31, 2025
e6e3d6a
Add method validation to manifest action
witoszekdev Jan 31, 2025
7e1a180
Fix TS error
witoszekdev Jan 31, 2025
3bca89d
Remove assertion to fix tsup build
witoszekdev Jan 31, 2025
e5c8cfe
Remove assertion to fix prettier
witoszekdev Jan 31, 2025
af80f55
Remove retes
witoszekdev Jan 31, 2025
1c66ca9
Remove deprecated webhook fields
witoszekdev Jan 31, 2025
4d9ebfe
Rewrite saleor-async-webhook tests
witoszekdev Jan 31, 2025
6f922eb
Add changesets
witoszekdev Jan 31, 2025
a3c50b2
Remove duplicated changeset
witoszekdev Jan 31, 2025
602971b
Add missing coverage
witoszekdev Feb 3, 2025
922e3e8
Add tests for re-fetching jwks
witoszekdev Feb 3, 2025
4ace1e0
Fix TS error
witoszekdev Feb 3, 2025
7e70deb
Add missing test case
witoszekdev Feb 3, 2025
f9ddb84
Make fields required on SaleorAsyncWebhook
witoszekdev Feb 3, 2025
8c2f4a5
Add more tests for sync webhook
witoszekdev Feb 3, 2025
fdeea53
Improve changeset description
witoszekdev Feb 3, 2025
418c4a2
Rename adapter middleware -> saleor request processor
witoszekdev Feb 3, 2025
d88bc88
Remove debug backwards compatibility
witoszekdev Feb 3, 2025
32a31e7
CR
witoszekdev Feb 3, 2025
1d1ff8f
Update changeset
witoszekdev Feb 3, 2025
6565ca4
Remove actions from export
witoszekdev Feb 3, 2025
2e0b09d
Remove externals export
witoszekdev Feb 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove middlewares
  • Loading branch information
witoszekdev committed Jan 28, 2025

Verified

This commit was signed with the committer’s verified signature.
witoszekdev Jonatan Witoszek
commit a70c440c449ad9f3989ff5133b796eae39358568
5 changes: 0 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -126,11 +126,6 @@
"import": "./settings-manager/index.mjs",
"require": "./settings-manager/index.js"
},
"./middleware": {
"types": "./middleware/index.d.ts",
"import": "./middleware/index.mjs",
"require": "./middleware/index.js"
},
"./urls": {
"types": "./urls.d.ts",
"import": "./urls.mjs",
8 changes: 0 additions & 8 deletions src/middleware/index.ts

This file was deleted.

27 changes: 0 additions & 27 deletions src/middleware/middleware-debug.test.ts

This file was deleted.

26 changes: 0 additions & 26 deletions src/middleware/middleware-debug.ts

This file was deleted.

44 changes: 0 additions & 44 deletions src/middleware/with-auth-token-required.test.ts

This file was deleted.

23 changes: 0 additions & 23 deletions src/middleware/with-auth-token-required.ts

This file was deleted.

62 changes: 0 additions & 62 deletions src/middleware/with-base-url.test.ts

This file was deleted.

19 changes: 0 additions & 19 deletions src/middleware/with-base-url.ts

This file was deleted.

112 changes: 0 additions & 112 deletions src/middleware/with-jwt-verified.ts

This file was deleted.

81 changes: 0 additions & 81 deletions src/middleware/with-registered-saleor-domain-header.test.ts

This file was deleted.

47 changes: 0 additions & 47 deletions src/middleware/with-registered-saleor-domain-header.ts

This file was deleted.

23 changes: 0 additions & 23 deletions src/middleware/with-saleor-app.test.ts

This file was deleted.

21 changes: 0 additions & 21 deletions src/middleware/with-saleor-app.ts

This file was deleted.

57 changes: 0 additions & 57 deletions src/middleware/with-saleor-event-match.test.ts

This file was deleted.

31 changes: 0 additions & 31 deletions src/middleware/with-saleor-event-match.ts

This file was deleted.

80 changes: 0 additions & 80 deletions src/middleware/with-webhook-signature-verified.ts

This file was deleted.

3 changes: 0 additions & 3 deletions tsup.config.ts
Original file line number Diff line number Diff line change
@@ -18,9 +18,6 @@ export default defineConfig({
"handlers/shared/index": "src/handlers/shared/index.ts",
"handlers/actions/index": "src/handlers/actions/index.ts",

// Deprecated
"middleware/index": "src/middleware/index.ts",

// Mapped exports
"handlers/next/index": "src/handlers/platforms/next/index.ts",
},

Unchanged files with check annotations Beta

/* eslint-disable max-classes-per-file */
import { APL, AuthData } from "@/APL";
import { SALEOR_API_URL_HEADER, SALEOR_DOMAIN_HEADER } from "@/const";

Check failure on line 3 in src/handlers/actions/register-action-handler.ts

GitHub Actions / lint

Module '"@/const"' has no exported member 'SALEOR_DOMAIN_HEADER'.

Check failure on line 3 in src/handlers/actions/register-action-handler.ts

GitHub Actions / build

Module '"@/const"' has no exported member 'SALEOR_DOMAIN_HEADER'.
import { createDebug } from "@/debug";
import { fetchRemoteJwks } from "@/fetch-remote-jwks";
import { getAppId } from "@/get-app-id";
private runPreChecks(): ActionHandlerResult | null {
const checksToRun = [
this.adapterMiddleware.withMethod(["POST"]),
this.adapterMiddleware.withSaleorDomainPresent(),

Check failure on line 124 in src/handlers/actions/register-action-handler.ts

GitHub Actions / lint

Property 'withSaleorDomainPresent' does not exist on type 'PlatformAdapterMiddleware<I>'. Did you mean 'withSaleorApiUrlPresent'?

Check failure on line 124 in src/handlers/actions/register-action-handler.ts

GitHub Actions / build

Property 'withSaleorDomainPresent' does not exist on type 'PlatformAdapterMiddleware<I>'. Did you mean 'withSaleorApiUrlPresent'?

Check failure on line 124 in src/handlers/actions/register-action-handler.ts

GitHub Actions / test

src/handlers/platforms/next/create-app-register-handler.test.ts > create-app-register-handler > Sets auth data for correct request

TypeError: this.adapterMiddleware.withSaleorDomainPresent is not a function ❯ RegisterActionHandler.runPreChecks src/handlers/actions/register-action-handler.ts:124:30 ❯ RegisterActionHandler.handleAction src/handlers/actions/register-action-handler.ts:139:33 ❯ src/handlers/platforms/next/create-app-register-handler.ts:38:42 ❯ src/handlers/platforms/next/create-app-register-handler.test.ts:48:11

Check failure on line 124 in src/handlers/actions/register-action-handler.ts

GitHub Actions / test

src/handlers/platforms/next/create-app-register-handler.test.ts > create-app-register-handler > Returns 403 if configured to work only for specific saleor URL and try to install on prohibited one

TypeError: this.adapterMiddleware.withSaleorDomainPresent is not a function ❯ RegisterActionHandler.runPreChecks src/handlers/actions/register-action-handler.ts:124:30 ❯ RegisterActionHandler.handleAction src/handlers/actions/register-action-handler.ts:139:33 ❯ src/handlers/platforms/next/create-app-register-handler.ts:38:42 ❯ src/handlers/platforms/next/create-app-register-handler.test.ts:85:11

Check failure on line 124 in src/handlers/actions/register-action-handler.ts

GitHub Actions / test

src/handlers/platforms/next/create-app-register-handler.test.ts > create-app-register-handler > Callback hooks > Runs callback hooks - successful saving to APL scenario

TypeError: this.adapterMiddleware.withSaleorDomainPresent is not a function ❯ RegisterActionHandler.runPreChecks src/handlers/actions/register-action-handler.ts:124:30 ❯ RegisterActionHandler.handleAction src/handlers/actions/register-action-handler.ts:139:33 ❯ src/handlers/platforms/next/create-app-register-handler.ts:38:42 ❯ src/handlers/platforms/next/create-app-register-handler.test.ts:131:13

Check failure on line 124 in src/handlers/actions/register-action-handler.ts

GitHub Actions / test

src/handlers/platforms/next/create-app-register-handler.test.ts > create-app-register-handler > Callback hooks > Runs callback hooks - failed saving to APL scenario

TypeError: this.adapterMiddleware.withSaleorDomainPresent is not a function ❯ RegisterActionHandler.runPreChecks src/handlers/actions/register-action-handler.ts:124:30 ❯ RegisterActionHandler.handleAction src/handlers/actions/register-action-handler.ts:139:33 ❯ src/handlers/platforms/next/create-app-register-handler.ts:38:42 ❯ src/handlers/platforms/next/create-app-register-handler.test.ts:195:13

Check failure on line 124 in src/handlers/actions/register-action-handler.ts

GitHub Actions / test

src/handlers/platforms/next/create-app-register-handler.test.ts > create-app-register-handler > Callback hooks > Allows to send custom error response via callback hook

TypeError: this.adapterMiddleware.withSaleorDomainPresent is not a function ❯ RegisterActionHandler.runPreChecks src/handlers/actions/register-action-handler.ts:124:30 ❯ RegisterActionHandler.handleAction src/handlers/actions/register-action-handler.ts:139:33 ❯ src/handlers/platforms/next/create-app-register-handler.ts:38:42 ❯ src/handlers/platforms/next/create-app-register-handler.test.ts:246:13
];
for (const check of checksToRun) {
const expectedAuthData: AuthData = {
token: "mock-auth-token",
domain: "https://mock-saleor-domain.saleor.cloud/",

Check failure on line 125 in src/handlers/platforms/next/create-app-register-handler.test.ts

GitHub Actions / lint

Type '{ token: string; domain: string; saleorApiUrl: string; jwks: string; appId: string; }' is not assignable to type 'AuthData'.
saleorApiUrl: "https://mock-saleor-domain.saleor.cloud/graphql/",
jwks: mockJwksValue,
appId: mockAppId,
const expectedAuthData: AuthData = {
token: "mock-auth-token",
domain: "https://mock-saleor-domain.saleor.cloud/",

Check failure on line 189 in src/handlers/platforms/next/create-app-register-handler.test.ts

GitHub Actions / lint

Type '{ token: string; domain: string; saleorApiUrl: string; jwks: string; appId: string; }' is not assignable to type 'AuthData'.
saleorApiUrl: "https://mock-saleor-domain.saleor.cloud/graphql/",
jwks: mockJwksValue,
appId: mockAppId,
payload: { data: "test_payload" },
schemaVersion: 3.19,
authData: {
domain: "example.com",

Check failure on line 69 in src/handlers/platforms/next/saleor-webhooks/saleor-async-webhook.test.ts

GitHub Actions / lint

Type '{ domain: string; token: string; jwks: string; saleorApiUrl: string; appId: string; }' is not assignable to type 'AuthData'.
token: "token",
jwks: "",
saleorApiUrl: "https://example.com/graphql/",
payload: { data: "test_payload" },
schemaVersion: 3.19,
authData: {
domain: mockApl.workingSaleorDomain,

Check failure on line 21 in src/handlers/platforms/next/saleor-webhooks/saleor-sync-webhook.test.ts

GitHub Actions / lint

Type '{ domain: string; token: string; jwks: string; saleorApiUrl: string; appId: string; }' is not assignable to type 'AuthData'.
token: mockApl.mockToken,
jwks: mockApl.mockJwks,
saleorApiUrl: mockApl.workingSaleorApiUrl,