@usearazzo/runner 1.0.1-alpha.25 → 1.0.1-alpha.26
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 +6 -0
- package/dist/arazzo-runner.browser.js +8 -3
- package/dist/arazzo-runner.browser.min.js +1 -1
- package/package.json +4 -4
- package/src/document/ArazzoDocument.cjs +3 -2
- package/src/document/ArazzoDocument.mjs +3 -2
- package/src/registry/providers/ArazzoDocumentRegistryProvider.cjs +3 -1
- package/src/registry/providers/ArazzoDocumentRegistryProvider.mjs +3 -1
- package/src/registry/providers/OpenAPIDocumentRegistryProvider.cjs +2 -0
- package/src/registry/providers/OpenAPIDocumentRegistryProvider.mjs +2 -0
- package/types/runner.d.ts +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.0.1-alpha.26](https://github.com/usearazzo/arazzo-toolkit/compare/v1.0.1-alpha.25...v1.0.1-alpha.26) (2026-11-05)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **runner:** resolve duplicate workflow and operation ids first-wins ([#324](https://github.com/usearazzo/arazzo-toolkit/issues/324)) ([0f5072c](https://github.com/usearazzo/arazzo-toolkit/commit/0f5072c8c60f4d9b030c58f409675f0c2e677762)), closes [#322](https://github.com/usearazzo/arazzo-toolkit/issues/322)
|
|
11
|
+
|
|
6
12
|
## [1.0.1-alpha.25](https://github.com/usearazzo/arazzo-toolkit/compare/v1.0.1-alpha.24...v1.0.1-alpha.25) (2026-11-04)
|
|
7
13
|
|
|
8
14
|
### Features
|
|
@@ -10628,8 +10628,9 @@ class ArazzoDocument extends _APIDocument_ts__WEBPACK_IMPORTED_MODULE_3__["defau
|
|
|
10628
10628
|
|
|
10629
10629
|
/**
|
|
10630
10630
|
* The workflows of this document that can be addressed by `workflowId`, in
|
|
10631
|
-
* document order.
|
|
10632
|
-
*
|
|
10631
|
+
* document order. A duplicated `workflowId` is listed once, for its first
|
|
10632
|
+
* workflow. Reads this document only: source descriptions are neither loaded
|
|
10633
|
+
* nor listed.
|
|
10633
10634
|
*/
|
|
10634
10635
|
listWorkflows() {
|
|
10635
10636
|
return [...this.workflowIndex].map(([workflowId, jsonPointer]) => {
|
|
@@ -16345,7 +16346,8 @@ class ArazzoDocumentRegistryProvider extends _DocumentRegistryProvider_ts__WEBPA
|
|
|
16345
16346
|
* A source description's canonical URI is resolved here too — against the
|
|
16346
16347
|
* document's base URI, into the exact form the document registry keys on —
|
|
16347
16348
|
* so every consumer works with a ready-to-use, non-relative URI. The first
|
|
16348
|
-
* element of a duplicated source description name wins
|
|
16349
|
+
* element of a duplicated source description name wins, and so does the
|
|
16350
|
+
* first workflow of a duplicated workflowId.
|
|
16349
16351
|
*/
|
|
16350
16352
|
#buildIndexes(uri, parseResult) {
|
|
16351
16353
|
const workflowIndex = new _document_ArazzoWorkflowIndex_ts__WEBPACK_IMPORTED_MODULE_13__["default"]();
|
|
@@ -16357,6 +16359,7 @@ class ArazzoDocumentRegistryProvider extends _DocumentRegistryProvider_ts__WEBPA
|
|
|
16357
16359
|
const workflowId = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(workflow.workflowId);
|
|
16358
16360
|
if (typeof workflowId !== 'string') return path.skip();
|
|
16359
16361
|
if (workflowId === '') return path.skip();
|
|
16362
|
+
if (workflowIndex.has(workflowId)) return path.skip();
|
|
16360
16363
|
const workflowPointer = path.formatPath('jsonpointer');
|
|
16361
16364
|
workflowIndex.set(workflowId, workflowPointer);
|
|
16362
16365
|
|
|
@@ -16503,6 +16506,7 @@ const providerOptionsOverride = {
|
|
|
16503
16506
|
* Provides OpenAPIDocument instances for the DocumentRegistry.
|
|
16504
16507
|
*
|
|
16505
16508
|
* Parses, dereferences, and builds an OperationIndex for OpenAPI documents.
|
|
16509
|
+
* The first operation of a duplicated operationId wins.
|
|
16506
16510
|
* @public
|
|
16507
16511
|
*/
|
|
16508
16512
|
class OpenAPIDocumentRegistryProvider extends _DocumentRegistryProvider_ts__WEBPACK_IMPORTED_MODULE_11__["default"] {
|
|
@@ -16554,6 +16558,7 @@ class OpenAPIDocumentRegistryProvider extends _DocumentRegistryProvider_ts__WEBP
|
|
|
16554
16558
|
const operationId = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(operation.operationId);
|
|
16555
16559
|
if (typeof operationId !== 'string') return path.skip();
|
|
16556
16560
|
if (operationId === '') return path.skip();
|
|
16561
|
+
if (index.has(operationId)) return path.skip();
|
|
16557
16562
|
index.set(operationId, path.formatPath('jsonpointer'));
|
|
16558
16563
|
path.skip();
|
|
16559
16564
|
}
|