@descryy/adapter-python 0.2.0 → 0.3.1

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/orm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA0CH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAwD;IACnF,UAAU,EAAE,IAAI,GAAG,CAAC;QAClB,gBAAgB;QAChB,yBAAyB;QACzB,4BAA4B;QAC5B,gCAAgC;KACjC,CAAC;IACF,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;CAC5E,CAAC;AAEF,yFAAyF;AACzF,MAAM,cAAc,GAAwD;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,yEAAyE;IACzE,+EAA+E;IAC/E,6DAA6D;IAC7D,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IACrE,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;CACX,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,YAAY,GAAwD;IACxE,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC3E;;;;;;;;;OASG;IACH,MAAM,EAAE,IAAI,GAAG,CAAC;QACd,YAAY;QACZ,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;CACH,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC/C,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,SAAS;IACT,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,MAAqB,EAAU,EAAE,CAC/C,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,SAAsB,EAAE,SAAuB;IAC1E,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,SAAS,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,SAAuB;IACvE,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CACpB,SAAsB,EACtB,SAAuB;IAEvB,MAAM,OAAO,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,IAAI,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3E,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IAChF,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,4EAA4E;QAC5E,mCAAmC;QACnC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACtF,CAAC;IAED,+EAA+E;IAC/E,yEAAyE;IACzE,wCAAwC;IACxC,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IACxC,IAAI,UAAU,KAAK,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACxE,CAAC;IAED,8EAA8E;IAC9E,sEAAsE;IACtE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AACrF,CAAC;AAED,8DAA8D;AAC9D,SAAS,OAAO,CACd,UAAkC,EAClC,IAA4B,EAC5B,SAAuB;IAEvB,MAAM,KAAK,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;IACpE,MAAM,MAAM,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1D,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC;IAClG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAI1B;IACC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACjF,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;YAAE,SAAS;QACxD,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,WAAW,IAAI,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;YACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,2EAA2E;IAC3E,oCAAoC;IACpC,EAAE;IACF,yEAAyE;IACzE,6EAA6E;IAC7E,+EAA+E;IAC/E,0CAA0C;IAC1C,EAAE;IACF,+EAA+E;IAC/E,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,+EAA+E;IAC/E,SAAS;IACT,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACrE,IACE,KAAK,CAAC,SAAS,KAAK,YAAY;QAChC,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,KAAK,KAAK,IAAI,EACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK;QACL,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAwCH;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAwD;IACnF,UAAU,EAAE,IAAI,GAAG,CAAC;QAClB,gBAAgB;QAChB,yBAAyB;QACzB,4BAA4B;QAC5B,gCAAgC;KACjC,CAAC;IACF,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;CAC5E,CAAC;AAEF,yFAAyF;AACzF,MAAM,cAAc,GAAwD;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC;IACrE,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;CACX,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,YAAY,GAAwD;IACxE,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,kFAAkF;IAClF,MAAM,EAAE,IAAI,GAAG,CAAC;QACd,YAAY;QACZ,eAAe;QACf,iBAAiB;QACjB,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC/C,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,SAAS;IACT,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,MAAqB,EAAU,EAAE,CAC/C,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,SAAsB,EAAE,SAAuB;IAC1E,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,SAAS,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,SAAuB;IACvE,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACpB,SAAsB,EACtB,SAAuB;IAEvB,MAAM,OAAO,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,IAAI,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3E,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IAChF,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,8EAA8E;QAC9E,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACtF,CAAC;IAED,qEAAqE;IACrE,oFAAoF;IACpF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IACxC,IAAI,UAAU,KAAK,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IACxE,CAAC;IAED,wFAAwF;IACxF,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AACrF,CAAC;AAED,8DAA8D;AAC9D,SAAS,OAAO,CACd,UAAkC,EAClC,IAA4B,EAC5B,SAAuB;IAEvB,MAAM,KAAK,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;IACpE,MAAM,MAAM,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1D,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC;IAClG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAI1B;IACC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACjF,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;YAAE,SAAS;QACxD,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,WAAW,IAAI,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;YACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,sEAAsE;IACtE,2EAA2E;IAC3E,uEAAuE;IACvE,oEAAoE;IACpE,wEAAwE;IACxE,oEAAoE;IACpE,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACrE,IACE,KAAK,CAAC,SAAS,KAAK,YAAY;QAChC,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,KAAK,KAAK,IAAI,EACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK;QACL,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE;KACjC,CAAC;AACJ,CAAC"}
@@ -1,45 +1,27 @@
1
1
  /**
2
2
  * The Pydantic extractor for Python — a `DTO` and the shape it declares.
3
3
  *
4
- * **A `DTO` is a transport-boundary claim, and this file is where it is earned.**
5
- * DEC-043 declined to emit one from the language adapter and was right to: the
6
- * conformance corpus holds three structurally identical classes, one expected to
7
- * be a `MODEL` and two `DTO`s, and nothing in Python separates them but their
8
- * names. A name rule there is the thing golden pattern 12 exists to punish.
9
- *
10
- * Pydantic is the evidence that was missing. A class whose base chain reaches
11
- * `BaseModel` **imported from `pydantic`** has declared itself a validated
12
- * boundary object; the framework enforces the shape at runtime. That is a
13
- * declaration, not an inference, and it is the same standard `orm.ts` holds a
14
- * `MODEL` to — a declarative base and a mapped column.
15
- *
16
- * Until now only `adapter-openapi` declared `DTO`, and it needs a published
17
- * contract. This is the first *language* adapter to earn one.
18
- *
19
- * ## What the shape is, measured rather than assumed
20
- *
21
- * §8 asked for "the validation rules a route enforces", which invites reading
22
- * `ge`, `le`, `min_length` and friends. Counted across 515 models on two real
23
- * repositories **before this file was written**, those total **18** — two of
24
- * them on dispatch's 449 models. Ranked by that number they are not the payload.
25
- *
26
- * What Pydantic writes down at scale is **presence and type**: 1,409 annotated
27
- * fields on dispatch, 874 of them optional. "This field is required" is a
28
- * validation rule the route enforces on every request — a POST without it is a
29
- * 422 — and it is stated in every model rather than in eighteen of them.
30
- *
31
- * So constraints are carried **where they are written** and never invented, and
32
- * the capability is described by what it actually reads. `attrs.fields` is the
33
- * same key `orm.ts` uses and the same key golden pattern 05 compares.
34
- *
35
- * ## What is deliberately not read
36
- *
37
- * A `@field_validator` body is arbitrary Python. 76 of them across the two
38
- * repositories say something true about what the route accepts, and none of it
39
- * is readable without executing the code. They are disclosed as an
40
- * unreadable-constraint count on the node rather than silently treated as
41
- * absent — the same distinction `orm.ts` draws with `fieldsUndecided`, and the
42
- * one `nullable=FLAG` exists to protect.
4
+ * A `DTO` is a transport-boundary claim: DEC-043 declined to emit one from
5
+ * the language adapter, since the conformance corpus has three structurally
6
+ * identical classes (one `MODEL`, two `DTO`s) with nothing but names to
7
+ * separate them — a name rule is what golden pattern 12 punishes. A class
8
+ * whose base chain reaches `BaseModel` imported from `pydantic` has declared
9
+ * itself a validated boundary object, framework-enforced at runtime — same
10
+ * standard `orm.ts` holds `MODEL` to. First language adapter to earn `DTO`
11
+ * (`adapter-openapi` needed a published contract).
12
+ *
13
+ * The shape is measured, not assumed: `ge`/`le`/`min_length` etc. total 18
14
+ * across 515 models on two repositories — not the payload. What Pydantic
15
+ * writes at scale is presence and type (1,409 annotated fields on dispatch,
16
+ * 874 optional): "this field is required" is a rule enforced on every
17
+ * request, stated in every model rather than eighteen of them. Constraints
18
+ * are carried where written, never invented; `attrs.fields` matches
19
+ * `orm.ts`'s key, the one golden pattern 05 compares.
20
+ *
21
+ * Deliberately not read: a `@field_validator` body is arbitrary Python (76
22
+ * of them across the two repos say something true and none is statically
23
+ * readable) — disclosed as an unreadable-constraint count, the same
24
+ * distinction `orm.ts` draws with `fieldsUndecided`.
43
25
  */
