@enricai/barnacle 1.12.23 → 1.12.25
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/dist/scraper/browser-click-expr.d.ts +88 -0
- package/dist/scraper/browser-click-expr.d.ts.map +1 -1
- package/dist/scraper/browser-click-expr.js +133 -0
- package/dist/scraper/browser-click-expr.js.map +1 -1
- package/dist/scraper/flow-runner.d.ts +13 -0
- package/dist/scraper/flow-runner.d.ts.map +1 -1
- package/dist/scraper/flow-runner.js +328 -37
- package/dist/scraper/flow-runner.js.map +1 -1
- package/dist/scripts/recon-generate.d.ts +23 -0
- package/dist/scripts/recon-generate.d.ts.map +1 -1
- package/dist/scripts/recon-generate.js +180 -25
- package/dist/scripts/recon-generate.js.map +1 -1
- package/package.json +1 -1
|
@@ -887,6 +887,29 @@ export declare function resolveFoldPlan<T extends {
|
|
|
887
887
|
capture: Capture;
|
|
888
888
|
isMultipart: boolean;
|
|
889
889
|
}>(actions: readonly T[], foldReturnSpec?: FoldReturnSpec | null): FoldPlan[];
|
|
890
|
+
/**
|
|
891
|
+
* The fold plans `emitContractTs` actually threads into its single-primary
|
|
892
|
+
* hot path — a multi-step flow owns its own per-item fold loop (via
|
|
893
|
+
* `emitMultiStepExecuteHttp`) instead, so this resolves to none there.
|
|
894
|
+
* Exported and shared verbatim by `emitContractTs` and the "no fold plan
|
|
895
|
+
* resolved" diagnostic in `main()` so the two can never independently decide
|
|
896
|
+
* whether a declared foldReturn actually made it into the emitted output —
|
|
897
|
+
* any future exclusion added to the single-primary hot path must be added
|
|
898
|
+
* here too, and both call sites pick it up automatically.
|
|
899
|
+
*
|
|
900
|
+
* `resolveFoldPlan` itself can surface several plans for the SAME
|
|
901
|
+
* primaryArrayPath/endpoint — one per pagination/re-filter occurrence of the
|
|
902
|
+
* primary that independently threads a drill-down — because
|
|
903
|
+
* `selectEffectiveResponseBody`/`mergeFoldedPrimaryBodies` need every one of
|
|
904
|
+
* them to merge shapes for schema inference. Emission has no such need, so
|
|
905
|
+
* this collapses those down to the single freshest occurrence (highest
|
|
906
|
+
* `primaryStepIndex`) per distinct primaryArrayPath/endpoint before
|
|
907
|
+
* returning, keeping `resolveFoldPlan`'s own multi-plan output untouched.
|
|
908
|
+
*/
|
|
909
|
+
export declare function resolveApplicableFoldPlans<T extends {
|
|
910
|
+
capture: Capture;
|
|
911
|
+
isMultipart: boolean;
|
|
912
|
+
}>(actions: readonly T[], foldReturnSpec: FoldReturnSpec | null, multiStepBody: string | undefined): FoldPlan[];
|
|
890
913
|
/**
|
|
891
914
|
* Same review-checklist items the pre-move contract.ts header used to embed,
|
|
892
915
|
* now surfaced on recon-generate's own stdout instead of the shipped file —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recon-generate.d.ts","sourceRoot":"","sources":["../../src/scripts/recon-generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAwBH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,KAAK,OAAO,EAMb,MAAM,wBAAwB,CAAC;AAsJhC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,EACnB,UAAU,GAAE,eAAkC,EAC9C,gBAAgB,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAA4B,GACvE,MAAM,GAAG,IAAI,CAkCf;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EAAE,EAC1B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBrB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,MAAM,GAAG,IAAI,CAkBf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,aAAa,EAAE,EAC1B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5C;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAY3C;AAqDD,UAAU,SAAS;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;uDAKmD;IACnD,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C;;;;;;;;;eASW;IACX,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;+DAM2D;IAC3D,gCAAgC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC,CAAC;CAC9F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAQtF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,KAAK,SAAI,EACT,MAAM,SAAK,EACX,IAAI,GAAE,SAAc,EACpB,IAAI,GAAE,SAAS,MAAM,EAAO,GAC3B,MAAM,CAkFR;AAoBD;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;0CACsC;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAuMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,SAAS,OAAO,EAAE,GAC1B,SAAS,yBAAyB,EAAE,CAStC;AAyED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAMjG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAMhG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAC9F,gBAAgB,EAAE,OAAO,EACzB,WAAW,EAAE,SAAS,CAAC,EAAE,EACzB,kBAAkB,EAAE,OAAO,EAC3B,cAAc,GAAE,cAAc,GAAG,IAAW,GAC3C,OAAO,CA8BT;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAe3E;AA4GD,UAAU,uBAAuB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B,EAAE,MAAM,EAAE,CAAC;CACxC;AAqDD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,OAAO,GAAG,IAAI,EAC9B,eAAe,EAAE,OAAO,EACxB,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC3B,OAAO,EAAE,CAgBX;AAcD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,aAAa,EAAE,EAC1B,UAAU,EAAE,eAAe,EAC3B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,mBAAmB,GAAE,MAAM,EAAO,EAClC,cAAc,GAAE,MAAM,GAAG,IAAW,GACnC,uBAAuB,GAAG,IAAI,CAyHhC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,mBAAmB,GAAE,MAAM,EAAO,EAClC,cAAc,GAAE,MAAM,GAAG,IAAW,GACnC,OAAO,GAAG,IAAI,CA4BhB;AAUD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,mBAAmB,GAAE,MAAM,EAAO,EAClC,cAAc,GAAE,MAAM,GAAG,IAAW,GACnC,MAAM,CAOR;AASD,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EAAE,GAClB,aAAa,EAAE,GAAG,IAAI,CAgBxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,GAAE,cAAc,GAAG,IAAW,EAC5C,cAAc,GAAE,cAAc,GAAG,IAAW,GAC3C,aAAa,EAAE,CAajB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,GAAE,cAAc,GAAG,IAAW,EAC5C,cAAc,GAAE,cAAc,GAAG,IAAW,GAC3C,aAAa,EAAE,CAcjB;AAyBD,UAAU,UAAU;IAClB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB;4DACwD;IACxD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;uEAEmE;IACnE,YAAY,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AA8GD,UAAU,YAAY;IACpB;iFAC6E;IAC7E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;uDAEmD;IACnD,gBAAgB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAiFD;;;;;GAKG;AACH,KAAK,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExC;;;;;;;;GAQG;AACH,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AACD,KAAK,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAkDxD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,eAAe,GAAG,IAAI,GACjC;IACD,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B,CAYA;AAibD;;;uDAGuD;AACvD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd;wEACoE;IACpE,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAUD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EAAE,GAClB,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgCpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BnF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,aAAa,EAAE,EAC1B,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IACD,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D,CAiFA;AAsPD;;;;;;;;GAQG;AACH;sDACsD;AACtD,wBAAiB,kBAAkB,CACjC,YAAY,EAAE,MAAM,GACnB,SAAS,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAS5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;8EAC8E;AAC9E,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,GAAE,GAAG,CAAC,MAAM,CAAa,EACtC,oBAAoB,GAAE,GAAG,CAAC,MAAM,CAAa,EAC7C,kBAAkB,GAAE,WAAW,CAAC,MAAM,CAAa,GAClD,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAuHzB;AAED;4EAC4E;AAC5E,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;0BAM0B;AAC1B,UAAU,aAAa;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,OAAO,GAAG,WAAW,GAAG,aAAa,CAAC;AAE3C,UAAU,UAAU;IAClB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB;;sFAEkF;IAClF,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,aAAa,EAAE,OAAO,CAAC;CACxB;AASD;;0EAE0E;AAC1E,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASlE;AA+FD;;;;GAIG;AACH,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EAAE,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAClC,UAAU,EAAE,CA0Jd;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAUhF;AAqED;;;oDAGoD;AACpD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,UAAU,EAAE,EACrB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CA6DtC;AAsdD;6DAC6D;AAC7D,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,UAAU,EAAE,EACrB,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,EAChC,eAAe,EAAE,eAAe,EAChC,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,EACtC,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjD,+BAA+B,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,EAC7E,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3C,UAAU,GAAE,eAAe,GAAG,IAAW,EACzC,eAAe,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,EAChD,cAAc,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,EAC/C,aAAa,GAAE,GAAG,CAAC,MAAM,CAAa,EACtC,iBAAiB,GAAE,sBAAsB,EAAO,EAChD,iBAAiB,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,EAClD,aAAa,GAAE,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAa,EACzE,cAAc,GAAE,cAAc,GAAG,IAAW,GAC3C,MAAM,CAs0BR;AAkOD;;;;sDAIsD;AACtD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,MAAM,EAAO,GAClB;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,EAAE,CASxD;AAiCD;;;;6EAI6E;AAC7E,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,MAAM,EAAO,GAClB;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,EAAE,CAWxD;AAWD;;;;iDAIiD;AACjD,MAAM,WAAW,QAAQ;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;uBAwBuB;AACvB,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAkKD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAMvE;AAkOD;;;sCAGsC;AACtC,wBAAgB,6CAA6C,IAAI,MAAM,CAEtE;AAED,sFAAsF;AACtF,wBAAgB,+CAA+C,IAAI,IAAI,CAEtE;AAqID,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACpE,OAAO,EAAE,SAAS,CAAC,EAAE,GACpB,QAAQ,EAAE,CA2HZ;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B;uEACmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB;gFAC4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB;;;0EAGsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;mBAIe;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA0CnF;AAmED;;;;iCAIiC;AACjC,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAOlF;AA+GD;;;;;qDAKqD;AACrD,wBAAgB,sCAAsC,IAAI,MAAM,CAE/D;AAED,wBAAgB,wCAAwC,IAAI,IAAI,CAE/D;AA0XD,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAClF,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,cAAc,GAAE,cAAc,GAAG,IAAW,GAC3C,QAAQ,EAAE,CAgBZ;AA0ND;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,EAAE,CAoCX;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB;;8DAE0D;IAC1D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB;;;;yEAIqE;IACrE,mBAAmB,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACzC,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB;;6EAEyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;8BAG0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;2DAKuD;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;gFAG4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mGAAmG;IACnG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;qDAEiD;IACjD,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC;;;oCAGgC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;sEACkE;IAClE,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC;;;;sDAIkD;IAClD,yBAAyB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD;;4EAEwE;IACxE,4BAA4B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;IAC5E;;;;2EAIuE;IACvE,wBAAwB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C;;;+DAG2D;IAC3D,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC;;;sEAGkE;IAClE,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC;;;;yEAIqE;IACrE,4BAA4B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD;;;;0EAIsE;IACtE,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACpC;;;iCAG6B;IAC7B,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC,GAAG,MAAM,CAorBT;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,IAAI,CAaN;AAED,qFAAqF;AACrF,KAAK,aAAa,GACd,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AA6FN;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;0EAEsE;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;oCACgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,CA+GT;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;2EAIuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;oCACgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CA2MnD;AAED;mEACmE;AACnE,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgB5E"}
|
|
1
|
+
{"version":3,"file":"recon-generate.d.ts","sourceRoot":"","sources":["../../src/scripts/recon-generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,7 @@ exports.collectRequestValuesIncludingHeaders = collectRequestValuesIncludingHead
|
|
|
63
63
|
exports.getFoldPlanResolutionCallCountForTests = getFoldPlanResolutionCallCountForTests;
|
|
64
64
|
exports.resetFoldPlanResolutionCallCountForTests = resetFoldPlanResolutionCallCountForTests;
|
|
65
65
|
exports.resolveFoldPlan = resolveFoldPlan;
|
|
66
|
+
exports.resolveApplicableFoldPlans = resolveApplicableFoldPlans;
|
|
66
67
|
exports.buildContractChecklist = buildContractChecklist;
|
|
67
68
|
exports.emitContractTs = emitContractTs;
|
|
68
69
|
exports.assertRequiredUrlFieldsReferenced = assertRequiredUrlFieldsReferenced;
|
|
@@ -5392,6 +5393,29 @@ function resolveSpecMatchedPrimaryItemIndex(primaryItems, joinFields, drillCaptu
|
|
|
5392
5393
|
}));
|
|
5393
5394
|
return matchedIndex === -1 ? null : matchedIndex;
|
|
5394
5395
|
}
|
|
5396
|
+
/** Like {@link resolveSpecMatchedPrimaryItemIndex}, but matches against the
|
|
5397
|
+
* drill capture's own RESPONSE instead of its request — a `foldReturn`
|
|
5398
|
+
* spec's `joinFields` names the field the AUTHOR knows the drill-down
|
|
5399
|
+
* response carries (so `emitFoldMatchAndMergeLines` can match it back onto a
|
|
5400
|
+
* primary item at runtime); it names nothing about what the drill's REQUEST
|
|
5401
|
+
* carries, which is very often a completely different per-item field (e.g. a
|
|
5402
|
+
* REST drill-down keyed by an item's `packageCode` whose response happens to
|
|
5403
|
+
* echo back that item's `id`). Tried only as a fallback, after the
|
|
5404
|
+
* request-based match, since a request-carried join value disambiguates a
|
|
5405
|
+
* drill occurrence unambiguously while a response-only match can in
|
|
5406
|
+
* principle collide across primary items with the same response shape. */
|
|
5407
|
+
function resolveSpecMatchedPrimaryItemIndexFromResponse(primaryItems, joinFields, drillCapture) {
|
|
5408
|
+
const responseValues = collectResponseLeafValues(drillCapture);
|
|
5409
|
+
if (responseValues.size === 0)
|
|
5410
|
+
return null;
|
|
5411
|
+
const matchedIndex = primaryItems.findIndex((item) => joinFields.every((field) => {
|
|
5412
|
+
const value = readValueAtPath(item, field.split("."));
|
|
5413
|
+
return ((typeof value === "string" && value.length > 0 && responseValues.has(value)) ||
|
|
5414
|
+
(typeof value === "number" && responseValues.has(String(value))) ||
|
|
5415
|
+
(typeof value === "boolean" && responseValues.has(String(value))));
|
|
5416
|
+
}));
|
|
5417
|
+
return matchedIndex === -1 ? null : matchedIndex;
|
|
5418
|
+
}
|
|
5395
5419
|
/**
|
|
5396
5420
|
* Maps every string/numeric/boolean value seen in any action's request (URL,
|
|
5397
5421
|
* body, or headers — see {@link collectRequestValuesIncludingHeaders}) to the
|
|
@@ -5578,12 +5602,6 @@ function buildFoldPlanFromSpec(actions, spec) {
|
|
|
5578
5602
|
continue;
|
|
5579
5603
|
const joinValues = collectPrimaryJoinValues(primaryItems, spec.joinFields);
|
|
5580
5604
|
const candidateEntryIndicesDescending = collectCandidateEntryIndicesDescending(requestValueIndex, joinValues, primaryStepIndex);
|
|
5581
|
-
// No action anywhere carries any of this primary's join values, so no
|
|
5582
|
-
// drillStepIndex candidate could ever resolve — skip straight to the
|
|
5583
|
-
// next primary instead of scanning this one's drill candidates (each of
|
|
5584
|
-
// which would only rediscover the same dead end).
|
|
5585
|
-
if (candidateEntryIndicesDescending.length === 0)
|
|
5586
|
-
continue;
|
|
5587
5605
|
// Cheap regex-only pass first: collects every endpointPattern-matching
|
|
5588
5606
|
// drillStepIndex without paying for the expensive backward-walk +
|
|
5589
5607
|
// computeFoldChain resolution below. Scanned from the freshest (highest)
|
|
@@ -5592,12 +5610,24 @@ function buildFoldPlanFromSpec(actions, spec) {
|
|
|
5592
5610
|
// ties in the original last-write-wins scan first, falling through to
|
|
5593
5611
|
// the next-freshest only when a candidate fails to resolve, instead of
|
|
5594
5612
|
// resolving every earlier occurrence just to have it overwritten.
|
|
5613
|
+
//
|
|
5614
|
+
// Computed even when `candidateEntryIndicesDescending` is empty (unlike
|
|
5615
|
+
// the request-based path below, which bails immediately in that case):
|
|
5616
|
+
// an endpointPattern match is a single regex test per action, O(actions)
|
|
5617
|
+
// regardless — not the O(actions)-per-candidate backward walk the
|
|
5618
|
+
// request-based prune exists to avoid — so it stays cheap even when no
|
|
5619
|
+
// request anywhere carries this primary's join values, which is exactly
|
|
5620
|
+
// the case {@link resolveSpecMatchedPrimaryItemIndexFromResponse}'s
|
|
5621
|
+
// response-only fallback below exists to resolve.
|
|
5595
5622
|
const matchingDrillStepIndices = [];
|
|
5596
5623
|
for (let drillStepIndex = primaryStepIndex + 1; drillStepIndex < actions.length; drillStepIndex++) {
|
|
5597
5624
|
if (matchesFoldReturnEndpoint(actions[drillStepIndex].capture)) {
|
|
5598
5625
|
matchingDrillStepIndices.push(drillStepIndex);
|
|
5599
5626
|
}
|
|
5600
5627
|
}
|
|
5628
|
+
if (candidateEntryIndicesDescending.length === 0 && matchingDrillStepIndices.length === 0) {
|
|
5629
|
+
continue;
|
|
5630
|
+
}
|
|
5601
5631
|
// Shared across every matching-drill candidate tried below for THIS
|
|
5602
5632
|
// primaryStepIndex — see resolveSpecMatchedPrimaryItemIndexAlongChain's
|
|
5603
5633
|
// docstring on why a fresh cache per primary (not per drill candidate)
|
|
@@ -5621,7 +5651,18 @@ function buildFoldPlanFromSpec(actions, spec) {
|
|
|
5621
5651
|
// now does (see detectDrillDownFoldPlan). Validated after the chain
|
|
5622
5652
|
// resolves, below, since `[]` is a valid empty baseline for
|
|
5623
5653
|
// computeFoldChain but not a valid final drillArrayPath on its own.
|
|
5624
|
-
const
|
|
5654
|
+
const chainMatchResult = resolveSpecMatchedPrimaryItemIndexAlongChain(actions, primaryItems, spec.joinFields, drillStepIndex, matchedItemIndexCache, candidateEntryIndicesDescending);
|
|
5655
|
+
// A request-carried join value (checked above, across this whole
|
|
5656
|
+
// primary/drill chain) disambiguates unambiguously; only fall back to
|
|
5657
|
+
// matching the drill's own RESPONSE — which never disambiguates an
|
|
5658
|
+
// upstream entry hop, only the drill step itself — when that fails.
|
|
5659
|
+
const matchResult = chainMatchResult ??
|
|
5660
|
+
(() => {
|
|
5661
|
+
const primaryMatchedItemIndex = resolveSpecMatchedPrimaryItemIndexFromResponse(primaryItems, spec.joinFields, drill.capture);
|
|
5662
|
+
return primaryMatchedItemIndex === null
|
|
5663
|
+
? null
|
|
5664
|
+
: { entryIndex: drillStepIndex, primaryMatchedItemIndex };
|
|
5665
|
+
})();
|
|
5625
5666
|
if (matchResult === null)
|
|
5626
5667
|
continue;
|
|
5627
5668
|
const { entryIndex, primaryMatchedItemIndex } = matchResult;
|
|
@@ -5697,16 +5738,48 @@ function mergeSpecPlanOntoSamePrimary(structuralPlans, actions, foldReturnSpec)
|
|
|
5697
5738
|
const samePrimaryPlan = structuralPlans.find((plan) => plan.primaryStepIndex === specPlan.primaryStepIndex &&
|
|
5698
5739
|
JSON.stringify(plan.primaryArrayPath) === JSON.stringify(specPlan.primaryArrayPath));
|
|
5699
5740
|
if (samePrimaryPlan !== undefined) {
|
|
5741
|
+
// A drillStepIndex the structural heuristic ALSO resolved keeps its
|
|
5742
|
+
// structurally-resolved chain/drillArrayPath (already proven to reach
|
|
5743
|
+
// real per-item data), but its `joinFields` is overridden to the spec's
|
|
5744
|
+
// declared value — the heuristic's own joinFields only prove a field
|
|
5745
|
+
// threads INTO the drill's REQUEST, which says nothing about whether
|
|
5746
|
+
// that same field can be found on the drill's RESPONSE to match it back
|
|
5747
|
+
// onto a primary item (see emitFoldMatchAndMergeLines). A flow author
|
|
5748
|
+
// declaring `joinFields` on a foldReturn is asserting exactly that: this
|
|
5749
|
+
// is the field their drill-down's RESPONSE actually carries.
|
|
5750
|
+
const specTargetsByDrillStepIndex = new Map(specPlan.targets.map((target) => [target.drillStepIndex, target]));
|
|
5700
5751
|
return structuralPlans.map((plan) => {
|
|
5701
5752
|
if (plan !== samePrimaryPlan)
|
|
5702
5753
|
return plan;
|
|
5754
|
+
const mergedTargets = plan.targets.map((target) => {
|
|
5755
|
+
const specTarget = specTargetsByDrillStepIndex.get(target.drillStepIndex);
|
|
5756
|
+
return specTarget === undefined ? target : { ...target, joinFields: specTarget.joinFields };
|
|
5757
|
+
});
|
|
5703
5758
|
const existingDrillStepIndexes = new Set(plan.targets.map((target) => target.drillStepIndex));
|
|
5704
5759
|
const newTargets = specPlan.targets.filter((target) => !existingDrillStepIndexes.has(target.drillStepIndex));
|
|
5705
|
-
return newTargets
|
|
5706
|
-
? plan
|
|
5707
|
-
: { ...plan, targets: [...plan.targets, ...newTargets] };
|
|
5760
|
+
return { ...plan, targets: [...mergedTargets, ...newTargets] };
|
|
5708
5761
|
});
|
|
5709
5762
|
}
|
|
5763
|
+
// No exact (primaryStepIndex, primaryArrayPath) match, but a structural
|
|
5764
|
+
// plan on the SAME primaryStepIndex may still have independently detected
|
|
5765
|
+
// a target at the SAME drillStepIndex a spec target names — just at the
|
|
5766
|
+
// wrong array level (e.g. a shallower structural guess that happens to
|
|
5767
|
+
// share the spec's drill-down call). That structural target's own
|
|
5768
|
+
// primaryArrayPath/drillArrayPath/joinFields describe the heuristic's
|
|
5769
|
+
// guess, not the flow author's declaration, so the spec target replaces
|
|
5770
|
+
// it wholesale rather than being discarded by the mismatched-array-path
|
|
5771
|
+
// branch below or partially merged as if the array level matched.
|
|
5772
|
+
const specDrillStepIndices = new Set(specPlan.targets.map((target) => target.drillStepIndex));
|
|
5773
|
+
const sharedDrillPlan = structuralPlans.find((plan) => plan.primaryStepIndex === specPlan.primaryStepIndex &&
|
|
5774
|
+
plan.targets.some((target) => specDrillStepIndices.has(target.drillStepIndex)));
|
|
5775
|
+
if (sharedDrillPlan !== undefined) {
|
|
5776
|
+
const remainingTargets = sharedDrillPlan.targets.filter((target) => !specDrillStepIndices.has(target.drillStepIndex));
|
|
5777
|
+
const otherPlans = structuralPlans.filter((plan) => plan !== sharedDrillPlan);
|
|
5778
|
+
const keptStructuralPlans = remainingTargets.length === 0
|
|
5779
|
+
? otherPlans
|
|
5780
|
+
: [...otherPlans, { ...sharedDrillPlan, targets: remainingTargets }];
|
|
5781
|
+
return [...keptStructuralPlans, specPlan];
|
|
5782
|
+
}
|
|
5710
5783
|
// Keyed by the (primaryStepIndex, primaryArrayPath) pair, not
|
|
5711
5784
|
// primaryStepIndex alone — a structural plan only ever consumed ITS OWN
|
|
5712
5785
|
// array on that step, not the whole step. A spec whose resultsPath names
|
|
@@ -5824,6 +5897,40 @@ function resolveFoldPlan(actions, foldReturnSpec = null) {
|
|
|
5824
5897
|
return targets.length === 0 ? [] : [{ ...plan, targets }];
|
|
5825
5898
|
});
|
|
5826
5899
|
}
|
|
5900
|
+
/**
|
|
5901
|
+
* The fold plans `emitContractTs` actually threads into its single-primary
|
|
5902
|
+
* hot path — a multi-step flow owns its own per-item fold loop (via
|
|
5903
|
+
* `emitMultiStepExecuteHttp`) instead, so this resolves to none there.
|
|
5904
|
+
* Exported and shared verbatim by `emitContractTs` and the "no fold plan
|
|
5905
|
+
* resolved" diagnostic in `main()` so the two can never independently decide
|
|
5906
|
+
* whether a declared foldReturn actually made it into the emitted output —
|
|
5907
|
+
* any future exclusion added to the single-primary hot path must be added
|
|
5908
|
+
* here too, and both call sites pick it up automatically.
|
|
5909
|
+
*
|
|
5910
|
+
* `resolveFoldPlan` itself can surface several plans for the SAME
|
|
5911
|
+
* primaryArrayPath/endpoint — one per pagination/re-filter occurrence of the
|
|
5912
|
+
* primary that independently threads a drill-down — because
|
|
5913
|
+
* `selectEffectiveResponseBody`/`mergeFoldedPrimaryBodies` need every one of
|
|
5914
|
+
* them to merge shapes for schema inference. Emission has no such need, so
|
|
5915
|
+
* this collapses those down to the single freshest occurrence (highest
|
|
5916
|
+
* `primaryStepIndex`) per distinct primaryArrayPath/endpoint before
|
|
5917
|
+
* returning, keeping `resolveFoldPlan`'s own multi-plan output untouched.
|
|
5918
|
+
*/
|
|
5919
|
+
function resolveApplicableFoldPlans(actions, foldReturnSpec, multiStepBody) {
|
|
5920
|
+
if (multiStepBody)
|
|
5921
|
+
return [];
|
|
5922
|
+
const plans = resolveFoldPlan(actions, foldReturnSpec);
|
|
5923
|
+
const primaryKey = (plan) => `${endpointKey(actions[plan.primaryStepIndex].capture.url)}\u0000${plan.primaryArrayPath.join(".")}`;
|
|
5924
|
+
const freshestStepIndexByPrimary = new Map();
|
|
5925
|
+
for (const plan of plans) {
|
|
5926
|
+
const key = primaryKey(plan);
|
|
5927
|
+
const freshest = freshestStepIndexByPrimary.get(key);
|
|
5928
|
+
if (freshest === undefined || plan.primaryStepIndex > freshest) {
|
|
5929
|
+
freshestStepIndexByPrimary.set(key, plan.primaryStepIndex);
|
|
5930
|
+
}
|
|
5931
|
+
}
|
|
5932
|
+
return plans.filter((plan) => plan.primaryStepIndex === freshestStepIndexByPrimary.get(primaryKey(plan)));
|
|
5933
|
+
}
|
|
5827
5934
|
/** Rebuilds `value` with every occurrence of `target` (compared by object
|
|
5828
5935
|
* identity) replaced by `replacement`, spreading every ancestor
|
|
5829
5936
|
* array/object level so sibling fields and sibling array elements survive
|
|
@@ -5938,9 +6045,17 @@ function buildNestedSpreadOverride(base, path, leafExpr) {
|
|
|
5938
6045
|
* the observed page size on each call, stops once the response's own
|
|
5939
6046
|
* reported total is reached or `MAX_PAGES` caps it, and merges pages by the
|
|
5940
6047
|
* detected identity field rather than concatenating blindly.
|
|
6048
|
+
*
|
|
6049
|
+
* `foldMergeLines`, when non-empty, threads a resolved single-primary fold
|
|
6050
|
+
* plan (see `emitContractTs`'s `singlePrimaryFoldPlans`) additively into the
|
|
6051
|
+
* loop: it runs once, after every page has been fetched and de-duplicated
|
|
6052
|
+
* into `itemsById`, so the drill-down call/merge sees the final assembled
|
|
6053
|
+
* item set rather than only the first page's captured sample. Each merge
|
|
6054
|
+
* mutates its item in place (`Object.assign`), which is visible through
|
|
6055
|
+
* `itemsById`'s own stored references — no re-`set` needed.
|
|
5941
6056
|
*/
|
|
5942
6057
|
function buildPaginatedGqlExecuteHttpBody(opts) {
|
|
5943
|
-
const { pascal, gqlOperationNameExpr, queryConstName, gqlVariablesExpr, signal } = opts;
|
|
6058
|
+
const { pascal, gqlOperationNameExpr, queryConstName, gqlVariablesExpr, signal, foldMergeLines } = opts;
|
|
5944
6059
|
const { totalPath, arrayPath, containerPath, countKey, skipKey, pageSize, identityField } = signal;
|
|
5945
6060
|
const countKeyExpr = isValidJsIdentifier(countKey) ? countKey : JSON.stringify(countKey);
|
|
5946
6061
|
const skipKeyExpr = isValidJsIdentifier(skipKey) ? skipKey : JSON.stringify(skipKey);
|
|
@@ -5980,7 +6095,7 @@ function buildPaginatedGqlExecuteHttpBody(opts) {
|
|
|
5980
6095
|
}
|
|
5981
6096
|
skip += PAGE_SIZE;
|
|
5982
6097
|
}
|
|
5983
|
-
const truncated = itemsById.size < total;
|
|
6098
|
+
${foldMergeLines.length > 0 ? `${foldMergeLines.join("\n")}\n` : ""} const truncated = itemsById.size < total;
|
|
5984
6099
|
const withItems = ${withItemsOverrideExpr};
|
|
5985
6100
|
const data = ${withTotalOverrideExpr} as ${pascal}Response;
|
|
5986
6101
|
return { data };`;
|
|
@@ -6099,11 +6214,11 @@ function emitContractTs(opts) {
|
|
|
6099
6214
|
// single-primary read flow with a declared `foldReturn` would silently
|
|
6100
6215
|
// drop the fold feature the flow author declared (see
|
|
6101
6216
|
// recon-generate-foldreturn-regresses-primary-op-and-payload-to-ats-submission-shape.md).
|
|
6102
|
-
//
|
|
6103
|
-
//
|
|
6104
|
-
//
|
|
6105
|
-
//
|
|
6106
|
-
const singlePrimaryFoldPlans =
|
|
6217
|
+
// Also threaded additively into `paginationSignal`'s fetch loop below (see
|
|
6218
|
+
// buildPaginatedGqlExecuteHttpBody) — the fold runs against the final
|
|
6219
|
+
// assembled/de-duplicated page items, not just the first page's captured
|
|
6220
|
+
// sample, so a paginated primary is no longer excluded from folding.
|
|
6221
|
+
const singlePrimaryFoldPlans = resolveApplicableFoldPlans(actionSteps, foldReturnSpec, multiStepBody);
|
|
6107
6222
|
// A GraphQL primary with a resolved drill-down fold has no other REST
|
|
6108
6223
|
// client to issue the drill request(s) with — getGql only ever speaks
|
|
6109
6224
|
// GraphQL to the primary endpoint.
|
|
@@ -6403,8 +6518,14 @@ const httpClient = createHttpClient({ schema: ${pascal}ResponseSchema, bottlenec
|
|
|
6403
6518
|
* merge semantics. Chain hops beyond the drill step itself are rendered
|
|
6404
6519
|
* directly off each hop's own captured request (no state-threading
|
|
6405
6520
|
* pipeline) since a single-primary read flow carries no submitted payload
|
|
6406
|
-
* for those calls to reference.
|
|
6407
|
-
|
|
6521
|
+
* for those calls to reference.
|
|
6522
|
+
*
|
|
6523
|
+
* `itemsExprOverride`, when given, replaces the `dataVarName`+`primaryArrayPath`
|
|
6524
|
+
* accessor with a caller-supplied items expression — used by the paginated
|
|
6525
|
+
* GraphQL fetch loop, whose merged/de-duplicated page items already sit in
|
|
6526
|
+
* a flat runtime collection (`itemsById.values()`) rather than nested at
|
|
6527
|
+
* `primaryArrayPath` inside a single response object. */
|
|
6528
|
+
const buildFoldMergeLines = (dataVarName, itemsExprOverride) => {
|
|
6408
6529
|
const lines = [];
|
|
6409
6530
|
for (const [planIndex, foldPlan] of singlePrimaryFoldPlans.entries()) {
|
|
6410
6531
|
const primaryStep = actionSteps[foldPlan.primaryStepIndex];
|
|
@@ -6414,7 +6535,8 @@ const httpClient = createHttpClient({ schema: ${pascal}ResponseSchema, bottlenec
|
|
|
6414
6535
|
const primaryArrType = foldArrayAssertionType(foldPlan.primaryArrayPath);
|
|
6415
6536
|
const planSuffix = singlePrimaryFoldPlans.length > 1 ? String(planIndex) : "";
|
|
6416
6537
|
const foldItemsVar = `foldItems${planSuffix}`;
|
|
6417
|
-
const foldItemsExpr =
|
|
6538
|
+
const foldItemsExpr = itemsExprOverride ??
|
|
6539
|
+
pathToFoldAccessorExpr(`(${dataVarName} as ${primaryArrType})`, foldPlan.primaryArrayPath);
|
|
6418
6540
|
const itemVar = `item${planSuffix}`;
|
|
6419
6541
|
lines.push(` const ${foldItemsVar} = ${foldItemsExpr};`, ` for (const ${itemVar} of ${foldItemsVar}) {`);
|
|
6420
6542
|
for (const [targetIndex, target] of foldPlan.targets.entries()) {
|
|
@@ -6427,11 +6549,26 @@ const httpClient = createHttpClient({ schema: ${pascal}ResponseSchema, bottlenec
|
|
|
6427
6549
|
// Same word-boundary-anchored swap emitMultiStepExecuteHttp's own
|
|
6428
6550
|
// `parameterize` performs — a plain split/join would also rewrite
|
|
6429
6551
|
// unrelated substrings that happen to contain the join value.
|
|
6430
|
-
|
|
6552
|
+
//
|
|
6553
|
+
// Parameterizes off EVERY per-item field this specific chain hop's
|
|
6554
|
+
// own captured request actually varies on (via findThreadedJoinFields),
|
|
6555
|
+
// not just `target.joinFields` — `target.joinFields` names the field
|
|
6556
|
+
// used to MATCH the drill's RESPONSE back onto the primary item (see
|
|
6557
|
+
// emitFoldMatchAndMergeLines), which for a spec-declared foldReturn
|
|
6558
|
+
// can legitimately be a field the request never carries at all (e.g.
|
|
6559
|
+
// an `id` echoed only in the response, while the request is keyed by
|
|
6560
|
+
// an unrelated field like a package code). Building the URL from only
|
|
6561
|
+
// `target.joinFields` in that case would leave it unparameterized —
|
|
6562
|
+
// every item would fetch the SAME first-captured URL.
|
|
6563
|
+
const parameterizeUrl = (rawUrl, chainCapture) => {
|
|
6431
6564
|
const withBase = baseUrl.length > 0 && rawUrl.startsWith(baseUrl)
|
|
6432
6565
|
? `\${context.baseUrl}${rawUrl.slice(baseUrl.length)}`
|
|
6433
6566
|
: rawUrl;
|
|
6434
|
-
|
|
6567
|
+
const threadedFields = new Set([
|
|
6568
|
+
...target.joinFields,
|
|
6569
|
+
...findThreadedJoinFields(firstItem, chainCapture),
|
|
6570
|
+
]);
|
|
6571
|
+
return [...threadedFields].reduce((acc, field) => {
|
|
6435
6572
|
const value = readValueAtPath(firstItem, field.split("."));
|
|
6436
6573
|
const stringValue = typeof value === "string" && value.length > 0
|
|
6437
6574
|
? value
|
|
@@ -6447,7 +6584,7 @@ const httpClient = createHttpClient({ schema: ${pascal}ResponseSchema, bottlenec
|
|
|
6447
6584
|
const chainStep = actionSteps[chainIndex];
|
|
6448
6585
|
if (!chainStep)
|
|
6449
6586
|
continue;
|
|
6450
|
-
const url = parameterizeUrl(chainStep.capture.url);
|
|
6587
|
+
const url = parameterizeUrl(chainStep.capture.url, chainStep.capture);
|
|
6451
6588
|
const schemaExpr = inferZodSchema(chainStep.capture.responseBody, 0, "", {
|
|
6452
6589
|
looseServerResponse: true,
|
|
6453
6590
|
aggregateUnitBasisFindingsByPath: groupAggregateUnitBasisFindingsByPath([
|
|
@@ -6467,6 +6604,13 @@ const httpClient = createHttpClient({ schema: ${pascal}ResponseSchema, bottlenec
|
|
|
6467
6604
|
};
|
|
6468
6605
|
const dataFoldMergeLines = buildFoldMergeLines("data");
|
|
6469
6606
|
const dataFoldMergeBlock = dataFoldMergeLines.length > 0 ? `${dataFoldMergeLines.join("\n")}\n` : "";
|
|
6607
|
+
// The paginated fetch loop assembles its final page items into
|
|
6608
|
+
// `itemsById` — fold onto THAT flat, de-duplicated collection (once, after
|
|
6609
|
+
// the loop) rather than `data`/`primaryArrayPath`, so every item folded
|
|
6610
|
+
// is the final merged item across all fetched pages, not just page one's.
|
|
6611
|
+
const paginatedFoldMergeLines = paginationSignal
|
|
6612
|
+
? buildFoldMergeLines("data", "[...itemsById.values()]")
|
|
6613
|
+
: [];
|
|
6470
6614
|
const executeHttpBody = multiStepBody
|
|
6471
6615
|
? multiStepBody
|
|
6472
6616
|
: paginationSignal
|
|
@@ -6476,6 +6620,7 @@ const httpClient = createHttpClient({ schema: ${pascal}ResponseSchema, bottlenec
|
|
|
6476
6620
|
queryConstName: `${pascal.toUpperCase()}_QUERY`,
|
|
6477
6621
|
gqlVariablesExpr,
|
|
6478
6622
|
signal: paginationSignal,
|
|
6623
|
+
foldMergeLines: paginatedFoldMergeLines,
|
|
6479
6624
|
})
|
|
6480
6625
|
: gql
|
|
6481
6626
|
? ` const data = await getGql(context.baseUrl)(${gqlOperationNameExpr}, ${pascal.toUpperCase()}_QUERY, ${gqlVariablesExpr});
|
|
@@ -7555,8 +7700,18 @@ async function main() {
|
|
|
7555
7700
|
const effectiveResponseBody = selectEffectiveResponseBody(isSubmissionFlow, actionSteps, responseBody, foldReturnSpec);
|
|
7556
7701
|
// A declared foldReturn that resolves to no plan is a silent no-op otherwise
|
|
7557
7702
|
// — the flow author gets the discarding selectReturnAction path with nothing
|
|
7558
|
-
// in the output saying their declaration never applied.
|
|
7559
|
-
|
|
7703
|
+
// in the output saying their declaration never applied. A multi-step
|
|
7704
|
+
// (submission) flow applies its fold via emitMultiStepExecuteHttp's own
|
|
7705
|
+
// resolveFoldPlan call, entirely independent of resolveApplicableFoldPlans
|
|
7706
|
+
// (which exists only to gate emitContractTs's single-primary hot path, and
|
|
7707
|
+
// unconditionally reports zero plans once multiStepBody is set) — so this
|
|
7708
|
+
// diagnostic must consult the SAME resolution each path actually applies,
|
|
7709
|
+
// or it falsely reports "no fold plan resolved" for every multi-step flow
|
|
7710
|
+
// with a working foldReturn.
|
|
7711
|
+
const effectiveFoldPlanCount = multiStepBody
|
|
7712
|
+
? resolveFoldPlan(actionSteps, foldReturnSpec).length
|
|
7713
|
+
: resolveApplicableFoldPlans(actionSteps, foldReturnSpec, multiStepBody).length;
|
|
7714
|
+
if (foldReturnSpec !== null && effectiveFoldPlanCount === 0) {
|
|
7560
7715
|
logger.warn(`flow declares foldReturn (endpointPattern: ${foldReturnSpec.endpointPattern}, resultsPath: ${foldReturnSpec.resultsPath}, joinFields: ${foldReturnSpec.joinFields.join(", ")}) but no fold plan resolved — no later capture matched the endpoint pattern, resultsPath resolved to no object array, or the matched drill-down is multipart; the drill-down's response will not be folded`);
|
|
7561
7716
|
}
|
|
7562
7717
|
logger.info(`generating plugin for ${siteId} (${gql ? "GraphQL" : browserFlowOnly ? `submission flow, ${actionSteps.length} steps, browser-flow-only (cross-domain hop detected)` : isSubmissionFlow ? `submission flow, ${actionSteps.length} steps` : "single-endpoint REST"}, baseUrl: ${baseUrl})`);
|