diff --git a/.earthlyignore b/.earthlyignore deleted file mode 100644 index e3b7c5ad38..0000000000 --- a/.earthlyignore +++ /dev/null @@ -1,55 +0,0 @@ -vendor -.idea -*.num -dist/ -autocomplete.* -coverage.* -completions -.idea -openapi/build/generate.json-e -openapi/build/generate.json.bak -coverage.out -dist -vendor -.gitpod/_output -.garden -go.work -go.work.sum -worktrees - -**/*.out -**/*.out -**/*.test -**/*.stats - -.direnv -.cache -.env - - -# Earthly -.tmp-earthly-out - -# Ignore SDKS -sdks -.DS_Store - -docs/node_modules -docs/.docusaurus -docs/build - -# Components -agent -auth -gateway -ledger -operator -orchestration -payments -search -stargate -wallets -webhooks - -# Operator tooling -components/operator/bin \ No newline at end of file diff --git a/.envrc b/.envrc new file mode 100644 index 0000000000..e52f52dead --- /dev/null +++ b/.envrc @@ -0,0 +1,3 @@ +source_env_if_exists ".envrc.local" +use flake . --impure +dotenv_if_exists ".env" diff --git a/.github/actions/env/action.yml b/.github/actions/env/action.yml deleted file mode 100644 index 1e1ec6f051..0000000000 --- a/.github/actions/env/action.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Setup Env -description: Setup Env for Linux x64 -runs: - using: composite - steps: - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: "Put back the git branch into git (Earthly uses it for tagging)" - shell: bash - run: | - branch="" - if [ -n "$GITHUB_HEAD_REF" ]; then - branch="$GITHUB_HEAD_REF" - else - branch="${GITHUB_REF##*/}" - fi - git checkout -b "$branch" || true - diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 9bf048e577..93a0834269 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -2,32 +2,33 @@ name: Release on: push: tags: - - 'v*.*.*' + - "v*.*.*" permissions: contents: write jobs: - OpenAPI: + Release: runs-on: "ubuntu-latest" steps: - - uses: earthly/actions-setup@v1 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - version: "latest" - - uses: 'actions/checkout@v4' + - uses: "actions/checkout@v4" with: fetch-depth: 0 - - name: Setup Env - uses: ./.github/actions/env - - name: Generate OpenAPI final specification - run: > - earthly +build-final-spec --version=${{github.ref_name}} + - uses: cachix/install-nix-action@v31 + - name: Build OpenAPI spec and events + run: nix develop --impure --command just build ${{github.ref_name}} + env: + SPEAKEASY_API_KEY: ${{ secrets.SPEAKEASY_API_KEY }} - name: Create Release run: gh release create ${{github.ref_name}} --generate-notes env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Add the OpenAPI file to the release assets - run: > + run: | gh release upload ${{github.ref_name}} ./releases/build/generate.json#openapi.json + gh release upload ${{github.ref_name}} ./events/generated/all.json#events.json + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Publish OpenAPI to Speakeasy Registry + run: nix develop --impure --command speakeasy run -s all --registry-tags ${{github.ref_name}},LATEST_RELEASE env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + SPEAKEASY_API_KEY: ${{ secrets.SPEAKEASY_API_KEY }} diff --git a/.gitignore b/.gitignore index c37041316e..20103b5f51 100644 --- a/.gitignore +++ b/.gitignore @@ -27,10 +27,10 @@ worktrees .env -# Earthly -.tmp-earthly-out +# Downloaded OpenAPI specs +components/ .DS_Store -openapi/node_modules +node_modules/ .kubeconfig diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock new file mode 100644 index 0000000000..83876cf562 --- /dev/null +++ b/.speakeasy/workflow.lock @@ -0,0 +1,41 @@ +speakeasyVersion: 1.768.2 +sources: + stacks-source: + sourceNamespace: stacks-source + sourceRevisionDigest: sha256:45c10ea1febd1e251f079e49a7b0517f74e6b8b5416e12daf850cd551347688a + sourceBlobDigest: sha256:c4a8e0d72bb2f338b2195495b4cd51647e3cbb8f4bf161a3b8370eb33e2511be + tags: + - latest + - SDK_VERSION +targets: {} +workflow: + workflowVersion: 1.0.0 + speakeasyVersion: latest + sources: + stacks-source: + inputs: + - location: ./components/auth.openapi.yaml + modelNamespace: auth + - location: ./components/gateway.openapi.yaml + modelNamespace: gateway + - location: ./components/ledger.openapi.yaml + modelNamespace: ledger + - location: ./components/payments.openapi.yaml + modelNamespace: payments + - location: ./components/search.openapi.yaml + modelNamespace: search + - location: ./components/webhooks.openapi.yaml + modelNamespace: webhooks + - location: ./components/wallets.openapi.yaml + modelNamespace: wallets + - location: ./components/orchestration.openapi.yaml + modelNamespace: orchestration + - location: ./components/reconciliation.openapi.yaml + modelNamespace: reconciliation + - location: ./releases/base.yaml + overlays: + - location: ./releases/overlays/shared.overlay.yaml + output: ./releases/build/generate.json + registry: + location: registry.speakeasyapi.dev/formance/formance/stacks-source + targets: {} diff --git a/.speakeasy/workflow.yaml b/.speakeasy/workflow.yaml new file mode 100644 index 0000000000..1be3f38d05 --- /dev/null +++ b/.speakeasy/workflow.yaml @@ -0,0 +1,30 @@ +workflowVersion: 1.0.0 +speakeasyVersion: latest +sources: + stacks-source: + inputs: + - location: ./components/auth.openapi.yaml + modelNamespace: auth + - location: ./components/gateway.openapi.yaml + modelNamespace: gateway + - location: ./components/ledger.openapi.yaml + modelNamespace: ledger + - location: ./components/payments.openapi.yaml + modelNamespace: payments + - location: ./components/search.openapi.yaml + modelNamespace: search + - location: ./components/webhooks.openapi.yaml + modelNamespace: webhooks + - location: ./components/wallets.openapi.yaml + modelNamespace: wallets + - location: ./components/orchestration.openapi.yaml + modelNamespace: orchestration + - location: ./components/reconciliation.openapi.yaml + modelNamespace: reconciliation + - location: ./releases/base.yaml + overlays: + - location: ./releases/overlays/shared.overlay.yaml + output: ./releases/build/generate.json + registry: + location: registry.speakeasyapi.dev/formance/formance/stacks-source +targets: {} diff --git a/Earthfile b/Earthfile deleted file mode 100644 index d523e9d006..0000000000 --- a/Earthfile +++ /dev/null @@ -1,59 +0,0 @@ -VERSION 0.8 -PROJECT FormanceHQ/stack - -IMPORT github.com/formancehq/earthly:tags/v0.15.0 AS core -IMPORT github.com/formancehq/ledger:v2.2.45 AS ledger -IMPORT github.com/formancehq/payments:v3.0.15 AS payments -IMPORT github.com/formancehq/wallets:v2.1.5 AS wallets -IMPORT github.com/formancehq/webhooks:v2.1.0 AS webhooks -IMPORT github.com/formancehq/auth:v2.1.1 AS auth -IMPORT github.com/formancehq/search:v2.1.0 AS search -IMPORT github.com/formancehq/stargate:v2.1.0 AS stargate -IMPORT github.com/formancehq/flows:v2.1.0 AS orchestration -IMPORT github.com/formancehq/reconciliation:v2.1.0 AS reconciliation -IMPORT github.com/formancehq/gateway:v2.1.0 AS gateway - -sources: - FROM core+base-image - ARG --required LOCATION - COPY ${LOCATION} out - SAVE ARTIFACT out - -build-final-spec: - FROM core+base-image - RUN apk update && apk add yarn nodejs npm jq - WORKDIR /src/releases - COPY releases/package.* . - RUN npm install - - WORKDIR /src/releases - COPY releases/base.yaml . - COPY releases/openapi-overlay.json . - COPY releases/openapi-merge.json . - RUN mkdir ./build - - COPY (ledger+openapi/openapi.yaml) /src/components/ledger/ - COPY (payments+openapi/openapi.yaml) /src/components/payments/ - COPY (gateway+openapi/openapi.yaml) /src/ee/gateway/ - COPY (auth+openapi/openapi.yaml) /src/ee/auth/ - COPY (search+openapi/openapi.yaml) /src/ee/search/ - COPY (webhooks+openapi/openapi.yaml) /src/ee/webhooks/ - COPY (wallets+openapi/openapi.yaml) /src/ee/wallets/ - COPY (reconciliation+openapi/openapi.yaml) /src/ee/reconciliation/ - COPY (orchestration+openapi/openapi.yaml) /src/ee/orchestration/ - - RUN npm run build - RUN jq -s '.[0] * .[1]' build/generate.json openapi-overlay.json > build/latest.json - ARG version=v0.0.0 - IF [ "$version" = "v0.0.0" ] - RUN sed -i 's/SDK_VERSION/v0.0.0/g' build/latest.json - SAVE ARTIFACT build/latest.json AS LOCAL releases/build/latest.json - ELSE - RUN sed -i 's/SDK_VERSION/'$version'/g' build/latest.json - SAVE ARTIFACT build/latest.json AS LOCAL releases/build/generate.json - END - SAVE ARTIFACT build/latest.json - -pre-commit: # Generate the final spec and run all the pre-commit hooks - LOCALLY - BUILD +build-final-spec diff --git a/Justfile b/Justfile new file mode 100644 index 0000000000..1d8732514e --- /dev/null +++ b/Justfile @@ -0,0 +1,59 @@ +# Component versions +LEDGER_VERSION := "v2.4.3" +PAYMENTS_VERSION := "v3.2.0" +WALLETS_VERSION := "v2.1.5" +WEBHOOKS_VERSION := "v2.2.0" +AUTH_VERSION := "v2.4.3" +SEARCH_VERSION := "v2.1.0" +ORCHESTRATION_VERSION := "v2.4.1" +RECONCILIATION_VERSION := "v2.2.2" +GATEWAY_VERSION := "v2.2.0" + +# Download all component OpenAPI specs from GitHub releases +download-specs: + mkdir -p components + wget -q https://github.com/formancehq/ledger/releases/download/{{LEDGER_VERSION}}/openapi.yaml -O components/ledger.openapi.yaml + wget -q https://github.com/formancehq/payments/releases/download/{{PAYMENTS_VERSION}}/openapi.yaml -O components/payments.openapi.yaml + wget -q https://github.com/formancehq/gateway/releases/download/{{GATEWAY_VERSION}}/openapi.yaml -O components/gateway.openapi.yaml + wget -q https://github.com/formancehq/auth/releases/download/{{AUTH_VERSION}}/openapi.yaml -O components/auth.openapi.yaml + wget -q https://github.com/formancehq/search/releases/download/{{SEARCH_VERSION}}/openapi.yaml -O components/search.openapi.yaml + wget -q https://github.com/formancehq/webhooks/releases/download/{{WEBHOOKS_VERSION}}/openapi.yaml -O components/webhooks.openapi.yaml + wget -q https://github.com/formancehq/wallets/releases/download/{{WALLETS_VERSION}}/openapi.yaml -O components/wallets.openapi.yaml + wget -q https://github.com/formancehq/reconciliation/releases/download/{{RECONCILIATION_VERSION}}/openapi.yaml -O components/reconciliation.openapi.yaml + wget -q https://github.com/formancehq/flows/releases/download/{{ORCHESTRATION_VERSION}}/openapi.yaml -O components/orchestration.openapi.yaml + +# Prepend API path prefix to each component spec +prepend-paths: download-specs + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/auth" + .key) | from_entries)' components/auth.openapi.yaml + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/ledger" + .key) | from_entries)' components/ledger.openapi.yaml + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/payments" + .key) | from_entries)' components/payments.openapi.yaml + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/search" + .key) | from_entries)' components/search.openapi.yaml + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/webhooks" + .key) | from_entries)' components/webhooks.openapi.yaml + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/wallets" + .key) | from_entries)' components/wallets.openapi.yaml + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/orchestration" + .key) | from_entries)' components/orchestration.openapi.yaml + yq -i '.paths |= (to_entries | map(select(.key == "/*").key = "/api/reconciliation" + .key) | from_entries)' components/reconciliation.openapi.yaml + +# Strip component-level servers blocks so only base.yaml servers survive the merge +strip-servers: prepend-paths + for f in components/*.openapi.yaml; do yq -i 'del(.servers)' "$f"; done + +# Build the merged OpenAPI spec using Speakeasy +build-openapi version="v0.0.0": strip-servers + mkdir -p releases/build + speakeasy run -s all + cd releases && sed -i'' -e 's/SDK_VERSION/{{version}}/g' build/generate.json + +# Generate event schemas +generate-events: + cd events && npm install + cd events && node index.js + +# Build everything (OpenAPI spec + events) +build version="v0.0.0": (build-openapi version) generate-events + +# Publish OpenAPI spec to Speakeasy Registry +publish-speakeasy version: prepend-paths + speakeasy run -s all --registry-tags {{version}},LATEST_RELEASE + +# Pre-commit: build spec and generate events +pre-commit: (build-openapi) generate-events diff --git a/README.md b/README.md index 0e41e16c0b..0bf90f3f20 100644 --- a/README.md +++ b/README.md @@ -35,36 +35,6 @@ fctl ui [1] https://docs.formance.com/guides/newSandbox -## 💻 Getting started locally - -### Requirements -1. Make sure docker is installed on your machine. -2. Ensure your docker daemon has at least 5GB uf usable RAM available. Otherwise you will run into random crashes. -3. Make sure Docker Compose is installed and available (it should be the case if you have chosen to install Docker via Docker Desktop); and -4. Make sure Git is also installed on your machine. - - -### Run the app -To start using Formance Stack, run the following commands in a shell: - -``` -# Get the code -git clone https://github.com/formancehq/stack.git - -# Go to the cloned stack directory -cd stack - -# Start the stack containers -docker compose up -``` - -The Stack's API is exposed at http://localhost/api. - -You can run : -```` -curl http://localhost/api/ledger/_info -```` - ## ☁️ Cloud Native Deployment The Formance Stack is distributed as a collection of binaries, with optional packaging as Docker images and configuration support through command line options and environment variables. The recommended, standard way to deploy the collection of services is to a Kubernetes cluster through our Formance official Helm charts, which repository is available at [helm.formance.com](https://helm.formance.com/). diff --git a/libs/events/.golangci.yml b/events/.golangci.yml similarity index 100% rename from libs/events/.golangci.yml rename to events/.golangci.yml diff --git a/libs/events/README.md b/events/README.md similarity index 100% rename from libs/events/README.md rename to events/README.md diff --git a/libs/events/base.yaml b/events/base.yaml similarity index 100% rename from libs/events/base.yaml rename to events/base.yaml diff --git a/libs/events/events.go b/events/events.go similarity index 100% rename from libs/events/events.go rename to events/events.go diff --git a/events/generated/all.json b/events/generated/all.json new file mode 100644 index 0000000000..9960d34daa --- /dev/null +++ b/events/generated/all.json @@ -0,0 +1,2749 @@ +{ + "ledger": { + "v1.0.0": { + "COMMITTED_TRANSACTIONS": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "ledger": { + "type": "string" + }, + "transactions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "postings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "amount": { + "type": "number" + }, + "asset": { + "type": "string" + } + }, + "required": [ + "source", + "destination", + "amount", + "asset" + ] + } + }, + "reference": { + "type": "string" + }, + "metadata": { + "type": "object", + "properties": {}, + "required": [] + }, + "txid": { + "type": "number" + }, + "timestamp": { + "type": "string" + } + }, + "required": [ + "postings", + "reference", + "metadata", + "txid", + "timestamp" + ] + } + } + }, + "required": [ + "ledger", + "transactions" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "REVERTED_TRANSACTION": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "ledger": { + "type": "string" + }, + "revertedTransaction": { + "type": "object", + "properties": { + "postings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "amount": { + "type": "number" + }, + "asset": { + "type": "string" + } + }, + "required": [ + "source", + "destination", + "amount", + "asset" + ] + } + }, + "reference": { + "type": "string" + }, + "metadata": { + "type": "object", + "properties": {}, + "required": [] + }, + "txid": { + "type": "number" + }, + "timestamp": { + "type": "string" + } + }, + "required": [ + "postings", + "reference", + "metadata", + "txid", + "timestamp" + ] + }, + "revertTransaction": { + "type": "object", + "properties": { + "postings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "amount": { + "type": "number" + }, + "asset": { + "type": "string" + } + }, + "required": [ + "source", + "destination", + "amount", + "asset" + ] + } + }, + "reference": { + "type": "string" + }, + "metadata": { + "type": "object", + "properties": {}, + "required": [] + }, + "txid": { + "type": "number" + }, + "timestamp": { + "type": "string" + } + }, + "required": [ + "postings", + "reference", + "metadata", + "txid", + "timestamp" + ] + } + }, + "required": [ + "ledger", + "revertedTransaction", + "revertTransaction" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_METADATA": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "ledger": { + "type": "string" + }, + "targetType": { + "type": "string" + }, + "targetId": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + } + }, + "required": [ + "ledger", + "targetType", + "targetId", + "metadata" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + } + }, + "v2.0.0": { + "COMMITTED_TRANSACTIONS": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "ledger": { + "type": "string" + }, + "transactions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "postings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "amount": { + "type": "number" + }, + "asset": { + "type": "string" + } + }, + "required": [ + "source", + "destination", + "amount", + "asset" + ] + } + }, + "reference": { + "type": "string" + }, + "metadata": { + "type": "object", + "properties": {}, + "required": [] + }, + "id": { + "type": "number" + }, + "timestamp": { + "type": "string" + }, + "reverted": { + "type": "boolean" + } + }, + "required": [ + "postings", + "metadata", + "id", + "timestamp", + "reverted" + ] + } + } + }, + "required": [ + "ledger", + "transactions" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "DELETED_METADATA": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "ledger": { + "type": "string" + }, + "targetType": { + "type": "string" + }, + "targetId": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "required": [ + "ledger", + "targetType", + "targetId", + "key" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "REVERTED_TRANSACTION": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "ledger": { + "type": "string" + }, + "revertedTransaction": { + "type": "object", + "properties": { + "postings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "amount": { + "type": "number" + }, + "asset": { + "type": "string" + } + }, + "required": [ + "source", + "destination", + "amount", + "asset" + ] + } + }, + "reference": { + "type": "string" + }, + "metadata": { + "type": "object", + "properties": {}, + "required": [] + }, + "id": { + "type": "number" + }, + "timestamp": { + "type": "string" + }, + "reverted": { + "type": "boolean" + } + }, + "required": [ + "postings", + "metadata", + "id", + "timestamp", + "reverted" + ] + }, + "revertTransaction": { + "type": "object", + "properties": { + "postings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "amount": { + "type": "number" + }, + "asset": { + "type": "string" + } + }, + "required": [ + "source", + "destination", + "amount", + "asset" + ] + } + }, + "reference": { + "type": "string" + }, + "metadata": { + "type": "object", + "properties": {}, + "required": [] + }, + "id": { + "type": "number" + }, + "timestamp": { + "type": "string" + } + }, + "required": [ + "postings", + "metadata", + "id", + "timestamp" + ] + } + }, + "required": [ + "ledger", + "revertedTransaction", + "revertTransaction" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_METADATA": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "ledger": { + "type": "string" + }, + "targetType": { + "type": "string" + }, + "targetId": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": {} + } + }, + "required": [ + "ledger", + "targetType", + "targetId", + "metadata" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + } + } + }, + "orchestration": { + "v2.0.0": { + "FAILED_TRIGGER": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "triggerID": { + "type": "string", + "minLength": 1 + }, + "error": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "id", + "triggerID", + "error" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "FAILED_WORKFLOW": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "instanceID": { + "type": "string", + "minLength": 1 + }, + "error": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "id", + "instanceID", + "error" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "FAILED_WORKFLOW_STAGE": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "instanceID": { + "type": "string", + "minLength": 1 + }, + "number": { + "type": "integer", + "minLength": 1 + }, + "error": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "id", + "instanceID", + "number", + "error" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "STARTED_WORKFLOW": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "instanceID": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "id", + "instanceID" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "STARTED_WORKFLOW_STAGE": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "instanceID": { + "type": "string", + "minLength": 1 + }, + "number": { + "type": "integer", + "minLength": 1 + } + }, + "required": [ + "id", + "instanceID", + "number" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SUCCEEDED_TRIGGER": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "triggerID": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "id", + "triggerID", + "workflowInstanceID" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SUCCEEDED_WORKFLOW": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "instanceID": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "id", + "instanceID" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SUCCEEDED_WORKFLOW_STAGE": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "instanceID": { + "type": "string", + "minLength": 1 + }, + "number": { + "type": "integer", + "minLength": 1 + } + }, + "required": [ + "id", + "instanceID", + "number" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + } + } + }, + "payments": { + "v0.0.0": { + "CONNECTOR_RESET": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "properties": { + "createdAt": { + "type": "string" + }, + "connector": { + "type": "string" + } + }, + "required": [ + "createdAt", + "connector" + ] + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_ACCOUNT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "reference", + "createdAt", + "provider", + "defaultAsset", + "accountName", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "provider": { + "type": "string" + }, + "defaultAsset": { + "type": "string" + }, + "accountName": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "UNKNOWN", + "INTERNAL", + "EXTERNAL" + ] + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_BALANCE": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "accountID", + "createdAt", + "asset", + "balance" + ], + "properties": { + "accountID": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "asset": { + "type": "string" + }, + "balance": { + "type": "number", + "format": "bigint" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_PAYMENT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "reference", + "createdAt", + "provider", + "type", + "status", + "scheme", + "asset", + "amount", + "initialAmount" + ], + "properties": { + "id": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "provider": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "PAY-IN", + "PAYOUT", + "TRANSFER", + "OTHER" + ] + }, + "status": { + "type": "string" + }, + "scheme": { + "type": "string", + "enum": [ + "unknown", + "other", + "visa", + "mastercard", + "amex", + "diners", + "discover", + "jcb", + "unionpay", + "alipay", + "cup", + "sepa debit", + "sepa credit", + "sepa", + "apple pay", + "google pay", + "doku", + "dragonpay", + "maestro", + "molpay", + "a2a", + "ach debit", + "ach", + "rtp" + ] + }, + "asset": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "bigint" + }, + "initialAmount": { + "type": "number", + "format": "bigint" + }, + "sourceAccountId": { + "type": "string" + }, + "destinationAccountId": { + "type": "string" + }, + "links": { + "type": [ + "array", + "null" + ], + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + } + } + }, + "rawData": { + "type": "object" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + } + }, + "v2.0.0": { + "CONNECTOR_RESET": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "createdAt", + "connectorID" + ], + "properties": { + "createdAt": { + "type": "string" + }, + "connectorID": { + "type": "string" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "DELETED_POOL": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "createdAt" + ], + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "DELETED_TRANSFER_INITIATION": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "createdAt" + ], + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_ACCOUNT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "reference", + "createdAt", + "connectorId", + "provider", + "defaultAsset", + "accountName", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "connectorId": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "defaultAsset": { + "type": "string" + }, + "accountName": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "UNKNOWN", + "INTERNAL", + "EXTERNAL" + ] + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_BALANCE": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "accountID", + "connectorId", + "createdAt", + "asset", + "balance" + ], + "properties": { + "accountID": { + "type": "string" + }, + "connectorId": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "asset": { + "type": "string" + }, + "balance": { + "type": "number", + "format": "bigint" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_BANK_ACCOUNT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "createdAt", + "name", + "country" + ], + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "country": { + "type": "string" + }, + "accountNumber": { + "type": "string" + }, + "iban": { + "type": "string" + }, + "swiftBicCode": { + "type": "string" + }, + "adjustments": { + "type": [ + "array", + "null" + ], + "items": { + "type": "object", + "required": [ + "id", + "createdAt", + "accountID", + "connectorID", + "provider" + ], + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "accountID": { + "type": "string" + }, + "connectorID": { + "type": "string" + }, + "provider": { + "type": "string" + } + } + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_PAYMENT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "reference", + "createdAt", + "connectorId", + "provider", + "type", + "status", + "scheme", + "asset", + "amount", + "initialAmount" + ], + "properties": { + "id": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "connectorId": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "PAY-IN", + "PAYOUT", + "TRANSFER", + "OTHER" + ] + }, + "status": { + "type": "string" + }, + "scheme": { + "type": "string", + "enum": [ + "unknown", + "other", + "visa", + "mastercard", + "amex", + "diners", + "discover", + "jcb", + "unionpay", + "alipay", + "cup", + "sepa debit", + "sepa credit", + "sepa", + "apple pay", + "google pay", + "doku", + "dragonpay", + "maestro", + "molpay", + "a2a", + "ach debit", + "ach", + "rtp" + ] + }, + "asset": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "bigint" + }, + "initialAmount": { + "type": "number", + "format": "bigint" + }, + "sourceAccountId": { + "type": "string" + }, + "destinationAccountId": { + "type": "string" + }, + "links": { + "type": [ + "array", + "null" + ], + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + } + } + }, + "rawData": { + "type": "object" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_POOL": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "name", + "createdAt", + "accountIDs" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "accountIDs": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_TRANSFER_INITIATION": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "createdAt", + "scheduledAt", + "connectorId", + "provider", + "description", + "type", + "destinationAccountId", + "amount", + "asset", + "attempts", + "status", + "error" + ], + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "scheduledAt": { + "type": "string", + "format": "date-time" + }, + "connectorId": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "TRANSFER", + "PAYOUT" + ] + }, + "sourceAccountId": { + "type": "string" + }, + "destinationAccountId": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "bigint" + }, + "asset": { + "type": "string" + }, + "attempts": { + "type": "number" + }, + "status": { + "type": "string", + "enum": [ + "WAITING_FOR_VALIDATION", + "PROCESSING", + "PROCESSED", + "FAILED", + "REJECTED", + "VALIDATED", + "ASK_RETRIED", + "ASK_REVERSED", + "REVERSE_PROCESSING", + "REVERSE_FAILED", + "PARTIALLY_REVERSED", + "REVERSED" + ] + }, + "error": { + "type": "string" + }, + "relatedPayments": { + "type": [ + "array", + "null" + ], + "items": { + "type": "object", + "required": [ + "transferInitiationId", + "paymentId", + "createdAt", + "status", + "error" + ], + "properties": { + "transferInitiationId": { + "type": "string" + }, + "paymentId": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "error": { + "type": "string" + } + } + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + } + }, + "v3.0.0": { + "CONNECTOR_RESET": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "createdAt", + "connectorID" + ], + "properties": { + "createdAt": { + "type": "string" + }, + "connectorID": { + "type": "string" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "DELETED_POOL": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "createdAt" + ], + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_ACCOUNT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "provider", + "connectorID", + "createdAt", + "reference", + "type" + ], + "properties": { + "id": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "connectorID": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "reference": { + "type": "string" + }, + "type": { + "type": "string" + }, + "rawData": { + "type": "object" + }, + "defaultAsset": { + "type": "string" + }, + "name": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_BALANCE": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "accountID", + "connectorID", + "provider", + "createdAt", + "lastUpdatedAt", + "asset", + "balance" + ], + "properties": { + "accountID": { + "type": "string" + }, + "connectorID": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "lastUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "asset": { + "type": "string" + }, + "balance": { + "type": "number", + "format": "bigint" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_BANK_ACCOUNT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "createdAt", + "name" + ], + "properties": { + "id": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "country": { + "type": "string" + }, + "accountNumber": { + "type": "string" + }, + "iban": { + "type": "string" + }, + "swiftBicCode": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "relatedAccounts": { + "type": [ + "array", + "null" + ], + "items": { + "type": "object", + "required": [ + "createdAt", + "accountID", + "connectorID", + "provider" + ], + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "accountID": { + "type": "string" + }, + "connectorID": { + "type": "string" + }, + "provider": { + "type": "string" + } + } + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_PAYMENT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "connectorID", + "provider", + "reference", + "createdAt", + "type", + "status", + "scheme", + "asset", + "amount", + "initialAmount" + ], + "properties": { + "id": { + "type": "string" + }, + "connectorID": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "status": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "asset": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "bigint" + }, + "initialAmount": { + "type": "number", + "format": "bigint" + }, + "sourceAccountID": { + "type": "string" + }, + "destinationAccountID": { + "type": "string" + }, + "links": { + "type": [ + "array", + "null" + ], + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "uri": { + "type": "string" + } + } + } + }, + "rawData": { + "type": "object" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_PAYMENT_INITIATION": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "connectorID", + "provider", + "reference", + "createdAt", + "scheduledAt", + "description", + "type", + "amount", + "asset" + ], + "properties": { + "id": { + "type": "string" + }, + "connectorID": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "scheduledAt": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "bigint" + }, + "asset": { + "type": "string" + }, + "sourceAccountID": { + "type": "string" + }, + "destinationAccountID": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_PAYMENT_INITIATION_ADJUSTMENT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "paymentInitiationID", + "status" + ], + "properties": { + "id": { + "type": "string" + }, + "paymentInitiationID": { + "type": "string" + }, + "status": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "bigint" + }, + "asset": { + "type": "string" + }, + "error": { + "type": "object" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_PAYMENT_INITIATION_RELATED_PAYMENT": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "paymentInitiationID", + "paymentID" + ], + "properties": { + "paymentInitiationID": { + "type": "string" + }, + "paymentID": { + "type": "string" + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + }, + "SAVED_POOL": { + "type": "object", + "properties": { + "app": { + "type": "string" + }, + "version": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + }, + "ledger": { + "type": "string" + }, + "payload": { + "type": "object", + "required": [ + "id", + "name", + "createdAt", + "accountIDs" + ], + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "accountIDs": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "date", + "app", + "version", + "type", + "payload" + ] + } + } + } +} \ No newline at end of file diff --git a/libs/events/generated/ledger/v1.0.0/COMMITTED_TRANSACTIONS.json b/events/generated/ledger/v1.0.0/COMMITTED_TRANSACTIONS.json similarity index 100% rename from libs/events/generated/ledger/v1.0.0/COMMITTED_TRANSACTIONS.json rename to events/generated/ledger/v1.0.0/COMMITTED_TRANSACTIONS.json diff --git a/libs/events/generated/ledger/v1.0.0/REVERTED_TRANSACTION.json b/events/generated/ledger/v1.0.0/REVERTED_TRANSACTION.json similarity index 100% rename from libs/events/generated/ledger/v1.0.0/REVERTED_TRANSACTION.json rename to events/generated/ledger/v1.0.0/REVERTED_TRANSACTION.json diff --git a/libs/events/generated/ledger/v1.0.0/SAVED_METADATA.json b/events/generated/ledger/v1.0.0/SAVED_METADATA.json similarity index 100% rename from libs/events/generated/ledger/v1.0.0/SAVED_METADATA.json rename to events/generated/ledger/v1.0.0/SAVED_METADATA.json diff --git a/libs/events/generated/ledger/v2.0.0/COMMITTED_TRANSACTIONS.json b/events/generated/ledger/v2.0.0/COMMITTED_TRANSACTIONS.json similarity index 100% rename from libs/events/generated/ledger/v2.0.0/COMMITTED_TRANSACTIONS.json rename to events/generated/ledger/v2.0.0/COMMITTED_TRANSACTIONS.json diff --git a/libs/events/generated/ledger/v2.0.0/DELETED_METADATA.json b/events/generated/ledger/v2.0.0/DELETED_METADATA.json similarity index 100% rename from libs/events/generated/ledger/v2.0.0/DELETED_METADATA.json rename to events/generated/ledger/v2.0.0/DELETED_METADATA.json diff --git a/libs/events/generated/ledger/v2.0.0/REVERTED_TRANSACTION.json b/events/generated/ledger/v2.0.0/REVERTED_TRANSACTION.json similarity index 100% rename from libs/events/generated/ledger/v2.0.0/REVERTED_TRANSACTION.json rename to events/generated/ledger/v2.0.0/REVERTED_TRANSACTION.json diff --git a/libs/events/generated/ledger/v2.0.0/SAVED_METADATA.json b/events/generated/ledger/v2.0.0/SAVED_METADATA.json similarity index 100% rename from libs/events/generated/ledger/v2.0.0/SAVED_METADATA.json rename to events/generated/ledger/v2.0.0/SAVED_METADATA.json diff --git a/libs/events/generated/orchestration/v2.0.0/FAILED_TRIGGER.json b/events/generated/orchestration/v2.0.0/FAILED_TRIGGER.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/FAILED_TRIGGER.json rename to events/generated/orchestration/v2.0.0/FAILED_TRIGGER.json diff --git a/libs/events/generated/orchestration/v2.0.0/FAILED_WORKFLOW.json b/events/generated/orchestration/v2.0.0/FAILED_WORKFLOW.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/FAILED_WORKFLOW.json rename to events/generated/orchestration/v2.0.0/FAILED_WORKFLOW.json diff --git a/libs/events/generated/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.json b/events/generated/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.json rename to events/generated/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.json diff --git a/libs/events/generated/orchestration/v2.0.0/STARTED_WORKFLOW.json b/events/generated/orchestration/v2.0.0/STARTED_WORKFLOW.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/STARTED_WORKFLOW.json rename to events/generated/orchestration/v2.0.0/STARTED_WORKFLOW.json diff --git a/libs/events/generated/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.json b/events/generated/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.json rename to events/generated/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.json diff --git a/libs/events/generated/orchestration/v2.0.0/SUCCEEDED_TRIGGER.json b/events/generated/orchestration/v2.0.0/SUCCEEDED_TRIGGER.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/SUCCEEDED_TRIGGER.json rename to events/generated/orchestration/v2.0.0/SUCCEEDED_TRIGGER.json diff --git a/libs/events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.json b/events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.json rename to events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.json diff --git a/libs/events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.json b/events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.json similarity index 100% rename from libs/events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.json rename to events/generated/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.json diff --git a/libs/events/generated/payments/v0.0.0/CONNECTOR_RESET.json b/events/generated/payments/v0.0.0/CONNECTOR_RESET.json similarity index 100% rename from libs/events/generated/payments/v0.0.0/CONNECTOR_RESET.json rename to events/generated/payments/v0.0.0/CONNECTOR_RESET.json diff --git a/libs/events/generated/payments/v0.0.0/SAVED_ACCOUNT.json b/events/generated/payments/v0.0.0/SAVED_ACCOUNT.json similarity index 100% rename from libs/events/generated/payments/v0.0.0/SAVED_ACCOUNT.json rename to events/generated/payments/v0.0.0/SAVED_ACCOUNT.json diff --git a/libs/events/generated/payments/v0.0.0/SAVED_BALANCE.json b/events/generated/payments/v0.0.0/SAVED_BALANCE.json similarity index 100% rename from libs/events/generated/payments/v0.0.0/SAVED_BALANCE.json rename to events/generated/payments/v0.0.0/SAVED_BALANCE.json diff --git a/libs/events/generated/payments/v0.0.0/SAVED_PAYMENT.json b/events/generated/payments/v0.0.0/SAVED_PAYMENT.json similarity index 100% rename from libs/events/generated/payments/v0.0.0/SAVED_PAYMENT.json rename to events/generated/payments/v0.0.0/SAVED_PAYMENT.json diff --git a/libs/events/generated/payments/v2.0.0/CONNECTOR_RESET.json b/events/generated/payments/v2.0.0/CONNECTOR_RESET.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/CONNECTOR_RESET.json rename to events/generated/payments/v2.0.0/CONNECTOR_RESET.json diff --git a/libs/events/generated/payments/v2.0.0/DELETED_POOL.json b/events/generated/payments/v2.0.0/DELETED_POOL.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/DELETED_POOL.json rename to events/generated/payments/v2.0.0/DELETED_POOL.json diff --git a/libs/events/generated/payments/v2.0.0/DELETED_TRANSFER_INITIATION.json b/events/generated/payments/v2.0.0/DELETED_TRANSFER_INITIATION.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/DELETED_TRANSFER_INITIATION.json rename to events/generated/payments/v2.0.0/DELETED_TRANSFER_INITIATION.json diff --git a/libs/events/generated/payments/v2.0.0/SAVED_ACCOUNT.json b/events/generated/payments/v2.0.0/SAVED_ACCOUNT.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/SAVED_ACCOUNT.json rename to events/generated/payments/v2.0.0/SAVED_ACCOUNT.json diff --git a/libs/events/generated/payments/v2.0.0/SAVED_BALANCE.json b/events/generated/payments/v2.0.0/SAVED_BALANCE.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/SAVED_BALANCE.json rename to events/generated/payments/v2.0.0/SAVED_BALANCE.json diff --git a/libs/events/generated/payments/v2.0.0/SAVED_BANK_ACCOUNT.json b/events/generated/payments/v2.0.0/SAVED_BANK_ACCOUNT.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/SAVED_BANK_ACCOUNT.json rename to events/generated/payments/v2.0.0/SAVED_BANK_ACCOUNT.json diff --git a/libs/events/generated/payments/v2.0.0/SAVED_PAYMENT.json b/events/generated/payments/v2.0.0/SAVED_PAYMENT.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/SAVED_PAYMENT.json rename to events/generated/payments/v2.0.0/SAVED_PAYMENT.json diff --git a/libs/events/generated/payments/v2.0.0/SAVED_POOL.json b/events/generated/payments/v2.0.0/SAVED_POOL.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/SAVED_POOL.json rename to events/generated/payments/v2.0.0/SAVED_POOL.json diff --git a/libs/events/generated/payments/v2.0.0/SAVED_TRANSFER_INITIATION.json b/events/generated/payments/v2.0.0/SAVED_TRANSFER_INITIATION.json similarity index 100% rename from libs/events/generated/payments/v2.0.0/SAVED_TRANSFER_INITIATION.json rename to events/generated/payments/v2.0.0/SAVED_TRANSFER_INITIATION.json diff --git a/libs/events/generated/payments/v3.0.0/CONNECTOR_RESET.json b/events/generated/payments/v3.0.0/CONNECTOR_RESET.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/CONNECTOR_RESET.json rename to events/generated/payments/v3.0.0/CONNECTOR_RESET.json diff --git a/libs/events/generated/payments/v3.0.0/DELETED_POOL.json b/events/generated/payments/v3.0.0/DELETED_POOL.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/DELETED_POOL.json rename to events/generated/payments/v3.0.0/DELETED_POOL.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_ACCOUNT.json b/events/generated/payments/v3.0.0/SAVED_ACCOUNT.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_ACCOUNT.json rename to events/generated/payments/v3.0.0/SAVED_ACCOUNT.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_BALANCE.json b/events/generated/payments/v3.0.0/SAVED_BALANCE.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_BALANCE.json rename to events/generated/payments/v3.0.0/SAVED_BALANCE.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_BANK_ACCOUNT.json b/events/generated/payments/v3.0.0/SAVED_BANK_ACCOUNT.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_BANK_ACCOUNT.json rename to events/generated/payments/v3.0.0/SAVED_BANK_ACCOUNT.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_PAYMENT.json b/events/generated/payments/v3.0.0/SAVED_PAYMENT.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_PAYMENT.json rename to events/generated/payments/v3.0.0/SAVED_PAYMENT.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION.json b/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION.json rename to events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.json b/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.json rename to events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.json b/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.json rename to events/generated/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.json diff --git a/libs/events/generated/payments/v3.0.0/SAVED_POOL.json b/events/generated/payments/v3.0.0/SAVED_POOL.json similarity index 100% rename from libs/events/generated/payments/v3.0.0/SAVED_POOL.json rename to events/generated/payments/v3.0.0/SAVED_POOL.json diff --git a/libs/events/go.mod b/events/go.mod similarity index 100% rename from libs/events/go.mod rename to events/go.mod diff --git a/libs/events/go.sum b/events/go.sum similarity index 100% rename from libs/events/go.sum rename to events/go.sum diff --git a/libs/events/index.js b/events/index.js similarity index 100% rename from libs/events/index.js rename to events/index.js diff --git a/libs/events/package-lock.json b/events/package-lock.json similarity index 100% rename from libs/events/package-lock.json rename to events/package-lock.json diff --git a/libs/events/package.json b/events/package.json similarity index 100% rename from libs/events/package.json rename to events/package.json diff --git a/libs/events/services/ledger/v1.0.0/COMMITTED_TRANSACTIONS.yaml b/events/services/ledger/v1.0.0/COMMITTED_TRANSACTIONS.yaml similarity index 100% rename from libs/events/services/ledger/v1.0.0/COMMITTED_TRANSACTIONS.yaml rename to events/services/ledger/v1.0.0/COMMITTED_TRANSACTIONS.yaml diff --git a/libs/events/services/ledger/v1.0.0/REVERTED_TRANSACTION.yaml b/events/services/ledger/v1.0.0/REVERTED_TRANSACTION.yaml similarity index 100% rename from libs/events/services/ledger/v1.0.0/REVERTED_TRANSACTION.yaml rename to events/services/ledger/v1.0.0/REVERTED_TRANSACTION.yaml diff --git a/libs/events/services/ledger/v1.0.0/SAVED_METADATA.yaml b/events/services/ledger/v1.0.0/SAVED_METADATA.yaml similarity index 100% rename from libs/events/services/ledger/v1.0.0/SAVED_METADATA.yaml rename to events/services/ledger/v1.0.0/SAVED_METADATA.yaml diff --git a/libs/events/services/ledger/v2.0.0/COMMITTED_TRANSACTIONS.yaml b/events/services/ledger/v2.0.0/COMMITTED_TRANSACTIONS.yaml similarity index 100% rename from libs/events/services/ledger/v2.0.0/COMMITTED_TRANSACTIONS.yaml rename to events/services/ledger/v2.0.0/COMMITTED_TRANSACTIONS.yaml diff --git a/libs/events/services/ledger/v2.0.0/DELETED_METADATA.yaml b/events/services/ledger/v2.0.0/DELETED_METADATA.yaml similarity index 100% rename from libs/events/services/ledger/v2.0.0/DELETED_METADATA.yaml rename to events/services/ledger/v2.0.0/DELETED_METADATA.yaml diff --git a/libs/events/services/ledger/v2.0.0/REVERTED_TRANSACTION.yaml b/events/services/ledger/v2.0.0/REVERTED_TRANSACTION.yaml similarity index 100% rename from libs/events/services/ledger/v2.0.0/REVERTED_TRANSACTION.yaml rename to events/services/ledger/v2.0.0/REVERTED_TRANSACTION.yaml diff --git a/libs/events/services/ledger/v2.0.0/SAVED_METADATA.yaml b/events/services/ledger/v2.0.0/SAVED_METADATA.yaml similarity index 100% rename from libs/events/services/ledger/v2.0.0/SAVED_METADATA.yaml rename to events/services/ledger/v2.0.0/SAVED_METADATA.yaml diff --git a/libs/events/services/orchestration/v2.0.0/FAILED_TRIGGER.yaml b/events/services/orchestration/v2.0.0/FAILED_TRIGGER.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/FAILED_TRIGGER.yaml rename to events/services/orchestration/v2.0.0/FAILED_TRIGGER.yaml diff --git a/libs/events/services/orchestration/v2.0.0/FAILED_WORKFLOW.yaml b/events/services/orchestration/v2.0.0/FAILED_WORKFLOW.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/FAILED_WORKFLOW.yaml rename to events/services/orchestration/v2.0.0/FAILED_WORKFLOW.yaml diff --git a/libs/events/services/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.yaml b/events/services/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.yaml rename to events/services/orchestration/v2.0.0/FAILED_WORKFLOW_STAGE.yaml diff --git a/libs/events/services/orchestration/v2.0.0/STARTED_WORKFLOW.yaml b/events/services/orchestration/v2.0.0/STARTED_WORKFLOW.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/STARTED_WORKFLOW.yaml rename to events/services/orchestration/v2.0.0/STARTED_WORKFLOW.yaml diff --git a/libs/events/services/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.yaml b/events/services/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.yaml rename to events/services/orchestration/v2.0.0/STARTED_WORKFLOW_STAGE.yaml diff --git a/libs/events/services/orchestration/v2.0.0/SUCCEEDED_TRIGGER.yaml b/events/services/orchestration/v2.0.0/SUCCEEDED_TRIGGER.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/SUCCEEDED_TRIGGER.yaml rename to events/services/orchestration/v2.0.0/SUCCEEDED_TRIGGER.yaml diff --git a/libs/events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.yaml b/events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.yaml rename to events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW.yaml diff --git a/libs/events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.yaml b/events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.yaml similarity index 100% rename from libs/events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.yaml rename to events/services/orchestration/v2.0.0/SUCCEEDED_WORKFLOW_STAGE.yaml diff --git a/libs/events/services/payments/v0.0.0/CONNECTOR_RESET.yaml b/events/services/payments/v0.0.0/CONNECTOR_RESET.yaml similarity index 100% rename from libs/events/services/payments/v0.0.0/CONNECTOR_RESET.yaml rename to events/services/payments/v0.0.0/CONNECTOR_RESET.yaml diff --git a/libs/events/services/payments/v0.0.0/SAVED_ACCOUNT.yaml b/events/services/payments/v0.0.0/SAVED_ACCOUNT.yaml similarity index 100% rename from libs/events/services/payments/v0.0.0/SAVED_ACCOUNT.yaml rename to events/services/payments/v0.0.0/SAVED_ACCOUNT.yaml diff --git a/libs/events/services/payments/v0.0.0/SAVED_BALANCE.yaml b/events/services/payments/v0.0.0/SAVED_BALANCE.yaml similarity index 100% rename from libs/events/services/payments/v0.0.0/SAVED_BALANCE.yaml rename to events/services/payments/v0.0.0/SAVED_BALANCE.yaml diff --git a/libs/events/services/payments/v0.0.0/SAVED_PAYMENT.yaml b/events/services/payments/v0.0.0/SAVED_PAYMENT.yaml similarity index 100% rename from libs/events/services/payments/v0.0.0/SAVED_PAYMENT.yaml rename to events/services/payments/v0.0.0/SAVED_PAYMENT.yaml diff --git a/libs/events/services/payments/v2.0.0/CONNECTOR_RESET.yaml b/events/services/payments/v2.0.0/CONNECTOR_RESET.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/CONNECTOR_RESET.yaml rename to events/services/payments/v2.0.0/CONNECTOR_RESET.yaml diff --git a/libs/events/services/payments/v2.0.0/DELETED_POOL.yaml b/events/services/payments/v2.0.0/DELETED_POOL.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/DELETED_POOL.yaml rename to events/services/payments/v2.0.0/DELETED_POOL.yaml diff --git a/libs/events/services/payments/v2.0.0/DELETED_TRANSFER_INITIATION.yaml b/events/services/payments/v2.0.0/DELETED_TRANSFER_INITIATION.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/DELETED_TRANSFER_INITIATION.yaml rename to events/services/payments/v2.0.0/DELETED_TRANSFER_INITIATION.yaml diff --git a/libs/events/services/payments/v2.0.0/SAVED_ACCOUNT.yaml b/events/services/payments/v2.0.0/SAVED_ACCOUNT.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/SAVED_ACCOUNT.yaml rename to events/services/payments/v2.0.0/SAVED_ACCOUNT.yaml diff --git a/libs/events/services/payments/v2.0.0/SAVED_BALANCE.yaml b/events/services/payments/v2.0.0/SAVED_BALANCE.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/SAVED_BALANCE.yaml rename to events/services/payments/v2.0.0/SAVED_BALANCE.yaml diff --git a/libs/events/services/payments/v2.0.0/SAVED_BANK_ACCOUNT.yaml b/events/services/payments/v2.0.0/SAVED_BANK_ACCOUNT.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/SAVED_BANK_ACCOUNT.yaml rename to events/services/payments/v2.0.0/SAVED_BANK_ACCOUNT.yaml diff --git a/libs/events/services/payments/v2.0.0/SAVED_PAYMENT.yaml b/events/services/payments/v2.0.0/SAVED_PAYMENT.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/SAVED_PAYMENT.yaml rename to events/services/payments/v2.0.0/SAVED_PAYMENT.yaml diff --git a/libs/events/services/payments/v2.0.0/SAVED_POOL.yaml b/events/services/payments/v2.0.0/SAVED_POOL.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/SAVED_POOL.yaml rename to events/services/payments/v2.0.0/SAVED_POOL.yaml diff --git a/libs/events/services/payments/v2.0.0/SAVED_TRANSFER_INITIATION.yaml b/events/services/payments/v2.0.0/SAVED_TRANSFER_INITIATION.yaml similarity index 100% rename from libs/events/services/payments/v2.0.0/SAVED_TRANSFER_INITIATION.yaml rename to events/services/payments/v2.0.0/SAVED_TRANSFER_INITIATION.yaml diff --git a/libs/events/services/payments/v3.0.0/CONNECTOR_RESET.yaml b/events/services/payments/v3.0.0/CONNECTOR_RESET.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/CONNECTOR_RESET.yaml rename to events/services/payments/v3.0.0/CONNECTOR_RESET.yaml diff --git a/libs/events/services/payments/v3.0.0/DELETED_POOL.yaml b/events/services/payments/v3.0.0/DELETED_POOL.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/DELETED_POOL.yaml rename to events/services/payments/v3.0.0/DELETED_POOL.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_ACCOUNT.yaml b/events/services/payments/v3.0.0/SAVED_ACCOUNT.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_ACCOUNT.yaml rename to events/services/payments/v3.0.0/SAVED_ACCOUNT.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_BALANCE.yaml b/events/services/payments/v3.0.0/SAVED_BALANCE.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_BALANCE.yaml rename to events/services/payments/v3.0.0/SAVED_BALANCE.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_BANK_ACCOUNT.yaml b/events/services/payments/v3.0.0/SAVED_BANK_ACCOUNT.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_BANK_ACCOUNT.yaml rename to events/services/payments/v3.0.0/SAVED_BANK_ACCOUNT.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_PAYMENT.yaml b/events/services/payments/v3.0.0/SAVED_PAYMENT.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_PAYMENT.yaml rename to events/services/payments/v3.0.0/SAVED_PAYMENT.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION.yaml b/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION.yaml rename to events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.yaml b/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.yaml rename to events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_ADJUSTMENT.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.yaml b/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.yaml rename to events/services/payments/v3.0.0/SAVED_PAYMENT_INITIATION_RELATED_PAYMENT.yaml diff --git a/libs/events/services/payments/v3.0.0/SAVED_POOL.yaml b/events/services/payments/v3.0.0/SAVED_POOL.yaml similarity index 100% rename from libs/events/services/payments/v3.0.0/SAVED_POOL.yaml rename to events/services/payments/v3.0.0/SAVED_POOL.yaml diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000000..4ed898576d --- /dev/null +++ b/flake.lock @@ -0,0 +1,25 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1774244481, + "narHash": "sha256-4XfMXU0DjN83o6HWZoKG9PegCvKvIhNUnRUI19vzTcQ=", + "rev": "4590696c8693fea477850fe379a01544293ca4e2", + "revCount": 909850, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.909850%2Brev-4590696c8693fea477850fe379a01544293ca4e2/019d1bd2-524a-765a-8cf7-a03d7c852855/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/0.2511" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000000..a9c7e4887a --- /dev/null +++ b/flake.nix @@ -0,0 +1,81 @@ +{ + description = "Formance Stack - OpenAPI spec build and publish environment"; + + inputs = { + nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.2511"; + }; + + outputs = { self, nixpkgs }: + let + supportedSystems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + + forEachSupportedSystem = f: + nixpkgs.lib.genAttrs supportedSystems (system: + let + pkgs = import nixpkgs { inherit system; }; + in + f { pkgs = pkgs; system = system; } + ); + + speakeasyVersion = "1.759.2"; + speakeasyPlatforms = { + "x86_64-linux" = "linux_amd64"; + "aarch64-linux" = "linux_arm64"; + "x86_64-darwin" = "darwin_amd64"; + "aarch64-darwin" = "darwin_arm64"; + }; + speakeasyHashes = { + "x86_64-linux" = "9234e2e9138f03ac18f0ca034d0c5a0a7b8749ea91b16814b4a643afd680d8fd"; + "aarch64-linux" = "ba92a8c5799ed14acba94d317694ed32e35883e9439a07b28c58f7c8c0ea16f5"; + "x86_64-darwin" = "b4cfe13627e8822718b5820c68898f51b6381e604c9578650c9b0c3f40f800b0"; + "aarch64-darwin" = "dda057dbbd83bdaa47f9ccf3311e455013d957d11f45d8336b97b91ba2a56d6d"; + }; + + in + { + packages = forEachSupportedSystem ({ pkgs, system }: + { + speakeasy = pkgs.stdenv.mkDerivation { + pname = "speakeasy"; + version = speakeasyVersion; + + src = pkgs.fetchurl { + url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${speakeasyVersion}/speakeasy_${speakeasyPlatforms.${system}}.zip"; + sha256 = speakeasyHashes.${system}; + }; + + nativeBuildInputs = [ pkgs.unzip ]; + dontUnpack = true; + + installPhase = '' + mkdir -p $out/bin + unzip $src + install -m755 speakeasy $out/bin/ + ''; + + name = "speakeasy"; + }; + } + ); + + devShells = forEachSupportedSystem ({ pkgs, system }: + { + default = pkgs.mkShell { + packages = [ + pkgs.jq + pkgs.just + pkgs.nodejs_22 + pkgs.wget + pkgs.yq-go + self.packages.${system}.speakeasy + ]; + }; + } + ); + }; +} diff --git a/libs/Earthfile b/libs/Earthfile deleted file mode 100644 index 6b0b403b2f..0000000000 --- a/libs/Earthfile +++ /dev/null @@ -1,9 +0,0 @@ -VERSION 0.8 - -IMPORT github.com/formancehq/earthly:tags/v0.15.0 AS core -IMPORT .. AS stack - -run: - LOCALLY - ARG --required TARGET - BUILD ./events+$TARGET diff --git a/libs/events/Earthfile b/libs/events/Earthfile deleted file mode 100644 index c8f054a329..0000000000 --- a/libs/events/Earthfile +++ /dev/null @@ -1,45 +0,0 @@ -VERSION 0.8 - -IMPORT github.com/formancehq/earthly:tags/v0.15.0 AS core -IMPORT ../.. AS stack - -FROM core+base-image - -go-sources: - COPY events.go go.* base.yaml /src/ - COPY --dir services /src/ - WORKDIR /src - SAVE ARTIFACT /src - -tidy: - FROM core+builder-image - COPY (+go-sources/*) /src - WORKDIR /src - DO --pass-args stack+GO_TIDY - SAVE ARTIFACT go.* AS LOCAL ./ - -lint: - FROM core+builder-image - COPY (+go-sources/*) /src - WORKDIR /src - COPY --pass-args +tidy/go.* . - DO --pass-args stack+GO_LINT - SAVE ARTIFACT * AS LOCAL ./ - -generate: - RUN apk add nodejs npm - WORKDIR /src - COPY package* . - RUN npm install - RUN mkdir generated - COPY index.js base.yaml . - COPY --dir services . - RUN node index.js - SAVE ARTIFACT generated AS LOCAL ./generated - -pre-commit: - WAIT - BUILD --pass-args +tidy - END - BUILD --pass-args +lint - BUILD --pass-args +generate \ No newline at end of file diff --git a/releases/base.yaml b/releases/base.yaml index a0e2645e7b..6109ad0065 100644 --- a/releases/base.yaml +++ b/releases/base.yaml @@ -23,22 +23,21 @@ info: version: "SDK_VERSION" servers: -- url: http://localhost - description: local server -- url: https://{organization}.{environment}.formance.cloud - description: A per-organization and per-environment API - variables: - organization: - description: The organization name. Defaults to a generic organization. - default: orgID-stackID - environment: - description: The environment name. Defaults to the production environment. - default: eu.sandbox - enum: - - eu.sandbox - - sandbox - - eu-west-1 - - us-east-1 + - url: http://localhost + description: local server + - url: https://{organization}.{environment}.formance.cloud + description: A per-organization and per-environment API + variables: + organization: + description: The organization name. Defaults to a generic organization. + default: orgID-stackID + environment: + description: The environment name. Defaults to the production environment. + default: eu.sandbox + enum: + - eu.sandbox + - eu-west-1 + - us-east-1 tags: - name: ledger.v1 @@ -59,15 +58,8 @@ components: type: oauth2 flows: clientCredentials: - tokenUrl: '/api/auth/oauth/token' - refreshUrl: '/api/auth/oauth/token' - scopes: {} - NoAuthorization: - type: oauth2 - flows: - clientCredentials: - tokenUrl: '/api/auth/oauth/token' - refreshUrl: '/api/auth/oauth/token' + tokenUrl: "/api/auth/oauth/token" + refreshUrl: "/api/auth/oauth/token" scopes: {} x-tagGroups: @@ -97,4 +89,4 @@ x-tagGroups: - orchestration.v2 - name: Reconciliation tags: - - reconciliation.v1 \ No newline at end of file + - reconciliation.v1 diff --git a/releases/openapi-merge.json b/releases/openapi-merge.json deleted file mode 100644 index 5922b81dc7..0000000000 --- a/releases/openapi-merge.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "inputs": [ - { - "inputFile": "./base.yaml" - }, - { - "inputFile": "./../ee/auth/openapi.yaml", - "pathModification":{ - "prepend": "/api/auth" - }, - "dispute": { - "prefix": "auth" - } - }, - { - "inputFile": "./../ee/gateway/openapi.yaml", - "dispute": { - "prefix": "gateway" - } - }, - { - "inputFile": "./../components/ledger/openapi.yaml", - "pathModification":{ - "prepend": "/api/ledger" - }, - "dispute": { - "prefix": "ledger" - } - }, - { - "inputFile": "./../components/payments/openapi.yaml", - "pathModification":{ - "prepend": "/api/payments" - }, - "dispute": { - "prefix": "payments" - } - }, - { - "inputFile": "./../ee/search/openapi.yaml", - "pathModification":{ - "prepend": "/api/search" - }, - "dispute": { - "prefix": "search" - } - }, - { - "inputFile": "./../ee/webhooks/openapi.yaml", - "pathModification":{ - "prepend": "/api/webhooks" - }, - "operationSelection": { - "excludeTags": ["Health"] - }, - "dispute": { - "prefix": "webhooks" - } - }, - { - "inputFile": "./../ee/wallets/openapi.yaml", - "pathModification":{ - "prepend": "/api/wallets" - }, - "operationSelection": { - "excludeTags": ["Health"] - }, - "dispute": { - "prefix": "wallets" - } - }, - { - "inputFile": "./../ee/orchestration/openapi.yaml", - "pathModification":{ - "prepend": "/api/orchestration" - }, - "operationSelection": { - "excludeTags": ["Health"] - }, - "dispute": { - "prefix": "orchestration" - } - }, - { - "inputFile": "./../ee/reconciliation/openapi.yaml", - "pathModification":{ - "prepend": "/api/reconciliation" - }, - "operationSelection": { - "excludeTags": ["Health"] - }, - "dispute": { - "prefix": "reconciliation" - } - } - ], - "output": "./build/generate.json" -} diff --git a/releases/openapi-overlay.json b/releases/openapi-overlay.json deleted file mode 100644 index 02680a1f6b..0000000000 --- a/releases/openapi-overlay.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "paths": { - "x-speakeasy-errors": { - "statusCodes": ["default"] - } - } -} \ No newline at end of file diff --git a/releases/overlays/shared.overlay.yaml b/releases/overlays/shared.overlay.yaml new file mode 100644 index 0000000000..467dfeba6f --- /dev/null +++ b/releases/overlays/shared.overlay.yaml @@ -0,0 +1,48 @@ +overlay: 1.0.0 +info: + title: Shared overlay for Formance Stack OpenAPI spec + version: 0.0.1 +actions: + # Restore info.version (overwritten by last-wins merge from component specs) + - target: $.info + update: + version: SDK_VERSION + + # Remove the NoAuthorization securityScheme definition (injected by component merge) + - target: $.components.securitySchemes.NoAuthorization + remove: true + + # Remove existing security on GET /versions and replace with empty requirement + - target: $.paths['/versions'].get.security + remove: true + - target: $.paths['/versions'].get + update: + security: + - {} + + # Fix ledger_V2QueryParams.sort: replace $ref with inline definition + - target: $.components.schemas.ledger_V2QueryParams.properties.sort + update: + type: string + description: | + Sort results using a field name and order (ascending or descending). + Format: `:`, where `` is the field name and `` is either `asc` or `desc`. + example: "id:desc" + - target: $.components.schemas.ledger_V2QueryParams.properties.sort.$ref + remove: true + + # Fix Go import cycle: tag inline cursor objects with ledger namespace + # so Speakeasy keeps extracted types in the ledger package instead of operations + - target: $.components.schemas.ledger_V2ExportersCursorResponse.properties.cursor + update: + x-speakeasy-model-namespace: ledger + - target: $.components.schemas.ledger_V2PipelinesCursorResponse.properties.cursor + update: + x-speakeasy-model-namespace: ledger + + # Speakeasy error handling + - target: $.paths + update: + x-speakeasy-errors: + statusCodes: + - default diff --git a/releases/package-lock.json b/releases/package-lock.json deleted file mode 100644 index 7dcaa61467..0000000000 --- a/releases/package-lock.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "name": "openapi", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "openapi", - "version": "1.0.0", - "dependencies": { - "openapi-merge-cli": "^1.3.1" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/atlassian-openapi": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/atlassian-openapi/-/atlassian-openapi-1.0.17.tgz", - "integrity": "sha512-8aW0Xgl9mVdL9dCABSZAvCayMPyh6uVu86UzOat8Kc1qDMUtXn2OxcwDsJfm/qCtBSeZ+GE/PkFxx3ZRIp3hFg==", - "dependencies": { - "jsonpointer": "^5.0.0", - "urijs": "^1.19.10" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/openapi-merge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/openapi-merge/-/openapi-merge-1.3.2.tgz", - "integrity": "sha512-qRWBwPMiKIUrAcKW6lstMPKpFEWy32dBbP1UjHH9jlWgw++2BCqOVbsjO5Wa4H1Ll3c4cn+lyi4TinUy8iswzw==", - "dependencies": { - "atlassian-openapi": "^1.0.8", - "lodash": "^4.17.15", - "ts-is-present": "^1.1.1" - } - }, - "node_modules/openapi-merge-cli": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/openapi-merge-cli/-/openapi-merge-cli-1.3.1.tgz", - "integrity": "sha512-YGBkzuYrDc4kTMVoGrNTCI/eNCKtE5JcCGmcmkhtl0M7+hNXm4kP+n83ilZ+kCxa7/xicTj0cww/q1P4KxlQ8Q==", - "dependencies": { - "ajv": "^6.12.2", - "commander": "^5.1.0", - "es6-promise": "^4.2.8", - "isomorphic-fetch": "^3", - "js-yaml": "^3.14.0", - "openapi-merge": "^1.2.0" - }, - "bin": { - "openapi-merge-cli": "dist/cli.js" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-is-present": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ts-is-present/-/ts-is-present-1.2.2.tgz", - "integrity": "sha512-cA5MPLWGWYXvnlJb4TamUUx858HVHBsxxdy8l7jxODOLDyGYnQOllob2A2jyDghGa5iJHs2gzFNHvwGJ0ZfR8g==" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urijs": { - "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } -} diff --git a/releases/package.json b/releases/package.json deleted file mode 100644 index 32bdf639fc..0000000000 --- a/releases/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "openapi", - "version": "1.0.0", - "dependencies": { - "openapi-merge-cli": "^1.3.1" - }, - "private": true, - "scripts": { - "build": "openapi-merge-cli" - } -}