44
26
  import type { PyAttribute } from "./orm.ts";
45
27
  /** Modules whose serializer roots are DRF's own. */
@@ -48,11 +30,9 @@ export declare const DRF_SERIALIZER_ROOTS: ReadonlySet<string>;
48
30
  /** Is this base name, with this origin module, one of DRF's own serializer roots? */
49
31
  export declare function isDrfSerializerRoot(baseName: string, originModule: string | undefined): boolean;
50
32
  /**
51
- * The shape a DRF serializer declares.
52
- *
53
- * Returns `null` where the class declares no field at all — the same guard
54
- * `ormShapeOf` uses to keep a project's own serializer base out of the graph
55
- * as a `DTO` of its own.
33
+ * The shape a DRF serializer declares, or `null` when the class declares no
34
+ * field — the same guard `ormShapeOf` uses to keep a serializer base out of
35
+ * the graph as a `DTO` of its own.
56
36
  */
57
37
  export declare function drfShapeOf(input: {
58
38
  readonly attributes: readonly PyAttribute[];
@@ -60,23 +40,45 @@ export declare function drfShapeOf(input: {
60
40
  /** Modules whose `BaseModel` is Pydantic's. A local class of that name is not. */
61
41
  export declare const PYDANTIC_MODULES: ReadonlySet<string>;
62
42
  /**
63
- * Bases that are Pydantic's own roots.
64
- *
65
- * `BaseSettings` is included and moved package in Pydantic v2 — it lives in
66
- * `pydantic_settings` now and in `pydantic` before that, which is why the module
67
- * set carries both. Restricting a rule to one spelling of a library's own move
68
- * is the mistake DEC-069 recorded when `collections.abc.Callable` was missed.
43
+ * Bases that are Pydantic's own roots. `BaseSettings` moved package in v2
44
+ * (`pydantic_settings`, was `pydantic`), so both are carried — restricting to
45
+ * one spelling of a library's move is the mistake DEC-069 recorded for
46
+ * `collections.abc.Callable`.
69
47
  */
70
48
  export declare const PYDANTIC_ROOTS: ReadonlySet<string>;
49
+ /**
50
+ * `BaseModel`'s own public API surface — attributes and methods `BaseModel`
51
+ * itself provides, not a subclass's declared fields.
52
+ *
53
+ * This exists for `extract.ts`'s `baseChainIsFieldFree`: an unresolvable base
54
+ * ("nothing this run declares") is treated as contributing no fields of its
55
+ * own, which is correct for SQLAlchemy's bare `DeclarativeBase` marker class
56
+ * but wrong for `BaseModel` — external and unresolvable in exactly the same
57
+ * way, but with a real, stable set of its own members. A read of
58
+ * `model_dump()` or `model_fields_set` on a Pydantic subclass is not an
59
+ * undeclared-field access; without this list it was flagged as one (a real
60
+ * false positive reported as fact — "any call reaching this read raises when
61
+ * it runs" — on code that runs correctly).
62
+ *
63
+ * v2 and v1 combined, since this adapter recognises both (`PYDANTIC_MODULES`
64
+ * carries `pydantic.v1` alongside `pydantic`): the v2 `model_*` methods, plus
65
+ * the v1-compat aliases v2 still ships for migration (`dict`, `json`,
66
+ * `copy`, `parse_obj`, `parse_raw`, `parse_file`, `from_orm`, `schema`,
67
+ * `schema_json`, `validate`, `construct`) and are a v1 project's own native
68
+ * spelling. Kept as a closed, named, well-commented list rather than a
69
+ * heuristic — a false "this exists" is unreachable this way (no name outside
70
+ * `BaseModel`'s real surface is ever added), and the cost of a genuine
71
+ * user-declared field that happens to collide with one of these reserved
72
+ * names is a missed unresolved-field flag on that one field, not a wrong
73
+ * claim.
74
+ */
75
+ export declare const PYDANTIC_MODEL_MEMBERS: ReadonlySet<string>;
71
76
  /** Constraint keywords Pydantic enforces, as opposed to documents. */
72
77
  export declare const CONSTRAINT_KEYWORDS: ReadonlySet<string>;
73
78
  /**
74
- * Keywords that describe rather than constrain.
75
- *
76
- * `description` and `title` are 189 of dispatch's 214 `Field(...)` keywords.
77
- * Counting them as validation would make the capability look an order of
78
- * magnitude larger than it is, which is the reporting failure this project
79
- * exists to avoid.
79
+ * Keywords that describe rather than constrain. `description`/`title` are
80
+ * 189 of dispatch's 214 `Field(...)` keywords — counting them as validation
81
+ * would inflate the capability by an order of magnitude.
80
82
  */
81
83
  export declare const DOCUMENTATION_KEYWORDS: ReadonlySet<string>;
82
84
  export interface DtoField {
@@ -84,16 +86,12 @@ export interface DtoField {
84
86
  /** The annotation as written — never evaluated. */
85
87
  readonly type: string | null;
86
88
  /**
87
- * Must a request supply this field at all?
88
- *
89
- * **Distinct from `nullable`, and Pydantic is the reason.** `x: Optional[int]`
90
- * with no default is *required and nullable*: the caller must pass it, and may
91
- * pass null. `x: int = 5` is *optional and not nullable*. Collapsing the two
92
- * into one flag loses exactly the rule a request generator needs — it would
93
- * omit a required field, get a 422, and report it as a finding.
94
- *
95
- * This is the validation rule that is written on every one of 1,694 fields
96
- * across two repositories, as against the 18 that carry a range constraint.
89
+ * Must a request supply this field at all? Distinct from `nullable`:
90
+ * `x: Optional[int]` with no default is required AND nullable; `x: int = 5`
91
+ * is optional and not nullable. Collapsing the two would make a request
92
+ * generator omit a required field, get a 422, and report it as a finding.
93
+ * Written on every one of 1,694 fields across two repositories, against 18
94
+ * that carry a range constraint.
97
95
  */
98
96
  readonly required: boolean;
99
97
  /** May the value be null once supplied? `Optional[X]`, `X | None`. */
@@ -104,10 +102,9 @@ export interface DtoField {
104
102
  export interface DtoShape {
105
103
  readonly fields: readonly DtoField[];
106
104
  /**
107
- * Fields whose constraint is written in a form this reader cannot evaluate —
108
- * `min_length=LIMIT`. Listed rather than dropped, for the same reason
109
- * `orm.ts` lists an undecided nullability: the source answered and this
110
- * reader failed to read it, which is not the same as the source being silent.
105
+ * Fields whose constraint (e.g. `min_length=LIMIT`) can't be evaluated.
106
+ * Listed, not dropped — same reason `orm.ts` lists undecided nullability:
107
+ * the source answered and this reader failed to read it.
111
108
  */
112
109
  readonly undecided: readonly string[];
113
110
  /** `@field_validator` and friends: real rules, none of them statically readable. */
@@ -116,32 +113,20 @@ export interface DtoShape {
116
113
  /** Is this base name, with this origin module, one of Pydantic's own roots? */
117
114
  export declare function isPydanticRoot(baseName: string, originModule: string | undefined): boolean;
118
115
  /**
119
- * Does this field have a default, so a request may omit it?
120
- *
121
- * `x: int = 5` does. `x: int` does not. The case in between is Pydantic's own
122
- * spelling and it is the one that was read backwards first:
123
- *
124
- * hostname: str = Field(..., min_length=3)
125
- *
126
- * The `...` is an **explicit "no default"** — Pydantic's documented way of
127
- * writing a required field that also carries constraints. Syntactically it is an
128
- * assignment, so the naive reading is "has a default", and `hostname: str`
129
- * carrying a `min_length` came out **nullable** — a required field reported as
130
- * optional. That is the wrong direction to be wrong in: a request generator
131
- * would omit it and call the resulting 422 a finding.
132
- *
133
- * Caught by the field's own type contradicting its verdict — `str`, not
134
- * `str | None`, marked nullable — rather than by any check.
116
+ * Does this field have a default, so a request may omit it? `x: int = 5`
117
+ * does, `x: int` doesn't. The tricky case: `Field(..., min_length=3)` — the
118
+ * `...` is Pydantic's explicit "no default" for a required field that also
119
+ * carries constraints. Read naively as an assignment, this was misclassified
120
+ * as having a default (a required field reported as optional — the wrong
121
+ * direction, since a request generator would omit it and call the resulting
122
+ * 422 a finding). Caught by the type (`str`, not `str | None`) contradicting the verdict.
135
123
  */
136
124
  export declare function hasDefault(annotated: boolean, attribute: PyAttribute | undefined): boolean;
137
125
  /** Does an annotation admit absence — `Optional[X]`, `X | None`, `Any`? */
138
126
  export declare function annotationIsNullable(annotation: string | null | undefined): boolean;
139
127
  /**
140
- * The shape a Pydantic class declares.
141
- *
142
- * `attributes` is every assignment in the class body, as `extract.py` recorded
143
- * it — the same input `orm.ts` reads, which is why this extractor cost almost
144
- * nothing to add.
128
+ * The shape a Pydantic class declares. `attributes` is every class-body
129
+ * assignment as `extract.py` recorded it — the same input `orm.ts` reads.
145
130
  */
146
131
  export declare function dtoShapeOf(input: {
147
132
  readonly attributes: readonly PyAttribute[];
@@ -1 +1 @@
1
- {"version":3,"file":"pydantic.d.ts","sourceRoot":"","sources":["../src/pydantic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAe5C,oDAAoD;AACpD,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAGrD,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAKnD,CAAC;AAEH,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQ/F;AAkBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,GAAG,QAAQ,GAAG,IAAI,CA6ClG;AAED,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAO/C,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAK7C,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAclD,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAOrD,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,oFAAoF;IACpF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAU1F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAc1F;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGnF;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACtG,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GAAG,QAAQ,CAgDX;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAGjE"}
1
+ {"version":3,"file":"pydantic.d.ts","sourceRoot":"","sources":["../src/pydantic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ5C,oDAAoD;AACpD,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAGrD,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAKnD,CAAC;AAEH,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQ/F;AAiBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,GAAG,QAAQ,GAAG,IAAI,CA2ClG;AAED,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAO/C,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAK7C,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CA6BrD,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAclD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAOrD,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,oFAAoF;IACpF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAS1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAc1F;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGnF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACtG,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GAAG,QAAQ,CA+CX;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAGjE"}
package/dist/pydantic.js CHANGED
@@ -1,58 +1,33 @@
1
1
  /**
2
2
  * The Pydantic extractor for Python — a `DTO` and the shape it declares.
3
3
  *
4
- * **A `DTO` is a transport-boundary claim, and this file is where it is earned.**
5
- * DEC-043 declined to emit one from the language adapter and was right to: the
6
- * conformance corpus holds three structurally identical classes, one expected to
7
- * be a `MODEL` and two `DTO`s, and nothing in Python separates them but their
8
- * names. A name rule there is the thing golden pattern 12 exists to punish.
4
+ * A `DTO` is a transport-boundary claim: DEC-043 declined to emit one from
5
+ * the language adapter, since the conformance corpus has three structurally
6
+ * identical classes (one `MODEL`, two `DTO`s) with nothing but names to
7
+ * separate them — a name rule is what golden pattern 12 punishes. A class
8
+ * whose base chain reaches `BaseModel` imported from `pydantic` has declared
9
+ * itself a validated boundary object, framework-enforced at runtime — same
10
+ * standard `orm.ts` holds `MODEL` to. First language adapter to earn `DTO`
11
+ * (`adapter-openapi` needed a published contract).
9
12
  *
10
- * Pydantic is the evidence that was missing. A class whose base chain reaches
11
- * `BaseModel` **imported from `pydantic`** has declared itself a validated
12
- * boundary object; the framework enforces the shape at runtime. That is a
13
- * declaration, not an inference, and it is the same standard `orm.ts` holds a
14
- * `MODEL` to — a declarative base and a mapped column.
13
+ * The shape is measured, not assumed: `ge`/`le`/`min_length` etc. total 18
14
+ * across 515 models on two repositories — not the payload. What Pydantic
15
+ * writes at scale is presence and type (1,409 annotated fields on dispatch,
16
+ * 874 optional): "this field is required" is a rule enforced on every
17
+ * request, stated in every model rather than eighteen of them. Constraints
18
+ * are carried where written, never invented; `attrs.fields` matches
19
+ * `orm.ts`'s key, the one golden pattern 05 compares.
15
20
  *
16
- * Until now only `adapter-openapi` declared `DTO`, and it needs a published
17
- * contract. This is the first *language* adapter to earn one.
18
- *
19
- * ## What the shape is, measured rather than assumed
20
- *
21
- * §8 asked for "the validation rules a route enforces", which invites reading
22
- * `ge`, `le`, `min_length` and friends. Counted across 515 models on two real
23
- * repositories **before this file was written**, those total **18** — two of
24
- * them on dispatch's 449 models. Ranked by that number they are not the payload.
25
- *
26
- * What Pydantic writes down at scale is **presence and type**: 1,409 annotated
27
- * fields on dispatch, 874 of them optional. "This field is required" is a
28
- * validation rule the route enforces on every request — a POST without it is a
29
- * 422 — and it is stated in every model rather than in eighteen of them.
30
- *
31
- * So constraints are carried **where they are written** and never invented, and
32
- * the capability is described by what it actually reads. `attrs.fields` is the
33
- * same key `orm.ts` uses and the same key golden pattern 05 compares.
34
- *
35
- * ## What is deliberately not read
36
- *
37
- * A `@field_validator` body is arbitrary Python. 76 of them across the two
38
- * repositories say something true about what the route accepts, and none of it
39
- * is readable without executing the code. They are disclosed as an
40
- * unreadable-constraint count on the node rather than silently treated as
41
- * absent — the same distinction `orm.ts` draws with `fieldsUndecided`, and the
42
- * one `nullable=FLAG` exists to protect.
21
+ * Deliberately not read: a `@field_validator` body is arbitrary Python (76
22
+ * of them across the two repos say something true and none is statically
23
+ * readable) — disclosed as an unreadable-constraint count, the same
24
+ * distinction `orm.ts` draws with `fieldsUndecided`.
43
25
  */
44
- // ---------------------------------------------------------------------------
45
26
  // DRF's `serializers.Serializer`/`ModelSerializer` — a second, structurally
46
- // different producer of the same `DtoShape` this file already earns for
47
- // Pydantic.
48
- //
49
- // **Not an annotation shape.** Pydantic fields are `AnnAssign` —
50
- // `name: str` — which is why `dtoShapeOf` reads `annotatedFields`. DRF
51
- // fields are field-CONSTRUCTOR assignments — `email =
52
- // serializers.EmailField()` — the same shape `orm.ts` already reads for
53
- // Django's own ORM columns, and for the same reason: neither framework
54
- // spells a field as a type annotation.
55
- // ---------------------------------------------------------------------------
27
+ // different producer of the same `DtoShape`. Not an annotation shape: DRF
28
+ // fields are constructor assignments (`email = serializers.EmailField()`),
29
+ // the same shape `orm.ts` reads for Django's ORM columns, since neither
30
+ // framework spells a field as a type annotation.
56
31
  /** Modules whose serializer roots are DRF's own. */
57
32
  export const DRF_SERIALIZER_MODULES = new Set([
58
33
  "rest_framework.serializers",
@@ -75,10 +50,9 @@ export function isDrfSerializerRoot(baseName, originModule) {
75
50
  return [...DRF_SERIALIZER_MODULES].some((module) => originModule === module || originModule.startsWith(`${module}.`));
76
51
  }
77
52
  /**
78
- * Is this attribute a DRF field, shape-based like Django's own ORM fields —
79
- * every field class DRF ships ends in `Field`, and third-party field classes
80
- * follow the same convention. A closed list would miss every custom field a
81
- * project writes, the same gap `isColumnCall` avoids for Django's ORM.
53
+ * Is this attribute a DRF field? Shape-based like Django's ORM fields —
54
+ * every field class ends in `Field` — since a closed list would miss every
55
+ * custom field a project writes, the gap `isColumnCall` avoids for Django's ORM.
82
56
  */
83
57
  function isDrfFieldCall(attribute) {
84
58
  if (attribute.callee === null)
@@ -90,11 +64,9 @@ function isDrfFieldCall(attribute) {
90
64
  }
91
65
  const DRF_NOT_A_FIELD = new Set(["Meta"]);
92
66
  /**
93
- * The shape a DRF serializer declares.
94
- *
95
- * Returns `null` where the class declares no field at all — the same guard
96
- * `ormShapeOf` uses to keep a project's own serializer base out of the graph
97
- * as a `DTO` of its own.
67
+ * The shape a DRF serializer declares, or `null` when the class declares no
68
+ * field — the same guard `ormShapeOf` uses to keep a serializer base out of
69
+ * the graph as a `DTO` of its own.
98
70
  */
99
71
  export function drfShapeOf(input) {
100
72
  const fields = [];
@@ -116,10 +88,8 @@ export function drfShapeOf(input) {
116
88
  }
117
89
  if (sawUnreadable)
118
90
  undecided.push(attribute.name);
119
- // DRF's own default: a field is required unless the source says
120
- // otherwise, either with `required=False` directly or by supplying a
121
- // `default=` — the mirror image of Pydantic's "has a default" trigger,
122
- // read the way DRF's own field constructor documents it.
91
+ // DRF default: required unless `required=False` or a `default=` is
92
+ // supplied — the mirror of Pydantic's "has a default" trigger.
123
93
  let required = true;
124
94
  if (!attribute.opaqueKeywords.includes("required") && typeof attribute.keywords["required"] === "boolean") {
125
95
  required = attribute.keywords["required"];
@@ -153,12 +123,10 @@ export const PYDANTIC_MODULES = new Set([
153
123
  "pydantic_settings",
154
124
  ]);
155
125
  /**
156
- * Bases that are Pydantic's own roots.
157
- *
158
- * `BaseSettings` is included and moved package in Pydantic v2 — it lives in
159
- * `pydantic_settings` now and in `pydantic` before that, which is why the module
160
- * set carries both. Restricting a rule to one spelling of a library's own move
161
- * is the mistake DEC-069 recorded when `collections.abc.Callable` was missed.
126
+ * Bases that are Pydantic's own roots. `BaseSettings` moved package in v2
127
+ * (`pydantic_settings`, was `pydantic`), so both are carried — restricting to
128
+ * one spelling of a library's move is the mistake DEC-069 recorded for
129
+ * `collections.abc.Callable`.
162
130
  */
163
131
  export const PYDANTIC_ROOTS = new Set([
164
132
  "BaseModel",
@@ -166,6 +134,62 @@ export const PYDANTIC_ROOTS = new Set([
166
134
  "RootModel",
167
135
  "GenericModel",
168
136
  ]);
137
+ /**
138
+ * `BaseModel`'s own public API surface — attributes and methods `BaseModel`
139
+ * itself provides, not a subclass's declared fields.
140
+ *
141
+ * This exists for `extract.ts`'s `baseChainIsFieldFree`: an unresolvable base
142
+ * ("nothing this run declares") is treated as contributing no fields of its
143
+ * own, which is correct for SQLAlchemy's bare `DeclarativeBase` marker class
144
+ * but wrong for `BaseModel` — external and unresolvable in exactly the same
145
+ * way, but with a real, stable set of its own members. A read of
146
+ * `model_dump()` or `model_fields_set` on a Pydantic subclass is not an
147
+ * undeclared-field access; without this list it was flagged as one (a real
148
+ * false positive reported as fact — "any call reaching this read raises when
149
+ * it runs" — on code that runs correctly).
150
+ *
151
+ * v2 and v1 combined, since this adapter recognises both (`PYDANTIC_MODULES`
152
+ * carries `pydantic.v1` alongside `pydantic`): the v2 `model_*` methods, plus
153
+ * the v1-compat aliases v2 still ships for migration (`dict`, `json`,
154
+ * `copy`, `parse_obj`, `parse_raw`, `parse_file`, `from_orm`, `schema`,
155
+ * `schema_json`, `validate`, `construct`) and are a v1 project's own native
156
+ * spelling. Kept as a closed, named, well-commented list rather than a
157
+ * heuristic — a false "this exists" is unreachable this way (no name outside
158
+ * `BaseModel`'s real surface is ever added), and the cost of a genuine
159
+ * user-declared field that happens to collide with one of these reserved
160
+ * names is a missed unresolved-field flag on that one field, not a wrong
161
+ * claim.
162
+ */
163
+ export const PYDANTIC_MODEL_MEMBERS = new Set([
164
+ // v2 — pydantic-native
165
+ "model_fields",
166
+ "model_fields_set",
167
+ "model_config",
168
+ "model_dump",
169
+ "model_dump_json",
170
+ "model_computed_fields",
171
+ "model_extra",
172
+ "model_construct",
173
+ "model_copy",
174
+ "model_json_schema",
175
+ "model_post_init",
176
+ "model_rebuild",
177
+ "model_validate",
178
+ "model_validate_json",
179
+ "model_validate_strings",
180
+ // v1 native / v2 v1-compat aliases
181
+ "dict",
182
+ "json",
183
+ "copy",
184
+ "parse_obj",
185
+ "parse_raw",
186
+ "parse_file",
187
+ "from_orm",
188
+ "schema",
189
+ "schema_json",
190
+ "validate",
191
+ "construct",
192
+ ]);
169
193
  /** Constraint keywords Pydantic enforces, as opposed to documents. */
170
194
  export const CONSTRAINT_KEYWORDS = new Set([
171
195
  "gt",
@@ -183,12 +207,9 @@ export const CONSTRAINT_KEYWORDS = new Set([
183
207
  "decimal_places",
184
208
  ]);
185
209
  /**
186
- * Keywords that describe rather than constrain.
187
- *
188
- * `description` and `title` are 189 of dispatch's 214 `Field(...)` keywords.
189
- * Counting them as validation would make the capability look an order of
190
- * magnitude larger than it is, which is the reporting failure this project
191
- * exists to avoid.
210
+ * Keywords that describe rather than constrain. `description`/`title` are
211
+ * 189 of dispatch's 214 `Field(...)` keywords — counting them as validation
212
+ * would inflate the capability by an order of magnitude.
192
213
  */
193
214
  export const DOCUMENTATION_KEYWORDS = new Set([
194
215
  "description",
@@ -204,29 +225,19 @@ export function isPydanticRoot(baseName, originModule) {
204
225
  const bare = leaf.split("[")[0];
205
226
  if (!PYDANTIC_ROOTS.has(bare))
206
227
  return false;
207
- // The module check is the whole precision control. A repository's own
208
- // `BaseModel` is not Pydantic's, and matching the bare name would admit it.
228
+ // A repository's own `BaseModel` is not Pydantic's; matching the bare name would admit it.
209
229
  if (originModule === undefined)
210
230
  return false;
211
231
  return [...PYDANTIC_MODULES].some((module) => originModule === module || originModule.startsWith(`${module}.`));
212
232
  }
213
233
  /**
214
- * Does this field have a default, so a request may omit it?
215
- *
216
- * `x: int = 5` does. `x: int` does not. The case in between is Pydantic's own
217
- * spelling and it is the one that was read backwards first:
218
- *
219
- * hostname: str = Field(..., min_length=3)
220
- *
221
- * The `...` is an **explicit "no default"** — Pydantic's documented way of
222
- * writing a required field that also carries constraints. Syntactically it is an
223
- * assignment, so the naive reading is "has a default", and `hostname: str`
224
- * carrying a `min_length` came out **nullable** — a required field reported as
225
- * optional. That is the wrong direction to be wrong in: a request generator
226
- * would omit it and call the resulting 422 a finding.
227
- *
228
- * Caught by the field's own type contradicting its verdict — `str`, not
229
- * `str | None`, marked nullable — rather than by any check.
234
+ * Does this field have a default, so a request may omit it? `x: int = 5`
235
+ * does, `x: int` doesn't. The tricky case: `Field(..., min_length=3)` — the
236
+ * `...` is Pydantic's explicit "no default" for a required field that also
237
+ * carries constraints. Read naively as an assignment, this was misclassified
238
+ * as having a default (a required field reported as optional — the wrong
239
+ * direction, since a request generator would omit it and call the resulting
240
+ * 422 a finding). Caught by the type (`str`, not `str | None`) contradicting the verdict.
230
241
  */
231
242
  export function hasDefault(annotated, attribute) {
232
243
  if (!annotated)
@@ -256,11 +267,8 @@ export function annotationIsNullable(annotation) {
256
267
  return /\bOptional\s*\[/.test(annotation) || /\bNone\b/.test(annotation);
257
268
  }
258
269
  /**
259
- * The shape a Pydantic class declares.
260
- *
261
- * `attributes` is every assignment in the class body, as `extract.py` recorded
262
- * it — the same input `orm.ts` reads, which is why this extractor cost almost
263
- * nothing to add.
270
+ * The shape a Pydantic class declares. `attributes` is every class-body
271
+ * assignment as `extract.py` recorded it — the same input `orm.ts` reads.
264
272
  */
265
273
  export function dtoShapeOf(input) {
266
274
  const byName = new Map();
@@ -284,9 +292,8 @@ export function dtoShapeOf(input) {
284
292
  constraints[key] = value;
285
293
  }
286
294
  for (const key of attribute.opaqueKeywords) {
287
- // A constraint written in a form this reader cannot evaluate is the
288
- // `nullable=FLAG` case: the source stated a rule and letting silence
289
- // stand in for it would report the opposite of the source as fact.
295
+ // Unreadable constraint: the source stated a rule, and silence
296
+ // standing in for it would report the opposite as fact.
290
297
  if (CONSTRAINT_KEYWORDS.has(key))
291
298
  sawUnreadable = true;
292
299
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pydantic.js","sourceRoot":"","sources":["../src/pydantic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pydantic.js","sourceRoot":"","sources":["../src/pydantic.ts"],"names":[],"mappings":"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"}