@usearazzo/runner 1.0.1-alpha.7 → 1.0.1-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## [1.0.1-alpha.9](https://github.com/usearazzo/arazzo-toolkit/compare/v1.0.1-alpha.8...v1.0.1-alpha.9) (2026-10-22)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **release:** publish serially with a longer sigstore timeout ([ea02ce2](https://github.com/usearazzo/arazzo-toolkit/commit/ea02ce2e69871b5580c86f50aacb20cf45746a04))
11
+
12
+ ## [1.0.1-alpha.8](https://github.com/usearazzo/arazzo-toolkit/compare/v1.0.1-alpha.7...v1.0.1-alpha.8) (2026-10-22)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **runner:** emit CommonJS build of vendored swagger-client ([#255](https://github.com/usearazzo/arazzo-toolkit/issues/255)) ([b4009c2](https://github.com/usearazzo/arazzo-toolkit/commit/b4009c2cda888f11c2dca9606cbc313f1150fff0)), closes [#234](https://github.com/usearazzo/arazzo-toolkit/issues/234)
17
+ - **runner:** evaluate runtime expressions in request payloads ([#227](https://github.com/usearazzo/arazzo-toolkit/issues/227)) ([38b7eb0](https://github.com/usearazzo/arazzo-toolkit/commit/38b7eb0036014994180ac35ba0e832d971f73ea1)), closes [#129](https://github.com/usearazzo/arazzo-toolkit/issues/129)
18
+ - **runner:** keep response header values as sent ([#259](https://github.com/usearazzo/arazzo-toolkit/issues/259)) ([a8f258e](https://github.com/usearazzo/arazzo-toolkit/commit/a8f258e851772b746804aa3c62a8c7ab0b2429f0)), closes [#258](https://github.com/usearazzo/arazzo-toolkit/issues/258)
19
+ - **runner:** keep SpecLynx ApiDOM external in swagger-client bundle ([#257](https://github.com/usearazzo/arazzo-toolkit/issues/257)) ([8c39d12](https://github.com/usearazzo/arazzo-toolkit/commit/8c39d12e692a896ef9038ab67b76787283844c07))
20
+
21
+ ### Features
22
+
23
+ - **runner:** export SourceDescriptionsLocatorNormalizer ([9387076](https://github.com/usearazzo/arazzo-toolkit/commit/9387076238df3f89767a8b65c92e5d59443e351d))
24
+ - **runner:** run petstore workflows e2e and publish the runner ([#233](https://github.com/usearazzo/arazzo-toolkit/issues/233)) ([aaf9cbc](https://github.com/usearazzo/arazzo-toolkit/commit/aaf9cbc50f328a99b32665fdfff6755588a20260)), closes [#79](https://github.com/usearazzo/arazzo-toolkit/issues/79)
25
+ - **runner:** treat a called workflow as its step's result ([#230](https://github.com/usearazzo/arazzo-toolkit/issues/230)) ([05d996b](https://github.com/usearazzo/arazzo-toolkit/commit/05d996b54505f33b7e652e2bc4e2ebb4d2f7e600)), closes [#228](https://github.com/usearazzo/arazzo-toolkit/issues/228)
package/README.md CHANGED
@@ -1,27 +1,37 @@
1
- # @usearazzo/runner
1
+ <h1 align="center">@usearazzo/runner</h1>
2
2
 
3
- > [!NOTE]
4
- > This package is published under the `alpha` channel: APIs may still change before 1.0.0.
3
+ <p align="center">
4
+ Runner for <a href="https://spec.openapis.org/arazzo/latest.html">Arazzo</a> workflows:
5
+ execute them step by step against the live APIs behind their <a href="https://spec.openapis.org/oas/latest.html">OpenAPI</a> source descriptions.
6
+ </p>
5
7
 
6
- `@usearazzo/runner` executes [Arazzo Specification](https://spec.openapis.org/arazzo/latest.html)
7
- workflows against live APIs described by
8
- [OpenAPI Specification](https://spec.openapis.org/oas/latest.html) source descriptions. It builds on
9
- [SpecLynx ApiDOM](https://github.com/speclynx/apidom) data models and reuses the loading,
10
- resolution, and normalization primitives shared across
11
- [`@usearazzo/parser`](https://www.npmjs.com/package/@usearazzo/parser) and
12
- [`@usearazzo/resolver`](https://www.npmjs.com/package/@usearazzo/resolver).
8
+ <p align="center">
9
+ <a href="https://www.npmjs.com/package/@usearazzo/runner"><img src="https://img.shields.io/npm/v/@usearazzo/runner.svg" alt="npm version"></a>
10
+ <a href="https://github.com/usearazzo/arazzo-toolkit/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" alt="License: Apache 2.0"></a>
11
+ </p>
13
12
 
14
- **Supported Arazzo versions:**
13
+ <p align="center">
14
+ <a href="https://usearazzo.com"><img alt="UseArazzo" width="96" src="https://usearazzo.com/assets/images/logos/usearazzo-logo.svg"></a>
15
+ </p>
15
16
 
16
- - [Arazzo 1.0.0](https://spec.openapis.org/arazzo/v1.0.0)
17
- - [Arazzo 1.0.1](https://spec.openapis.org/arazzo/v1.0.1)
18
- - [Arazzo 1.1.0](https://spec.openapis.org/arazzo/v1.1.0)
17
+ ---
19
18
 
20
- **Supported OpenAPI versions (for source descriptions):**
19
+ ## What it does
21
20
 
22
- - [OpenAPI 2.0](https://spec.openapis.org/oas/v2.0)
23
- - [OpenAPI 3.0.x](https://spec.openapis.org/oas/v3.0.4)
24
- - [OpenAPI 3.1.x](https://spec.openapis.org/oas/v3.1.2)
21
+ This package runs an Arazzo workflow step by step, sending real HTTP requests to the APIs its OpenAPI
22
+ source descriptions point at, with the control flow (`goto`, `retry`, `end`) and sub-workflows the
23
+ document decides. It builds on [SpecLynx ApiDOM](https://github.com/speclynx/apidom) data models and
24
+ reuses the loading, resolution, and normalization primitives of
25
+ [@usearazzo/parser](https://github.com/usearazzo/arazzo-toolkit/tree/main/packages/parser#readme) and
26
+ [@usearazzo/resolver](https://github.com/usearazzo/arazzo-toolkit/tree/main/packages/resolver#readme).
27
+
28
+ ## Installation
29
+
30
+ ```sh
31
+ npm install @usearazzo/runner
32
+ ```
33
+
34
+ Ships ESM and CommonJS builds with TypeScript declarations. Requires Node.js 20.10 or newer.
25
35
 
26
36
  ## Architecture
27
37
 
@@ -40,32 +50,9 @@ into four main components:
40
50
  (parameter serialization, securities, server resolution), sends it through the pluggable
41
51
  `HTTPClient` transport, and normalizes the raw response into the runner's response model.
42
52
 
43
- ```mermaid
44
- flowchart TD
45
- Registry[("DocumentRegistry<br/><i>load & cache documents</i>")]
46
-
47
- WF["WorkflowExecutor<br/>iterate steps · own state · control flow"]
48
- Step["StepExecutor<br/>run one Arazzo step"]
49
- Op["OpenAPIOperationExecutor<br/>build request · normalize response"]
50
- HTTP["HTTPClient<br/>send the built request (fetch by default)"]
51
-
52
- WF -->|"execute step"| Step
53
- Step -->|"execute OpenAPI operation"| Op
54
- Op -->|"send HTTP request"| HTTP
55
-
56
- Registry -.->|documents| WF
57
- Registry -.->|documents| Step
58
- Registry -.->|documents| Op
59
-
60
- %% brand colors: Arazzo green, OpenAPI green, neutral registry grey
61
- classDef arazzo fill:#94C83D,stroke:#6BA543,stroke-width:1px,color:#231F20;
62
- classDef openapi fill:#6BA543,stroke:#4D5A31,color:#fff;
63
- classDef neutral fill:#424143,stroke:#231F20,color:#fff;
64
-
65
- class WF,Step arazzo;
66
- class Op,HTTP openapi;
67
- class Registry neutral;
68
- ```
53
+ <p align="center">
54
+ <img alt="Runner architecture: WorkflowExecutor runs steps through StepExecutor, which runs OpenAPI operations through OpenAPIOperationExecutor and the HTTPClient; DocumentRegistry supplies documents to all three executors" src="https://raw.githubusercontent.com/usearazzo/arazzo-toolkit/main/packages/runner/assets/architecture.svg">
55
+ </p>
69
56
 
70
57
  Each layer reads run state but never mutates it. The `WorkflowExecutor` is the single writer that
71
58
  records outputs and interprets the returned control-flow action.
@@ -772,14 +759,20 @@ up, by a step's `successCriteria`. Everything else throws with a named reason: m
772
759
  unlocatable operation, an unsupported OpenAPI version), a request that cannot be built (e.g. a
773
760
  missing required parameter), and transport failures. The latter two arrive as `ClientError`.
774
761
 
775
- ## End-to-end tests
762
+ ## Supported versions
763
+
764
+ Arazzo documents:
765
+
766
+ - [Arazzo 1.0.0](https://spec.openapis.org/arazzo/v1.0.0)
767
+ - [Arazzo 1.0.1](https://spec.openapis.org/arazzo/v1.0.1)
768
+ - [Arazzo 1.1.0](https://spec.openapis.org/arazzo/v1.1.0)
769
+
770
+ OpenAPI documents, as source descriptions:
771
+
772
+ - [OpenAPI 2.0](https://spec.openapis.org/oas/v2.0)
773
+ - [OpenAPI 3.0.x](https://spec.openapis.org/oas/v3.0.4)
774
+ - [OpenAPI 3.1.x](https://spec.openapis.org/oas/v3.1.2)
776
775
 
777
- `npm run test:e2e` runs `authenticateAndOrderPet` (the toolkit's own petstore workflow) and
778
- `loginUserRetrievePet` (the Arazzo Specification's `LoginAndRetrievePets` example) over real HTTP
779
- against a live petstore. It is separate from `npm test`, which stays deterministic and makes no
780
- network calls.
776
+ ## Part of the Arazzo Toolkit
781
777
 
782
- By default the suite starts a `swaggerapi/petstore3:1.0.28` container with Docker, on a free port,
783
- and stops it afterwards, so Docker must be available. To run against an existing petstore instead,
784
- set `PETSTORE_URL` to its API base, e.g. `PETSTORE_URL=http://localhost:8080/api/v3 npm run test:e2e`;
785
- the suite then starts no container of its own.
778
+ `@usearazzo/runner` is the execution layer of the [arazzo-toolkit](https://github.com/usearazzo/arazzo-toolkit) monorepo, beside [@usearazzo/parser](https://github.com/usearazzo/arazzo-toolkit/tree/main/packages/parser#readme), [@usearazzo/resolver](https://github.com/usearazzo/arazzo-toolkit/tree/main/packages/resolver#readme), and [@usearazzo/validator](https://github.com/usearazzo/arazzo-toolkit/tree/main/packages/validator#readme). Questions and ideas go to [GitHub Discussions](https://github.com/orgs/usearazzo/discussions).
@@ -97975,7 +97975,7 @@ async function Module2(moduleArg = {}) {
97975
97975
  var ENVIRONMENT_IS_NODE = typeof process == "object" && process.versions?.node && process.type != "renderer";
97976
97976
  if (ENVIRONMENT_IS_NODE) {
97977
97977
  const { createRequire } = await Promise.resolve(/* import() */).then(() => (__webpack_require__.t(19451, 19)));
97978
- var require = createRequire("file:///home/char0n/Documents/GitHub/usearazzo/arazzo-toolkit/node_modules/web-tree-sitter/web-tree-sitter.js");
97978
+ var require = createRequire("file:///home/runner/work/arazzo-toolkit/arazzo-toolkit/node_modules/web-tree-sitter/web-tree-sitter.js");
97979
97979
  }
97980
97980
  Module.currentQueryProgressCallback = null;
97981
97981
  Module.currentProgressCallback = null;
@@ -97986,7 +97986,7 @@ async function Module2(moduleArg = {}) {
97986
97986
  var quit_ = /* @__PURE__ */ __name((status, toThrow) => {
97987
97987
  throw toThrow;
97988
97988
  }, "quit_");
97989
- var _scriptName = "file:///home/char0n/Documents/GitHub/usearazzo/arazzo-toolkit/node_modules/web-tree-sitter/web-tree-sitter.js";
97989
+ var _scriptName = "file:///home/runner/work/arazzo-toolkit/arazzo-toolkit/node_modules/web-tree-sitter/web-tree-sitter.js";
97990
97990
  var scriptDirectory = "";
97991
97991
  function locateFile(path) {
97992
97992
  if (Module["locateFile"]) {