Skip to content

Build JavaScript SDK #96

Build JavaScript SDK

Build JavaScript SDK #96

name: Build JavaScript SDK
on:
workflow_dispatch:
repository_dispatch:
types: [trigger-build]
permissions:
pull-requests: write
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: selling-partner-api-sdk
- uses: actions/checkout@v4
with:
repository: amzn/selling-partner-api-models
path: selling-partner-api-models
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install openapi generator
run: npm install -g @openapitools/openapi-generator-cli
- name: Remove old sdk files
working-directory: ./selling-partner-api-sdk/javascript
run: |
echo "Remove all files under sdk except .openapi-generator-ignore, sample-node-app, package.json, helper and readme"
find sdk -mindepth 1 -maxdepth 1 \
! -name '.openapi-generator-ignore' \
! -name 'sample-node-app' \
! -name 'package.json' \
! -name 'package-lock.json' \
! -name 'README.md' \
! -name 'helper' \
! -name 'tsconfig.json' \
-exec rm -rf {} +
- name: Create DefaultRateLimitMap.mjs file
working-directory: ./selling-partner-api-sdk/javascript
run: |
chmod +x scripts/create-rate-limit-map.sh
./scripts/create-rate-limit-map.sh
- name: Execute OpenAPI generator
working-directory: ./selling-partner-api-sdk/javascript
run: |
openapi-generator-cli generate -i ../../selling-partner-api-models/models/amazon-warehousing-and-distribution-model/awd_2024-05-09.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package awd_v2024_05_09 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/aplus-content-api-model/aplusContent_2020-11-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package apluscontent_v2020_11_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/application-integrations-api-model/appIntegrations-2024-04-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package appintegrations_v2024_04_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/application-management-api-model/application_2023-11-30.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package applications_v2023_11_30 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/catalog-items-api-model/catalogItems_2022-04-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package catalogitems_v2022_04_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/data-kiosk-api-model/dataKiosk_2023-11-15.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package datakiosk_v2023_11_15 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/easy-ship-model/easyShip_2022-03-23.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package easyship_v2022_03_23 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/fba-inbound-eligibility-api-model/fbaInbound.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package fbaeligibility_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/fba-inventory-api-model/fbaInventory.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package fbainventory_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/feeds-api-model/feeds_2021-06-30.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package feeds_v2021_06_30 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/finances-api-model/financesV0.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package finances_v0 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/finances-api-model/transfers_2024-06-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package transfers_v2024_06_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/finances-api-model/finances_2024-06-19.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package finances_2024_06_19 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/fulfillment-inbound-api-model/fulfillmentInboundV0.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package fulfillmentinbound_v0 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/fulfillment-inbound-api-model/fulfillmentInbound_2024-03-20.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package fulfillmentinbound_v2024_03_20 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/fulfillment-outbound-api-model/fulfillmentOutbound_2020-07-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package fulfillmentoutbound_v2020_07_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/invoices-api-model/InvoicesApiModel_2024-06-19.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package invoices_v2024_06_19 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/listings-items-api-model/listingsItems_2021-08-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package listingsitems_v2021_08_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/listings-restrictions-api-model/listingsRestrictions_2021-08-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package listingsrestrictions_v2021_08_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/merchant-fulfillment-api-model/merchantFulfillmentV0.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package merchantfulfillment_v0 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/messaging-api-model/messaging.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package messaging_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/notifications-api-model/notifications.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package notifications_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/orders-api-model/ordersV0.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package orders_v0 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/product-fees-api-model/productFeesV0.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package productfees_v0 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/product-pricing-api-model/productPricingV0.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package pricing_v0 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/product-pricing-api-model/productPricing_2022-05-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package pricing_v2022_05_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/product-type-definitions-api-model/definitionsProductTypes_2020-09-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package producttypedefinitions_v2020_09_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/replenishment-api-model/replenishment-2022-11-07.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package replenishment_v2022_11_07 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/reports-api-model/reports_2021-06-30.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package reports_v2021_06_30 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/sales-api-model/sales.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package sales_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/sellers-api-model/sellers.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package sellers_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/services-api-model/services.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package services_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/shipment-invoicing-api-model/shipmentInvoicingV0.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package invoicing_v0 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/shipping-api-model/shippingV2.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package shipping_v2 --skip-validate-spec && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/solicitations-api-model/solicitations.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package solicitations_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/supply-sources-api-model/supplySources_2020-07-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package supplysources_v2020_07_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/tokens-api-model/tokens_2021-03-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package tokens_v2021_03_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/uploads-api-model/uploads_2020-11-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package uploads_v2020_11_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-direct-fulfillment-inventory-api-model/vendorDirectFulfillmentInventoryV1.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendordfinventory_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-direct-fulfillment-orders-api-model/vendorDirectFulfillmentOrders_2021-12-28.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendordforders_v2021_12_28 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-direct-fulfillment-payments-api-model/vendorDirectFulfillmentPaymentsV1.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendordfpayments_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-direct-fulfillment-shipping-api-model/vendorDirectFulfillmentShipping_2021-12-28.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendordfshipping_v2021_12_28 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-direct-fulfillment-transactions-api-model/vendorDirectFulfillmentTransactions_2021-12-28.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendordftransactions_v2021_12_28 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-invoices-api-model/vendorInvoices.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendorinvoices_v1 --skip-validate-spec && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-orders-api-model/vendorOrders.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendororders_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-shipments-api-model/vendorShipments.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendorshipments_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vendor-transaction-status-api-model/vendorTransactionStatus.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vendortransactionstatus_v1 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/vehicles-api-model/vehicles_2024-11-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package vehicles_v2024_11_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/seller-wallet-api-model/sellerWallet_2024-03-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package sellerWallet_2024_03_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/customer-feedback-api-model/customerFeedback_2024-06-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package customerFeedback_2024_06_01 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/external-fulfillment/externalFulfillmentShipments_2024-09-11.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package externalfulfillmentshipments_v2024_09_11 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/external-fulfillment/externalFulfillmentInventory_2024-09-11.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package externalfulfillmentinventory_v2024_09_11 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/external-fulfillment/externalFulfillmentReturns_2024-09-11.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package externalfulfillmentreturns_v2024_09_11 && \
openapi-generator-cli generate -i ../../selling-partner-api-models/models/orders-api-model/orders_2026-01-01.json -g javascript -t ../templates/javascript -o sdk -c config/config.json --model-package model --api-package api --invoker-package orders_v2026_01_01
- name: Generate consolidated index.js file
working-directory: ./selling-partner-api-sdk/javascript
run: |
chmod +x scripts/generate-consolidated-index.sh
./scripts/generate-consolidated-index.sh
- name: Run linter
working-directory: ./selling-partner-api-sdk/javascript/sdk
continue-on-error: true
run: npm install standard --global && standard "src/**/*.js" --fix
- name: Create TypeScript type files
working-directory: ./selling-partner-api-sdk/javascript/sdk
run: npm install typescript --global && npx tsc
- name: Create PR
uses: peter-evans/create-pull-request@v7
with:
commit-message: Update JavaScript SDK
title: 'Update JavaScript SDK'
body: |
Update JavaScript SDK with latest changes from upstream.
branch: feature/update-javascript-sdk
assignees: Tong8s
path: ./selling-partner-api-sdk
token: ${{ secrets.MAFGE_PAT }}