carrick 0.3.131 → 0.3.132
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/init/hosted.js +3 -1
- package/dist/init/hosted.js.map +1 -1
- package/package.json +6 -6
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/sidecar/dist/src/absent-body.d.ts +41 -0
- package/sidecar/dist/src/absent-body.js +224 -0
- package/sidecar/dist/src/capture/api.d.ts +20 -0
- package/sidecar/dist/src/capture/check-probe.d.ts +5 -1
- package/sidecar/dist/src/capture/check-probe.js +38 -4
- package/sidecar/dist/src/capture/check-scrub.js +2 -0
- package/sidecar/dist/src/capture/check.js +8 -1
- package/sidecar/dist/src/capture/self-check.js +16 -6
- package/sidecar/dist/src/stated-params.d.ts +1 -1
- package/sidecar/dist/src/type-inferrer.d.ts +12 -0
- package/sidecar/dist/src/type-inferrer.js +47 -2
- package/sidecar/dist/src/types.d.ts +8 -0
- package/sidecar/dist/src/validators.d.ts +598 -578
- package/sidecar/dist/src/validators.js +2 -0
package/dist/init/hosted.js
CHANGED
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
// hosted read this machine has not yet made signed in and connected. On a
|
|
20
20
|
// workspace `carrick index` has just indexed, nothing is re-read.
|
|
21
21
|
// carrick#985 is the other half of that saving, inside `refresh`: a repo whose
|
|
22
|
-
//
|
|
22
|
+
// tree has not moved under any file a scan reads since the hosted commit is
|
|
23
|
+
// read in from the hosted index rather than re-read (`current_hosted_blobs`
|
|
24
|
+
// in `src/local_mode/index.rs`), so a fresh clone of main costs the download.
|
|
23
25
|
//
|
|
24
26
|
// What it reports is read back from `carrick status`, not assumed from an
|
|
25
27
|
// exit code: a refresh that scanned fine can still have been refused the
|
package/dist/init/hosted.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted.js","sourceRoot":"","sources":["../../src/init/hosted.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hosted.js","sourceRoot":"","sources":["../../src/init/hosted.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,kEAAkE;AAClE,kBAAkB;AAClB,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,8EAA8E;AAC9E,sEAAsE;AACtE,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,kEAAkE;AAClE,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,kBAAkB;AAElB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2DlD;;;;;;;;;;;GAWG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,cAAc;CACf,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAAC,MAA2B,EAAE,KAAe;IAC1E,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IACrF,0EAA0E;IAC1E,0EAA0E;IAC1E,iBAAiB;IACjB,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAClF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAClE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,qCAAqC,EAAE,CAAC;IACrF,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,SAAS,CAAC,MAAM,uCAAuC,EAAE,CAAC;IAC1G,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAClG,CAAC;IACF,IAAI,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IAC9E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,aAAa,CAAC,IAAiB;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC;QACH,sEAAsE;QACtE,6DAA6D;QAC7D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,SAAS,QAAQ,CAAC,KAA0B;IAC1C,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,WAAW,CAClB,IAAc,EACd,KAAc,EACd,QAA6B;IAE7B,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,uCAAuC;SAClE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAgB,EAAE,IAAI,EAAE;YACjD,qEAAqE;YACrE,uDAAuD;YACvD,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE;YACvE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,CAAC,KAAgE,EAAQ,EAAE;YACxF,IAAI,OAAO,KAAK,IAAI;gBAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,sEAAsE;YACtE,sDAAsD;YACtD,MAAM,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YACD,wEAAwE;YACxE,sEAAsE;YACtE,wEAAwE;YACxE,oEAAoE;YACpE,0EAA0E;YAC1E,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,KAAK;SACT,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;SAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAiB,EAAE,MAAoB,IAAI,CAAC,GAAG;IAC9E,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,4EAA4E;IAC5E,6EAA6E;IAC7E,wEAAwE;IACxE,yBAAyB;IACzB,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QACjB,IAAI,MAAM,KAAK,IAAI,IAAI,EAAE,GAAG,MAAM,GAAG,OAAO;YAAE,OAAO;QACrD,MAAM,GAAG,EAAE,CAAC;QACZ,yEAAyE;QACzE,yEAAyE;QACzE,uDAAuD;QACvD,MAAM,KAAK,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrD,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC;IACF,OAAO;QACL,IAAI,EAAE,CAAC,IAAY,EAAQ,EAAE;YAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO;YAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,QAAQ,GAAG,GAAG,MAAM,CAAC,aAAa,OAAO,MAAM,CAAC,aAAa,WAAW,CAAC;gBACzE,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,oEAAoE;YACpE,+DAA+D;YAC/D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrE,KAAK,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC;QACD,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AAoBD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,oCAAoC,CAAC;AAE/D,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEhD,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAE5C,0EAA0E;AAC1E,SAAS,SAAS,CAAC,IAAY,EAAE,QAAgB;IAC/C,MAAM,IAAI,GAAG,IAAI;SACd,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,WAAgC,IAAI;IAC/E,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,MAAiB,YAAY,CAAC,KAAK,CAAC,EACpC,QAAkB,EAAE,EACpB,MAA2B,IAAI;IAE/B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACnE,GAAG,EAAE,CAAC,GAAG,UAAU,KAAK,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IACzE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAAE,CAAC;IAChG,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,UAAU,CAAC,SAAiB,EAAE,GAAc;IACzD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,WAAW;IACX,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,MAA2B,EAAE,OAAsB,EAAE,MAAe;IACpF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,SAAS,CAChB,MAAM,EAAE,OAAO,IAAI,OAAO,IAAI,EAAE,EAChC,yDAAyD,CAC1D;SACF,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxC,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,KAAK,kBAAkB,CAAC,EAAE,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC;IAC1F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,YAAY,IAAI,SAAS,CAAC;QACjG,IAAI,KAAK,KAAK,gBAAgB;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACvF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,MAAoB;IAC1C,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,YAAY,KAAK,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,SAAS;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,KAAa,EAAE,OAAwB;IACzD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,aAAa;YAChB,OAAO;gBACL,OAAO,EAAE,0DAA0D;gBACnE,MAAM,EAAE,iCAAiC;aAC1C,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,KAAK,cAAc;YACjB,OAAO,EAAE,OAAO,EAAE,qCAAqC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1E,KAAK,eAAe;YAClB,OAAO,EAAE,OAAO,EAAE,oDAAoD,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACzF,oEAAoE;QACpE,0EAA0E;QAC1E,yDAAyD;QACzD,KAAK,gBAAgB;YACnB,OAAO;gBACL,OAAO,EAAE,gFAAgF;gBACzF,MAAM,EAAE,IAAI;aACb,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,EAAE,OAAO,EAAE,iEAAiE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACtG;YACE,OAAO,EAAE,OAAO,EAAE,mCAAmC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,OAAwB;IAC3C,MAAM,GAAG,GAAG,CAAC,MAAc,EAAU,EAAE,CACrC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,+DAA+D;QAC/D,OAAO;YACL,OAAO,EAAE,0EAA0E;YACnF,MAAM,EAAE,yCAAyC;SAClD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/G,OAAO;YACL,OAAO,EAAE,sCAAsC,EAAE,cAAc,IAAI,CAAC,MAAM,kCAAkC;YAC5G,MAAM,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,CAAC,IAAI,4BAA4B;SAC3F,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,OAAO;QACL,OAAO,EAAE,4EAA4E,MAAM,GAAG;QAC9F,MAAM,EAAE,GAAG,GAAG,CAAC,mBAAmB,CAAC,kDAAkD;KACtF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAuB,EACvB,UAAyB,IAAI,EAC7B,OAA2B,QAAQ;IAEnC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACtF,yEAAyE;IACzE,0EAA0E;IAC1E,0DAA0D;IAC1D,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,YAAY;YACf,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,CAAC,MAAM;oBAClB,CAAC,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,IAAI,EAAE;oBAC3E,CAAC,CAAC,gDAAgD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;aACpG,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,IAAI,KAAK,OAAO;oBACd,CAAC,CAAC,iKAAiK;oBACnK,CAAC,CAAC,kFAAkF;aACzF,CAAC;QACJ,wEAAwE;QACxE,qEAAqE;QACrE,+CAA+C;QAC/C,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,6CAA6C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GACjF,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBACxB,EAAE,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,gBAAgB,KAAK,GAAG;aACxG,CAAC;QACJ,CAAC;QACD,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,4GAA4G;aACnH,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kDAAkD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IACzG,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carrick",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.132",
|
|
4
4
|
"carrickCache": {
|
|
5
5
|
"cache_version": 22,
|
|
6
6
|
"intent_cache_version": 2
|
|
@@ -113,11 +113,11 @@
|
|
|
113
113
|
"zod": "^3.23.0"
|
|
114
114
|
},
|
|
115
115
|
"optionalDependencies": {
|
|
116
|
-
"@carrick-tools/cli-darwin-arm64": "0.3.
|
|
117
|
-
"@carrick-tools/cli-darwin-x64": "0.3.
|
|
118
|
-
"@carrick-tools/cli-linux-arm64": "0.3.
|
|
119
|
-
"@carrick-tools/cli-linux-x64": "0.3.
|
|
120
|
-
"@carrick-tools/cli-win32-x64": "0.3.
|
|
116
|
+
"@carrick-tools/cli-darwin-arm64": "0.3.132",
|
|
117
|
+
"@carrick-tools/cli-darwin-x64": "0.3.132",
|
|
118
|
+
"@carrick-tools/cli-linux-arm64": "0.3.132",
|
|
119
|
+
"@carrick-tools/cli-linux-x64": "0.3.132",
|
|
120
|
+
"@carrick-tools/cli-win32-x64": "0.3.132"
|
|
121
121
|
},
|
|
122
122
|
"devDependencies": {
|
|
123
123
|
"@types/node": "^24.13.3"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carrick",
|
|
3
3
|
"description": "Claude Code plugin for Carrick, which indexes TypeScript codebases across service and repository boundaries. After each edit it adds the file's routes, calls, and cross-service type mismatches to the session, and it registers Carrick's language server. It pairs with the Carrick MCP server, which lets agents search functions by intent rather than name.",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.132",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Carrick",
|
|
7
7
|
"email": "hello@carrick.tools"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a handler still works when no request body arrives (carrick#2814).
|
|
3
|
+
*
|
|
4
|
+
* A server library hands a handler `undefined` where a request carried no
|
|
5
|
+
* body, whatever the handler's type says. A handler typed `{ limit?: number }`
|
|
6
|
+
* that destructures the body, or reads `body.limit` without `?.`, throws on
|
|
7
|
+
* that call, so a route that dereferences its body requires one even when its
|
|
8
|
+
* type has no required member. These readers answer the question from the
|
|
9
|
+
* handler's own source, by shape and with no library name consulted:
|
|
10
|
+
*
|
|
11
|
+
* - every read of the body tolerates `undefined`: `body ?? {}`, `body || {}`,
|
|
12
|
+
* `body?.x`, a comparison, `typeof body`, `!body`, a condition, an object
|
|
13
|
+
* spread, or a binding default (`{ body = {} }`, `(payload = {}) =>`);
|
|
14
|
+
* - a name the body is bound to is followed to each of its own reads;
|
|
15
|
+
* - anything else (a destructure with no default, a plain member read, the
|
|
16
|
+
* body handed to a function) dereferences it, or may, so the answer is no.
|
|
17
|
+
*
|
|
18
|
+
* Conservative by construction: a read these rules do not recognise answers
|
|
19
|
+
* no, and the check keeps the reading it had without the mark.
|
|
20
|
+
*/
|
|
21
|
+
import { type BindingElement, type ParameterDeclaration } from 'ts-morph';
|
|
22
|
+
import type { HandlerFunction } from './stated-params.js';
|
|
23
|
+
/**
|
|
24
|
+
* A binding that receives the body, or a payload, tolerates `undefined`: it
|
|
25
|
+
* has a default, or it binds a name whose every read tolerates it. A pattern
|
|
26
|
+
* with no default destructures `undefined` and throws.
|
|
27
|
+
*/
|
|
28
|
+
export declare function bindingToleratesAbsence(binding: ParameterDeclaration | BindingElement): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* True when the handler reads its request body, and every read tolerates the
|
|
31
|
+
* body being absent. False when it reads none: a body read some other way
|
|
32
|
+
* (handed on with the request, read by a method) cannot be seen here.
|
|
33
|
+
*
|
|
34
|
+
* A body read is the `body` member of a value rooted at one of the handler's
|
|
35
|
+
* parameters (`request.body`, `ctx.request.body`), or a binding that takes
|
|
36
|
+
* `body` out of a parameter or out of such a value (`({ body }) =>`,
|
|
37
|
+
* `const { body } = request`). A parameter the body is read through must not
|
|
38
|
+
* be handed on whole (`service.create(request)`): what the callee reads off
|
|
39
|
+
* it is not seen.
|
|
40
|
+
*/
|
|
41
|
+
export declare function handlerToleratesAbsentBody(handler: HandlerFunction): boolean;
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a handler still works when no request body arrives (carrick#2814).
|
|
3
|
+
*
|
|
4
|
+
* A server library hands a handler `undefined` where a request carried no
|
|
5
|
+
* body, whatever the handler's type says. A handler typed `{ limit?: number }`
|
|
6
|
+
* that destructures the body, or reads `body.limit` without `?.`, throws on
|
|
7
|
+
* that call, so a route that dereferences its body requires one even when its
|
|
8
|
+
* type has no required member. These readers answer the question from the
|
|
9
|
+
* handler's own source, by shape and with no library name consulted:
|
|
10
|
+
*
|
|
11
|
+
* - every read of the body tolerates `undefined`: `body ?? {}`, `body || {}`,
|
|
12
|
+
* `body?.x`, a comparison, `typeof body`, `!body`, a condition, an object
|
|
13
|
+
* spread, or a binding default (`{ body = {} }`, `(payload = {}) =>`);
|
|
14
|
+
* - a name the body is bound to is followed to each of its own reads;
|
|
15
|
+
* - anything else (a destructure with no default, a plain member read, the
|
|
16
|
+
* body handed to a function) dereferences it, or may, so the answer is no.
|
|
17
|
+
*
|
|
18
|
+
* Conservative by construction: a read these rules do not recognise answers
|
|
19
|
+
* no, and the check keeps the reading it had without the mark.
|
|
20
|
+
*/
|
|
21
|
+
import { Node, SyntaxKind } from 'ts-morph';
|
|
22
|
+
/** How many names a body may be rebound through before the reads are not followed. */
|
|
23
|
+
const ALIAS_DEPTH = 3;
|
|
24
|
+
/** The member a request object carries its parsed body on. */
|
|
25
|
+
const BODY_MEMBER = 'body';
|
|
26
|
+
/** Wrappers that change nothing about the value at runtime. */
|
|
27
|
+
function isTransparentWrapper(node, child) {
|
|
28
|
+
return ((Node.isParenthesizedExpression(node) ||
|
|
29
|
+
Node.isNonNullExpression(node) ||
|
|
30
|
+
Node.isAsExpression(node) ||
|
|
31
|
+
Node.isSatisfiesExpression(node) ||
|
|
32
|
+
Node.isTypeAssertion(node)) &&
|
|
33
|
+
node.getExpression() === child);
|
|
34
|
+
}
|
|
35
|
+
/** The function the declaration of `name` sits in, whose reads of it are counted. */
|
|
36
|
+
function scopeOf(name) {
|
|
37
|
+
return (name.getFirstAncestor((ancestor) => Node.isFunctionDeclaration(ancestor) ||
|
|
38
|
+
Node.isArrowFunction(ancestor) ||
|
|
39
|
+
Node.isFunctionExpression(ancestor) ||
|
|
40
|
+
Node.isMethodDeclaration(ancestor)) ?? name.getSourceFile());
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Every read of the name `name` declares tolerates `undefined`. A name that is
|
|
44
|
+
* never read tolerates it. A shorthand property (`{ body }`) hands the value
|
|
45
|
+
* on, so it counts as a read that may dereference it.
|
|
46
|
+
*/
|
|
47
|
+
function nameToleratesAbsence(name, depth) {
|
|
48
|
+
if (depth > ALIAS_DEPTH)
|
|
49
|
+
return false;
|
|
50
|
+
const symbol = name.getSymbol();
|
|
51
|
+
const scope = scopeOf(name);
|
|
52
|
+
if (!symbol || !scope)
|
|
53
|
+
return false;
|
|
54
|
+
for (const shorthand of scope.getDescendantsOfKind(SyntaxKind.ShorthandPropertyAssignment)) {
|
|
55
|
+
if (shorthand.getName() === name.getText())
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
for (const reference of scope.getDescendantsOfKind(SyntaxKind.Identifier)) {
|
|
59
|
+
if (reference === name || reference.getSymbol() !== symbol)
|
|
60
|
+
continue;
|
|
61
|
+
if (!valueToleratesAbsence(reference, depth))
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
/** The read `value` (an expression that evaluates to the body) tolerates `undefined`. */
|
|
67
|
+
function valueToleratesAbsence(value, depth) {
|
|
68
|
+
let node = value;
|
|
69
|
+
let parent = node.getParent();
|
|
70
|
+
while (parent && isTransparentWrapper(parent, node)) {
|
|
71
|
+
node = parent;
|
|
72
|
+
parent = node.getParent();
|
|
73
|
+
}
|
|
74
|
+
if (!parent)
|
|
75
|
+
return false;
|
|
76
|
+
if (Node.isBinaryExpression(parent)) {
|
|
77
|
+
const operator = parent.getOperatorToken().getKind();
|
|
78
|
+
if (parent.getLeft() === node &&
|
|
79
|
+
(operator === SyntaxKind.QuestionQuestionToken ||
|
|
80
|
+
operator === SyntaxKind.BarBarToken ||
|
|
81
|
+
operator === SyntaxKind.AmpersandAmpersandToken)) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
return (operator === SyntaxKind.EqualsEqualsEqualsToken ||
|
|
85
|
+
operator === SyntaxKind.ExclamationEqualsEqualsToken ||
|
|
86
|
+
operator === SyntaxKind.EqualsEqualsToken ||
|
|
87
|
+
operator === SyntaxKind.ExclamationEqualsToken);
|
|
88
|
+
}
|
|
89
|
+
if ((Node.isPropertyAccessExpression(parent) || Node.isElementAccessExpression(parent)) &&
|
|
90
|
+
parent.getExpression() === node) {
|
|
91
|
+
return parent.hasQuestionDotToken();
|
|
92
|
+
}
|
|
93
|
+
if (Node.isTypeOfExpression(parent))
|
|
94
|
+
return true;
|
|
95
|
+
if (Node.isPrefixUnaryExpression(parent)) {
|
|
96
|
+
return parent.getOperatorToken() === SyntaxKind.ExclamationToken;
|
|
97
|
+
}
|
|
98
|
+
if (Node.isIfStatement(parent))
|
|
99
|
+
return parent.getExpression() === node;
|
|
100
|
+
if (Node.isConditionalExpression(parent))
|
|
101
|
+
return parent.getCondition() === node;
|
|
102
|
+
if (Node.isSpreadAssignment(parent))
|
|
103
|
+
return true;
|
|
104
|
+
if (Node.isVariableDeclaration(parent) && parent.getInitializer() === node) {
|
|
105
|
+
const name = parent.getNameNode();
|
|
106
|
+
return Node.isIdentifier(name) && nameToleratesAbsence(name, depth + 1);
|
|
107
|
+
}
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* A binding that receives the body, or a payload, tolerates `undefined`: it
|
|
112
|
+
* has a default, or it binds a name whose every read tolerates it. A pattern
|
|
113
|
+
* with no default destructures `undefined` and throws.
|
|
114
|
+
*/
|
|
115
|
+
export function bindingToleratesAbsence(binding) {
|
|
116
|
+
if (binding.hasInitializer())
|
|
117
|
+
return true;
|
|
118
|
+
const name = binding.getNameNode();
|
|
119
|
+
return Node.isIdentifier(name) && nameToleratesAbsence(name, 0);
|
|
120
|
+
}
|
|
121
|
+
/** The name a binding element takes out of its object: `body` in `{ body }` and `{ body: b }`. */
|
|
122
|
+
function memberNameOf(element) {
|
|
123
|
+
return element.getPropertyNameNode()?.getText() ?? element.getName();
|
|
124
|
+
}
|
|
125
|
+
/** The root identifier of a member chain (`ctx` in `ctx.request.body`), through transparent wrappers. */
|
|
126
|
+
function rootOf(expression) {
|
|
127
|
+
let root = expression;
|
|
128
|
+
while (Node.isPropertyAccessExpression(root) ||
|
|
129
|
+
Node.isElementAccessExpression(root) ||
|
|
130
|
+
Node.isNonNullExpression(root) ||
|
|
131
|
+
Node.isParenthesizedExpression(root)) {
|
|
132
|
+
root = root.getExpression();
|
|
133
|
+
}
|
|
134
|
+
return root;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* True when the handler reads its request body, and every read tolerates the
|
|
138
|
+
* body being absent. False when it reads none: a body read some other way
|
|
139
|
+
* (handed on with the request, read by a method) cannot be seen here.
|
|
140
|
+
*
|
|
141
|
+
* A body read is the `body` member of a value rooted at one of the handler's
|
|
142
|
+
* parameters (`request.body`, `ctx.request.body`), or a binding that takes
|
|
143
|
+
* `body` out of a parameter or out of such a value (`({ body }) =>`,
|
|
144
|
+
* `const { body } = request`). A parameter the body is read through must not
|
|
145
|
+
* be handed on whole (`service.create(request)`): what the callee reads off
|
|
146
|
+
* it is not seen.
|
|
147
|
+
*/
|
|
148
|
+
export function handlerToleratesAbsentBody(handler) {
|
|
149
|
+
const parameters = new Set(handler.getParameters());
|
|
150
|
+
const parameterOf = (identifier) => {
|
|
151
|
+
if (!Node.isIdentifier(identifier))
|
|
152
|
+
return undefined;
|
|
153
|
+
for (const declaration of identifier.getSymbol()?.getDeclarations() ?? []) {
|
|
154
|
+
const parameter = Node.isParameterDeclaration(declaration)
|
|
155
|
+
? declaration
|
|
156
|
+
: Node.isBindingElement(declaration)
|
|
157
|
+
? declaration.getFirstAncestorByKind(SyntaxKind.Parameter)
|
|
158
|
+
: undefined;
|
|
159
|
+
if (parameter && parameters.has(parameter))
|
|
160
|
+
return parameter;
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
};
|
|
164
|
+
let reads = 0;
|
|
165
|
+
const readThrough = new Set();
|
|
166
|
+
for (const parameter of handler.getParameters()) {
|
|
167
|
+
for (const element of parameter.getDescendantsOfKind(SyntaxKind.BindingElement)) {
|
|
168
|
+
if (memberNameOf(element) !== BODY_MEMBER)
|
|
169
|
+
continue;
|
|
170
|
+
reads++;
|
|
171
|
+
if (!bindingToleratesAbsence(element))
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
for (const access of handler.getDescendantsOfKind(SyntaxKind.PropertyAccessExpression)) {
|
|
176
|
+
if (access.getName() !== BODY_MEMBER)
|
|
177
|
+
continue;
|
|
178
|
+
const parameter = parameterOf(rootOf(access.getExpression()));
|
|
179
|
+
if (!parameter)
|
|
180
|
+
continue;
|
|
181
|
+
reads++;
|
|
182
|
+
readThrough.add(parameter);
|
|
183
|
+
if (!valueToleratesAbsence(access, 0))
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
for (const declaration of handler.getDescendantsOfKind(SyntaxKind.VariableDeclaration)) {
|
|
187
|
+
const pattern = declaration.getNameNode();
|
|
188
|
+
const initializer = declaration.getInitializer();
|
|
189
|
+
if (!Node.isObjectBindingPattern(pattern) || !initializer)
|
|
190
|
+
continue;
|
|
191
|
+
const parameter = parameterOf(rootOf(initializer));
|
|
192
|
+
if (!parameter)
|
|
193
|
+
continue;
|
|
194
|
+
for (const element of pattern.getElements()) {
|
|
195
|
+
if (memberNameOf(element) !== BODY_MEMBER)
|
|
196
|
+
continue;
|
|
197
|
+
reads++;
|
|
198
|
+
readThrough.add(parameter);
|
|
199
|
+
if (!bindingToleratesAbsence(element))
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
for (const parameter of readThrough) {
|
|
204
|
+
const name = parameter.getNameNode();
|
|
205
|
+
if (!Node.isIdentifier(name))
|
|
206
|
+
continue;
|
|
207
|
+
const symbol = name.getSymbol();
|
|
208
|
+
for (const reference of handler.getDescendantsOfKind(SyntaxKind.Identifier)) {
|
|
209
|
+
if (reference === name || reference.getSymbol() !== symbol)
|
|
210
|
+
continue;
|
|
211
|
+
const parent = reference.getParent();
|
|
212
|
+
const memberRead = parent !== undefined &&
|
|
213
|
+
(Node.isPropertyAccessExpression(parent) || Node.isElementAccessExpression(parent)) &&
|
|
214
|
+
parent.getExpression() === reference;
|
|
215
|
+
const destructured = parent !== undefined &&
|
|
216
|
+
Node.isVariableDeclaration(parent) &&
|
|
217
|
+
parent.getInitializer() === reference &&
|
|
218
|
+
Node.isObjectBindingPattern(parent.getNameNode());
|
|
219
|
+
if (!memberRead && !destructured)
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return reads > 0;
|
|
224
|
+
}
|
|
@@ -55,6 +55,12 @@ export interface SymbolAnchorRequest {
|
|
|
55
55
|
* table keyed by status code captures as its 2xx body, not as the table.
|
|
56
56
|
*/
|
|
57
57
|
consumer_response?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* carrick#2814: the symbol is a request body or payload whose handler works
|
|
60
|
+
* when none is sent (the inferrer's mark for the alias). Copied onto the
|
|
61
|
+
* alias's record, where the check phase reads it.
|
|
62
|
+
*/
|
|
63
|
+
absent_body_tolerated?: true;
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
60
66
|
* Inline literal type text with no addressable symbol (the v1 inline-alias
|
|
@@ -88,6 +94,12 @@ export interface LiteralAnchorRequest {
|
|
|
88
94
|
* onto the alias's record, where the check phase reads it.
|
|
89
95
|
*/
|
|
90
96
|
raw_text_read?: true;
|
|
97
|
+
/**
|
|
98
|
+
* carrick#2814: the text is a request body or payload whose handler works
|
|
99
|
+
* when none is sent. Copied onto the alias's record, where the check phase
|
|
100
|
+
* reads it.
|
|
101
|
+
*/
|
|
102
|
+
absent_body_tolerated?: true;
|
|
91
103
|
}
|
|
92
104
|
/**
|
|
93
105
|
* The declaration a bare name in printed type text meant (carrick#1836).
|
|
@@ -325,6 +337,14 @@ export interface CaptureAliasRecord {
|
|
|
325
337
|
* otherwise, and absent on every record a release before this one stored.
|
|
326
338
|
*/
|
|
327
339
|
raw_text_read?: true;
|
|
340
|
+
/**
|
|
341
|
+
* carrick#2814: the alias is a route's request body, or a subscriber's
|
|
342
|
+
* payload, whose handler works when none is sent. The check phase lets a
|
|
343
|
+
* sender that may send nothing pass against it when its type has no
|
|
344
|
+
* required member. Absent otherwise: the absent body is then judged by the
|
|
345
|
+
* type alone.
|
|
346
|
+
*/
|
|
347
|
+
absent_body_tolerated?: true;
|
|
328
348
|
}
|
|
329
349
|
/** Aggregate fidelity metric, emitted per capture (one service). */
|
|
330
350
|
export interface CaptureFidelity {
|
|
@@ -142,5 +142,9 @@ export declare function decisiveAssignmentLine(plan: ProbePlan): number;
|
|
|
142
142
|
* probe of an `http` pair then ends with a second assignment of that reading,
|
|
143
143
|
* in the wire form. Without an answer the probe is what it always was, byte
|
|
144
144
|
* for byte.
|
|
145
|
+
*
|
|
146
|
+
* `expectedToleratesAbsence` answers, for the receiving side, whether its
|
|
147
|
+
* capture record marks a handler that works when no body is sent
|
|
148
|
+
* (carrick#2814).
|
|
145
149
|
*/
|
|
146
|
-
export declare function buildProbe(spec: CheckPairSpec, packageOf: (serviceName: string) => string, unwidenedAliasFor?: (sent: CheckPairEndpoint) => string | undefined): ProbePlan;
|
|
150
|
+
export declare function buildProbe(spec: CheckPairSpec, packageOf: (serviceName: string) => string, unwidenedAliasFor?: (sent: CheckPairEndpoint) => string | undefined, expectedToleratesAbsence?: (expected: CheckPairEndpoint) => boolean): ProbePlan;
|
|
@@ -132,8 +132,12 @@ export function decisiveAssignmentLine(plan) {
|
|
|
132
132
|
* probe of an `http` pair then ends with a second assignment of that reading,
|
|
133
133
|
* in the wire form. Without an answer the probe is what it always was, byte
|
|
134
134
|
* for byte.
|
|
135
|
+
*
|
|
136
|
+
* `expectedToleratesAbsence` answers, for the receiving side, whether its
|
|
137
|
+
* capture record marks a handler that works when no body is sent
|
|
138
|
+
* (carrick#2814).
|
|
135
139
|
*/
|
|
136
|
-
export function buildProbe(spec, packageOf, unwidenedAliasFor) {
|
|
140
|
+
export function buildProbe(spec, packageOf, unwidenedAliasFor, expectedToleratesAbsence) {
|
|
137
141
|
const id = pairId(spec);
|
|
138
142
|
const direction = directionFor(spec.protocol, spec.type_kind);
|
|
139
143
|
const sentEndpoint = direction.sent === 'producer' ? spec.producer : spec.consumer;
|
|
@@ -210,7 +214,32 @@ export function buildProbe(spec, packageOf, unwidenedAliasFor) {
|
|
|
210
214
|
gateLines.set(push(`type _G_sent_envelope = Assert<Not<PsOnly<Sent, Expected>>>;`), 'sent:envelope');
|
|
211
215
|
gateLines.set(push(`type _G_expected_envelope = Assert<Not<PsOnly<Expected, Sent>>>;`), 'expected:envelope');
|
|
212
216
|
}
|
|
213
|
-
|
|
217
|
+
// carrick#2814: a body the sender may omit (`T | undefined`, `T | void`) is
|
|
218
|
+
// compatible with a receiver that requires none. A receiver requires none
|
|
219
|
+
// when its type has no required member (`{} extends Expected`) AND either
|
|
220
|
+
// its type admits absence (`Expected` holds `undefined` or `void`), or its
|
|
221
|
+
// handler works with nothing sent: the capture record says so
|
|
222
|
+
// (`absent_body_tolerated`), from a handler that defaults the body or reads
|
|
223
|
+
// it only through `?.` / `?? {}`. A handler that destructures or
|
|
224
|
+
// dereferences the body throws on `undefined`, whatever its type says, so
|
|
225
|
+
// without the mark the absent body keeps today's incompatible reading. When
|
|
226
|
+
// it holds, the absent members are dropped from the sent side and what
|
|
227
|
+
// remains is compared as before. The request direction of HTTP, and socket
|
|
228
|
+
// and pub/sub payloads (the subscriber is `expected`); a GraphQL request is
|
|
229
|
+
// not read this way.
|
|
230
|
+
const absentBodyAllowed = (spec.protocol === 'http' && spec.type_kind === 'request') ||
|
|
231
|
+
spec.protocol === 'socket' ||
|
|
232
|
+
spec.protocol === 'pubsub';
|
|
233
|
+
const toleratesAbsence = expectedToleratesAbsence?.(expectedEndpoint) === true;
|
|
234
|
+
const sentBodyType = (sent) => {
|
|
235
|
+
const dropped = `Exclude<${sent}, undefined | void>`;
|
|
236
|
+
const byHandler = toleratesAbsence ? dropped : sent;
|
|
237
|
+
return `[Extract<${sent}, undefined | void>] extends [never] ? ${sent} : [{}] extends [Expected] ? ([Extract<Expected, undefined | void>] extends [never] ? ${byHandler} : ${dropped}) : ${sent}`;
|
|
238
|
+
};
|
|
239
|
+
if (absentBodyAllowed)
|
|
240
|
+
push(`type SentBody = ${sentBodyType('Sent')};`);
|
|
241
|
+
const sentBody = absentBodyAllowed ? 'SentBody' : 'Sent';
|
|
242
|
+
push(`declare const sent: ${sentBody};`);
|
|
214
243
|
let assignmentLine;
|
|
215
244
|
if (spec.protocol === 'graphql') {
|
|
216
245
|
// GraphQL selection-set semantics (v1 `unwrapGraphqlPayload` parity): the
|
|
@@ -304,7 +333,7 @@ export function buildProbe(spec, packageOf, unwidenedAliasFor) {
|
|
|
304
333
|
// that name — and there the declared name no longer describes what travels.
|
|
305
334
|
for (const line of jsonWireDeclarations(''))
|
|
306
335
|
push(line);
|
|
307
|
-
push(`type WireSent = [
|
|
336
|
+
push(`type WireSent = [${sentBody}] extends [Expected] ? ${sentBody} : (JsonWireSame<JsonWire<${sentBody}>, ${sentBody}> extends true ? ${sentBody} : JsonWire<${sentBody}>);`);
|
|
308
337
|
push(`declare const sentWire: WireSent;`);
|
|
309
338
|
wireAssignmentLine = push(`const expectedWire: Expected = sentWire;`);
|
|
310
339
|
}
|
|
@@ -333,7 +362,12 @@ export function buildProbe(spec, packageOf, unwidenedAliasFor) {
|
|
|
333
362
|
push(`type _G_unwidened_any = Assert<Not<IsAny<${local}>>>;`);
|
|
334
363
|
push(`type _G_unwidened_unknown = Assert<Not<IsUnknown<${local}>>>;`);
|
|
335
364
|
push(`type _G_unwidened_never = Assert<Not<IsNever<${local}>>>;`);
|
|
336
|
-
|
|
365
|
+
let unwidenedBody = local;
|
|
366
|
+
if (absentBodyAllowed) {
|
|
367
|
+
push(`type SentUnwidenedBody = ${sentBodyType(local)};`);
|
|
368
|
+
unwidenedBody = 'SentUnwidenedBody';
|
|
369
|
+
}
|
|
370
|
+
push(`type WireSentUnwidened = [${unwidenedBody}] extends [Expected] ? ${unwidenedBody} : (JsonWireSame<JsonWire<${unwidenedBody}>, ${unwidenedBody}> extends true ? ${unwidenedBody} : JsonWire<${unwidenedBody}>);`);
|
|
337
371
|
push(`declare const sentWireUnwidened: WireSentUnwidened;`);
|
|
338
372
|
push(`const expectedWireUnwidened: Expected = sentWireUnwidened;`);
|
|
339
373
|
}
|
|
@@ -196,7 +196,7 @@ export async function runCheck(opts, onProgress) {
|
|
|
196
196
|
const unresolved = [];
|
|
197
197
|
for (const spec of opts.pairs) {
|
|
198
198
|
try {
|
|
199
|
-
plans.push(buildProbe(spec, ws.packageOf, unwidenedAliasIn(aliasRecords)));
|
|
199
|
+
plans.push(buildProbe(spec, ws.packageOf, unwidenedAliasIn(aliasRecords), absenceToleratedIn(aliasRecords)));
|
|
200
200
|
}
|
|
201
201
|
catch {
|
|
202
202
|
unresolved.push({
|
|
@@ -404,6 +404,13 @@ function unwidenedAliasIn(aliasRecords) {
|
|
|
404
404
|
return record.alias;
|
|
405
405
|
};
|
|
406
406
|
}
|
|
407
|
+
/**
|
|
408
|
+
* carrick#2814: whether the receiving side's capture record marks a handler
|
|
409
|
+
* that works when no body is sent.
|
|
410
|
+
*/
|
|
411
|
+
function absenceToleratedIn(aliasRecords) {
|
|
412
|
+
return (expected) => aliasRecords.get(expected.service_name)?.get(expected.alias)?.absent_body_tolerated === true;
|
|
413
|
+
}
|
|
407
414
|
/**
|
|
408
415
|
* Capture-time deep-decay pre-gate (adversarial-review finding 1): a
|
|
409
416
|
* member-level `any`/`unknown` recorded by the capture self-check with no
|
|
@@ -268,11 +268,21 @@ function buildSurfaceSpanIndex(surfaceSource) {
|
|
|
268
268
|
};
|
|
269
269
|
}
|
|
270
270
|
/**
|
|
271
|
-
*
|
|
272
|
-
*
|
|
271
|
+
* A literal anchor passes the inferrer's marks to its record, where the check
|
|
272
|
+
* phase reads them: a body read as raw text (carrick#1842), and a body whose
|
|
273
|
+
* handler works when none is sent (carrick#2814). A symbol anchor passes the
|
|
274
|
+
* second only: the model named the body's type, the handler is still read.
|
|
273
275
|
*/
|
|
274
|
-
function
|
|
275
|
-
|
|
276
|
+
function literalMarks(request) {
|
|
277
|
+
if (request.kind === 'symbol') {
|
|
278
|
+
return request.absent_body_tolerated ? { absent_body_tolerated: true } : {};
|
|
279
|
+
}
|
|
280
|
+
if (request.kind !== 'literal')
|
|
281
|
+
return {};
|
|
282
|
+
return {
|
|
283
|
+
...(request.raw_text_read ? { raw_text_read: true } : {}),
|
|
284
|
+
...(request.absent_body_tolerated ? { absent_body_tolerated: true } : {}),
|
|
285
|
+
};
|
|
276
286
|
}
|
|
277
287
|
/** An alias that never reached a capture-native tier: the failure reason was
|
|
278
288
|
* recorded at demotion time; the surface line is `unknown` by construction. */
|
|
@@ -294,7 +304,7 @@ function demotedRecord(anchor) {
|
|
|
294
304
|
...(anchor.request.kind === 'literal' && anchor.namesUnemittedModule
|
|
295
305
|
? { unresolved_in_tree: [unemittedModuleProvenance()] }
|
|
296
306
|
: {}),
|
|
297
|
-
...
|
|
307
|
+
...literalMarks(anchor.request),
|
|
298
308
|
};
|
|
299
309
|
}
|
|
300
310
|
function checkedRecord(anchor, ctx) {
|
|
@@ -476,7 +486,7 @@ function checkedRecord(anchor, ctx) {
|
|
|
476
486
|
.map((p) => unresolvedInTreeProvenance(p, [...unfoundNames].sort())),
|
|
477
487
|
}
|
|
478
488
|
: {}),
|
|
479
|
-
...
|
|
489
|
+
...literalMarks(anchor.request),
|
|
480
490
|
};
|
|
481
491
|
}
|
|
482
492
|
/** Resolve a relative specifier from `fromAbs` to a tree file, if present. */
|
|
@@ -63,7 +63,7 @@ export declare class StatedParams {
|
|
|
63
63
|
* reference, a second callable argument or property there. What such a
|
|
64
64
|
* function (a middleware) does with the request is not read here.
|
|
65
65
|
*/
|
|
66
|
-
|
|
66
|
+
handsInAnotherFunction(registration: Node, handler: HandlerFunction): boolean;
|
|
67
67
|
/**
|
|
68
68
|
* A type argument the source writes for this route: on a call the handler
|
|
69
69
|
* is passed to (the registration, or a wrapper that makes the handler),
|
|
@@ -234,6 +234,18 @@ export declare class TypeInferrer {
|
|
|
234
234
|
* truncation.
|
|
235
235
|
*/
|
|
236
236
|
private inferFunctionParam;
|
|
237
|
+
/**
|
|
238
|
+
* carrick#2814: mark a route's request body as one its handler tolerates
|
|
239
|
+
* going unsent, when the handler is in reach and every read of the body
|
|
240
|
+
* survives `undefined` (`absent-body.ts`). The check then lets a caller that
|
|
241
|
+
* may send nothing call a route whose body type has no required member.
|
|
242
|
+
*
|
|
243
|
+
* No mark where the handler cannot be found, where a validator the
|
|
244
|
+
* registration declares reads the body first (a schema, or another function
|
|
245
|
+
* handed in beside the handler), or where the handler reads no body it can
|
|
246
|
+
* see: the check keeps the reading it had.
|
|
247
|
+
*/
|
|
248
|
+
private withAbsentBodyMark;
|
|
237
249
|
/**
|
|
238
250
|
* Resolve a `function_param` locator against a function's parameter list.
|
|
239
251
|
* Three shapes, tried in order:
|