@furo/open-models 1.20.2 → 1.21.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"StrictFetcher.js","sourceRoot":"","sources":["../src/StrictFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA6BxC,MAAM,OAAO,aAAa;IAuBxB,YAAY,OAAoB,EAAE,MAAc,EAAE,IAAY,EAAE,OAA6B,EAAE,OAA6B,EAAE,SAA2B;QApBlJ,cAAS,GAAG,KAAK,CAAC;QAKjB,oBAAe,GAAuC,IAAI,GAAG,EAAiC,CAAC;QAgBrG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,iEAAiE;QACjE,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAgC,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAwC,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;YACjC,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC;IACpD,CAAC;IAEM,iBAAiB,CAAC,EAAe;QACtC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;YACjC,MAAM;YACN,GAAG,EAAE;SACN,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAA4B;QAC7C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAC;QACtD,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC;QAC1D,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,yBAAyB,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IACtD,CAAC;IAED,8DAA8D;IACvD,mBAAmB,CAAC,MAAW;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAa,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,GAAQ,EAAE,OAAqB;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,mBAAmB,CAAC,kCAAkC,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAExC,IAAI,CAAC,WAAW,GAAG;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;aAClC,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACpG,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,aAAa,CAAC;YACxC,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC3E,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;gBAED,OAAO,CAAC,KAAK,CAAC,4CAA4C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC5F,6IAA6I;gBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YAED,KAAK,CAAC,OAAO,CAAC;iBACX,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACf,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;qBAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CAAC;qBACD,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACtD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;oBAC7B,CAAC;oBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC3B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;oBAC9B,CAAC;oBAED,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC3B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;oBAC9B,CAAC;oBAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBACD,6IAA6I;gBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,QAAkB;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAE/B,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;gBAE7B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;qBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE;oBACR,OAAO,CAAC,CAAQ,CAAC,CAAC;oBAClB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,UAAU,CAAC,CAAQ,EAAE,QAAQ,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBACxB,6IAA6I;oBAC7I,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC9B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;gBAC7B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;gBAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;qBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE;oBACR,6IAA6I;oBAC7I,MAAM,CAAC,CAAC,CAAC,CAAC;oBACV,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACzB,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBACxB,6IAA6I;oBAC7I,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;wBACnC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,QAAkB;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,4HAA4H;YAC5H,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;oBACzC,CAAC,CAAC,IAAI,EAAE;yBACL,IAAI,CAAC,IAAI,CAAC,EAAE;wBACX,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBACtB,6IAA6I;wBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;oBACxC,CAAC,CAAC,IAAI,EAAE;yBACL,IAAI,CAAC,IAAI,CAAC,EAAE;wBACX,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBACtB,6IAA6I;wBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE;oBAC/C,CAAC,CAAC,IAAI,EAAE;yBACL,IAAI,CAAC,IAAI,CAAC,EAAE;wBAEX,IAAG,IAAI,CAAC,iBAAiB,EAAC,CAAC;4BACzB,IAAI,CAAC,iBAAiB,CAAC,IAAkB,CAAC,CAAC;wBAC7C,CAAC;wBAED,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;4BACnC,2DAA2D;4BAC3D,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;4BACnC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAClC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;wBACjC,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,CAAC;wBAChB,CAAC;oBACH,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBACtB,6IAA6I;wBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE;oBACnD,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;oBAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;oBAEjC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;oBAC1D,CAAC;oBAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;oBAClC,IAAI,MAAM,GAAG,EAAE,CAAC;oBAEhB,MAAM,QAAQ,GAAG;wBACf,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC3B,uGAAuG;4BACvG,OAAO,IAAI,EAAE,CAAC;gCACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gCAC5C,IAAI,IAAI;oCAAE,MAAM;gCAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gCAElD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gCAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oCACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oCAC5B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;wCACnB,SAAS;oCACX,CAAC;oCAED,IAAI,MAAW,CAAC;oCAChB,IAAI,CAAC;wCACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAQ,CAAC;oCACtC,CAAC;oCAAC,MAAM,CAAC;wCACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;oCAC7D,CAAC;oCAED,IAAI,kBAAkB,EAAE,CAAC;wCACvB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;wCAClC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;wCACpC,MAAM,OAAO,CAAC,WAAW,EAAS,CAAC;oCACrC,CAAC;yCAAM,CAAC;wCACN,MAAM,MAAM,CAAC;oCACf,CAAC;gCACH,CAAC;4BACH,CAAC;4BAED,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gCACzB,IAAI,CAAC;oCACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAQ,CAAC;oCAChD,IAAI,kBAAkB,EAAE,CAAC;wCACvB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;wCAClC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;wCACpC,MAAM,OAAO,CAAC,WAAW,EAAS,CAAC;oCACrC,CAAC;yCAAM,CAAC;wCACN,MAAM,MAAM,CAAC;oCACf,CAAC;gCACH,CAAC;gCAAC,MAAM,CAAC;oCACP,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gCACzE,CAAC;4BACH,CAAC;wBACH,CAAC;qBACF,CAAC;oBAEF,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE;oBACvD,CAAC,CAAC,WAAW,EAAE;yBACZ,IAAI,CAAC,MAAM,CAAC,EAAE;wBACb,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClB,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBACtB,6IAA6I;wBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE;oBAC9C,CAAC,CAAC,IAAI,EAAE;yBACL,IAAI,CAAC,IAAI,CAAC,EAAE;wBACX,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBACtB,6IAA6I;wBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;oBACzC,CAAC,CAAC,IAAI,EAAE;yBACL,IAAI,CAAC,IAAI,CAAC,EAAE;wBACX,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBACtB,6IAA6I;wBAC7I,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,KAAK,kBAAkB,CAAC;gBAC/B,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEpD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBACxC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAC3B,IAAY,EACZ,SAAsC,EACtC,GAAQ;QAKR,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,aAAa,CAAC;QAElB,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAgB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,oFAAoF;QACpF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;YACpD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACjD,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,QAAQ,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAc,CAAC;YAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,wBAAwB,CAAC,MAAM,CAAC,QAAkB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,kEAAkE;YAClE,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,sCAAsC;gBACtC,MAAM,WAAW,GAA4B,EAAE,CAAC;gBAChD,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACrC,WAAW,CAAC,GAAa,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACnC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAA4B,EAAE,CAAC;gBACzC,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACrC,IAAI,CAAC,GAAa,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,wBAAwB,CAAC,MAAM,CAAC,SAAmB,CAAC,CAAC;YACvD,CAAC;YACD,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACrC,8EAA8E;gBAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAa,CAAC,IAAK,GAAc,CAAC,CAAC,CAAC,CAAE,GAAc,CAAC;gBAChJ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC3B,GAAG,CAAC,GAAG,CAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAClC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC3C,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,aAAa,GAAG,GAAG,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,CAAC;YAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,kFAAkF;gBAClF,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;oBACnC,mHAAmH;oBACnH,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAmB,CAAC,CAAC;oBACvE,IAAI,SAAS,EAAE,CAAC;wBACd,mHAAmH;wBACnH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAc,CAAC;wBACxD,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;wBACxC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAED,aAAa,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,aAAa,EAAE,CAAC;QAE/F,OAAO;YACL,aAAa;YACb,aAAa;SACd,CAAC;IACJ,CAAC;CAaF","sourcesContent":["import { FieldNode } from \"./FieldNode\";\nimport type { JSONObject } from \"@/well_known/Struct\";\n\nexport interface IApiOptions {\n serverAddr: string;\n ApiBaseURL: string;\n headers?: Headers;\n timeout?: number;\n UseProtoNames: boolean;\n UseProtoNamesForQueryParams: boolean;\n}\n\ninterface Handlers<REQ, RES> {\n onResponse?: (response: RES, serverResponse: Response) => void;\n onResponseError?: (parsedResponse: unknown, serverResponse: Response) => void;\n onRequestStarted?: (req: REQ) => void;\n onRequestFinished?: (req: REQ) => void;\n onRequestAborted?: (req: REQ) => void;\n onResponseRaw?: (serverResponse: Response) => void;\n onResponseErrorRaw?: (serverResponse: Response) => void;\n onResponseParseError?: (error: unknown, serverResponse: Response) => void;\n onResponseErrorParseError?: (error: unknown, serverResponse: Response) => void;\n onFatalError?: (error: unknown) => void;\n onRawJsonResponse?:(json:JSONObject)=>void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype FieldNodeConstructor = new (initData?: any, parent?: FieldNode, parentAttributeName?: string) => FieldNode;\n\nexport class StrictFetcher<REQ, RES> {\n public timeout: number;\n public lastResponse: Response | undefined;\n public isLoading = false;\n\n private path: string;\n private requestInit: RequestInit;\n private method: string;\n private responseHandler: Map<string, (r: Response) => void> = new Map<string, (r: Response) => void>();\n private abortController: AbortController;\n private timeoutId: ReturnType<typeof setTimeout> | number | undefined;\n private bodyField: keyof REQ | \"*\" | undefined;\n private API_OPTIONS: IApiOptions;\n\n private ReqType: FieldNodeConstructor;\n private ResType: FieldNodeConstructor;\n\n // Maps camelCase fieldName → protoName from the REQ type's field descriptors\n private reqProtoNameMap: Map<string, string>;\n // Maps camelCase fieldName → FieldConstructor from the REQ type's field descriptors\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private reqFieldConstructorMap: Map<string, any>;\n\n constructor(options: IApiOptions, method: string, path: string, ReqType: FieldNodeConstructor, ResType: FieldNodeConstructor, bodyField?: keyof REQ | \"*\") {\n this.API_OPTIONS = options;\n this.path = path;\n this.bodyField = bodyField;\n this.method = method;\n this.ReqType = ReqType;\n this.ResType = ResType;\n\n // Build the proto name map from the REQ type's field descriptors\n this.reqProtoNameMap = new Map<string, string>();\n this.reqFieldConstructorMap = new Map<string, FieldNodeConstructor>();\n const tempReq = new ReqType();\n tempReq.__meta.nodeFields.forEach(field => {\n this.reqProtoNameMap.set(field.fieldName, field.protoName);\n this.reqFieldConstructorMap.set(field.fieldName, field.FieldConstructor as FieldNodeConstructor);\n });\n\n this.abortController = new AbortController();\n const { signal } = this.abortController;\n this.requestInit = {\n method: this.method,\n signal,\n headers: this.API_OPTIONS.headers,\n redirect: \"follow\",\n };\n\n this.timeout = this.API_OPTIONS.timeout ?? 300000;\n }\n\n public setRequestOptions(ri: RequestInit) {\n const { signal } = this.abortController;\n this.requestInit = {\n method: this.method,\n headers: this.API_OPTIONS.headers,\n signal,\n ...ri,\n };\n }\n\n public setHandlers(handlers: Handlers<REQ, RES>) {\n this.onResponse = handlers.onResponse;\n this.onResponseError = handlers.onResponseError;\n this.onRequestStarted = handlers.onRequestStarted;\n this.onRequestFinished = handlers.onRequestFinished;\n this.onRequestAborted = handlers.onRequestAborted;\n this.onResponseRaw = handlers.onResponseRaw;\n this.onResponseErrorRaw = handlers.onResponseErrorRaw;\n this.onResponseParseError = handlers.onResponseParseError;\n this.onResponseErrorParseError = handlers.onResponseErrorParseError;\n this.onFatalError = handlers.onFatalError;\n this.onRawJsonResponse = handlers.onRawJsonResponse;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public abortPendingRequest(reason: any): void {\n if (!this.isLoading) {\n return;\n }\n clearTimeout(this.timeoutId);\n this.isLoading = false;\n this.abortController.abort(reason);\n\n if (this.onRequestAborted) {\n this.onRequestAborted(reason as REQ);\n }\n }\n\n public invoke(rqo: REQ, options?: RequestInit): Promise<RES> {\n return new Promise((resolve, reject) => {\n if (this.isLoading) {\n this.abortPendingRequest(\"invoke triggered before response\");\n }\n\n this.abortController = new AbortController();\n const { signal } = this.abortController;\n\n this.requestInit = {\n method: this.method,\n signal,\n headers: this.API_OPTIONS.headers,\n };\n\n if (options) {\n this.setRequestOptions(options);\n }\n\n this.isLoading = true;\n\n const { evaluatedPath, evaluatedBody } = this.buildPathAndBodyfield(this.path, this.bodyField, rqo);\n if (evaluatedBody) {\n this.requestInit.body = evaluatedBody;\n }\n\n clearTimeout(this.timeoutId);\n const request = new Request(evaluatedPath, this.requestInit);\n this.timeoutId = setTimeout(() => {\n this.abortController.abort(`Timeout of ${String(this.timeout)}ms reached`);\n if (this.onRequestAborted) {\n this.onRequestAborted(rqo);\n }\n\n console.error(`RequestService fetch aborted: Timeout of ${String(this.timeout)}ms reached`);\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(rqo);\n }, this.timeout);\n\n if (this.onRequestStarted) {\n this.onRequestStarted(rqo);\n }\n\n fetch(request)\n .then(response => {\n this._reworkRequest(response)\n .then(data => {\n resolve(data);\n })\n .catch(reject);\n if (this.onRequestFinished) {\n this.onRequestFinished(rqo);\n }\n })\n .catch((err: unknown) => {\n this.isLoading = false;\n\n if (err instanceof Error && err.name === \"AbortError\") {\n if (this.onRequestAborted) {\n this.onRequestAborted(rqo);\n }\n if (this.onRequestFinished) {\n this.onRequestFinished(rqo);\n }\n\n console.error(\"RequestService fetch aborted: \", err);\n } else {\n if (this.onRequestFinished) {\n this.onRequestFinished(rqo);\n }\n\n if (this.onFatalError) {\n this.onFatalError(err);\n }\n }\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n }\n\n _reworkRequest(response: Response): Promise<RES> {\n return new Promise((resolve, reject) => {\n this.isLoading = false;\n clearTimeout(this.timeoutId);\n const status = response.status;\n\n if (status === 0 || (status >= 200 && status < 300)) {\n this.lastResponse = response;\n\n if (this.onResponseRaw) {\n this.onResponseRaw(response);\n }\n\n this._parseResponse(response)\n .then(r => {\n resolve(r as RES);\n if (this.onResponse) {\n this.onResponse(r as RES, response);\n }\n })\n .catch((error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(error);\n if (this.onResponseParseError) {\n this.onResponseParseError(error, response);\n }\n });\n } else {\n this.lastResponse = response;\n if (this.onResponseErrorRaw) {\n this.onResponseErrorRaw(response);\n }\n\n this._parseResponse(response)\n .then(r => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(r);\n if (this.onResponseError) {\n this.onResponseError(r, response);\n }\n })\n .catch((error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(error);\n if (this.onResponseErrorParseError) {\n this.onResponseErrorParseError(error, response);\n }\n });\n }\n });\n }\n\n _parseResponse(response: Response) {\n return new Promise((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input)\n if (response) {\n this.responseHandler.set(\"text/plain\", r => {\n r.text()\n .then(text => {\n resolve(text);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n this.responseHandler.set(\"text/html\", r => {\n r.text()\n .then(text => {\n resolve(text);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n this.responseHandler.set(\"application/json\", r => {\n r.json()\n .then(json => {\n\n if(this.onRawJsonResponse){\n this.onRawJsonResponse(json as JSONObject);\n }\n\n if (this.API_OPTIONS.UseProtoNames) {\n // Use FieldNode-based conversion instead of generic Mapper\n const resNode = new this.ResType();\n resNode.__fromProtoNameJson(json);\n resolve(resNode.__toLiteral());\n } else {\n resolve(json);\n }\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n this.responseHandler.set(\"application/x-ndjson\", r => {\n const preserveProtoNames = this.API_OPTIONS.UseProtoNames;\n const ResTypeCtor = this.ResType;\n\n const reader = r.body?.getReader();\n if (!reader) {\n throw new Error(\"NDJSON response has no readable body\");\n }\n\n const decoder = new TextDecoder();\n let buffer = \"\";\n\n const iterator = {\n async *[Symbol.asyncIterator](): AsyncGenerator<RES> {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- loop exits via break on done\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (trimmed === \"\") {\n continue;\n }\n\n let parsed: RES;\n try {\n parsed = JSON.parse(trimmed) as RES;\n } catch {\n throw new Error(`Failed to parse NDJSON line: ${trimmed}`);\n }\n\n if (preserveProtoNames) {\n const resNode = new ResTypeCtor();\n resNode.__fromProtoNameJson(parsed);\n yield resNode.__toLiteral() as RES;\n } else {\n yield parsed;\n }\n }\n }\n\n if (buffer.trim() !== \"\") {\n try {\n const parsed = JSON.parse(buffer.trim()) as RES;\n if (preserveProtoNames) {\n const resNode = new ResTypeCtor();\n resNode.__fromProtoNameJson(parsed);\n yield resNode.__toLiteral() as RES;\n } else {\n yield parsed;\n }\n } catch {\n throw new Error(`Failed to parse final NDJSON line: ${buffer.trim()}`);\n }\n }\n },\n };\n\n resolve(iterator);\n });\n\n this.responseHandler.set(\"application/octet-stream\", r => {\n r.arrayBuffer()\n .then(buffer => {\n resolve(buffer);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n this.responseHandler.set(\"application/pdf\", r => {\n r.blob()\n .then(blob => {\n resolve(blob);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n this.responseHandler.set(\"image/jpeg\", r => {\n r.blob()\n .then(blob => {\n resolve(blob);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n const contentType = response.headers.get(\"content-type\");\n let handler = contentType?.split(\";\")[0].trim();\n handler ??= \"application/json\";\n let typeHandler = this.responseHandler.get(handler);\n\n if (typeHandler === undefined) {\n console.error(\"No parser for\", handler);\n typeHandler = this.responseHandler.get(\"application/json\");\n }\n\n if (typeHandler) {\n typeHandler(response);\n }\n } else {\n reject(new Error(\"no response\"));\n }\n });\n }\n\n private buildPathAndBodyfield(\n path: string,\n bodyField: keyof REQ | \"*\" | undefined,\n rqo: REQ\n ): {\n evaluatedPath: string;\n evaluatedBody: string | undefined;\n } {\n let evaluatedPath = path;\n let evaluatedBody;\n\n const keysForBodyOrQueryParams = new Map<string, keyof REQ>();\n Object.keys(rqo as object).forEach(key => {\n keysForBodyOrQueryParams.set(key, key as keyof REQ);\n });\n\n // Build a reverse map: protoName → camelCase fieldName for path template resolution\n const protoToFieldMap = new Map<string, string>();\n this.reqProtoNameMap.forEach((protoName, fieldName) => {\n protoToFieldMap.set(protoName, fieldName);\n });\n\n const fields = [...path.matchAll(/\\{([^}]+)}/g)];\n // Replace URL templates with values: /v1/cube/{cube_id} => /v1/cube/12\n // Path templates use proto names, but rqo uses camelCase keys\n fields.forEach(field => {\n const protoName = field[1];\n const camelKey = (protoToFieldMap.get(protoName) ?? protoName) as keyof REQ;\n const rqoValue = rqo[camelKey];\n evaluatedPath = evaluatedPath.replace(field[0], String(rqoValue));\n keysForBodyOrQueryParams.delete(camelKey as string);\n });\n\n if (bodyField === \"*\") {\n // Use FieldNode serialization for body when UseProtoNames is true\n if (this.API_OPTIONS.UseProtoNames) {\n const reqNode = new this.ReqType();\n // Build a literal from remaining keys\n const literalBody: Record<string, unknown> = {};\n keysForBodyOrQueryParams.forEach(key => {\n literalBody[key as string] = rqo[key];\n });\n reqNode.__fromLiteral(literalBody);\n evaluatedBody = JSON.stringify(reqNode.__toJson());\n } else {\n const body: Record<string, unknown> = {};\n keysForBodyOrQueryParams.forEach(key => {\n body[key as string] = rqo[key];\n });\n evaluatedBody = JSON.stringify(body);\n }\n } else {\n // Build query params\n const params: string[] = [];\n if (bodyField !== undefined) {\n keysForBodyOrQueryParams.delete(bodyField as string);\n }\n keysForBodyOrQueryParams.forEach(key => {\n // Use the reqProtoNameMap for proto name lookup instead of generic conversion\n const paramName = this.API_OPTIONS.UseProtoNamesForQueryParams ? (this.reqProtoNameMap.get(key as string) ?? (key as string)) : (key as string);\n if (Array.isArray(rqo[key])) {\n (rqo[key] as unknown[]).forEach(e => {\n params.push(`${paramName}=${String(e)}`);\n });\n } else {\n params.push(`${paramName}=${String(rqo[key])}`);\n }\n });\n if (params.length) {\n evaluatedPath = `${evaluatedPath}?${params.join(\"&\")}`;\n }\n\n if (bodyField !== undefined) {\n // Use FieldNode serialization for the named body field when UseProtoNames is true\n if (this.API_OPTIONS.UseProtoNames) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- FieldConstructor stored from meta is untyped\n const FieldCtor = this.reqFieldConstructorMap.get(bodyField as string);\n if (FieldCtor) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- FieldConstructor is dynamically resolved from meta\n const fieldNode = new FieldCtor(undefined) as FieldNode;\n fieldNode.__fromLiteral(rqo[bodyField]);\n evaluatedBody = JSON.stringify(fieldNode.__toJson());\n } else {\n evaluatedBody = JSON.stringify(rqo[bodyField]);\n }\n } else {\n evaluatedBody = JSON.stringify(rqo[bodyField]);\n }\n }\n }\n\n evaluatedPath = `${this.API_OPTIONS.serverAddr}${this.API_OPTIONS.ApiBaseURL}${evaluatedPath}`;\n\n return {\n evaluatedPath,\n evaluatedBody,\n };\n }\n\n onResponse?: (response: RES, serverResponse: Response) => void;\n onResponseError?: (parsedResponse: unknown, serverResponse: Response) => void;\n onRequestStarted?: (req: REQ) => void;\n onRequestFinished?: (req: REQ) => void;\n onRequestAborted?: (req: REQ) => void;\n onResponseRaw?: (serverResponse: Response) => void;\n onResponseErrorRaw?: (serverResponse: Response) => void;\n onResponseParseError?: (error: unknown, serverResponse: Response) => void;\n onResponseErrorParseError?: (error: unknown, serverResponse: Response) => void;\n onFatalError?: (error: unknown) => void;\n onRawJsonResponse?: (json: JSONObject) => void;\n}\n"]}
1
+ {"version":3,"file":"StrictFetcher.js","sourceRoot":"","sources":["../src/StrictFetcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldNode } from \"./FieldNode\";\nimport type { JSONObject } from \"@/well_known/Struct\";\n\nexport interface IApiOptions {\n serverAddr: string;\n ApiBaseURL: string;\n headers?: Headers;\n timeout?: number;\n UseProtoNames: boolean;\n UseProtoNamesForQueryParams: boolean;\n}\n\ninterface Handlers<REQ, RES> {\n onResponse?: (response: RES, serverResponse: Response) => void;\n onResponseError?: (parsedResponse: unknown, serverResponse: Response) => void;\n onRequestStarted?: (req: REQ) => void;\n onRequestFinished?: (req: REQ) => void;\n onRequestAborted?: (req: REQ) => void;\n onResponseRaw?: (serverResponse: Response) => void;\n onResponseErrorRaw?: (serverResponse: Response) => void;\n onResponseParseError?: (error: unknown, serverResponse: Response) => void;\n onResponseErrorParseError?: (error: unknown, serverResponse: Response) => void;\n onFatalError?: (error: unknown) => void;\n onRawJsonResponse?: (json: JSONObject) => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype FieldNodeConstructor = new (initData?: any, parent?: FieldNode, parentAttributeName?: string) => FieldNode;\n\nexport class StrictFetcher<REQ, RES> {\n public timeout: number;\n public lastResponse: Response | undefined;\n public isLoading = false;\n\n private path: string;\n private requestInit: RequestInit;\n private method: string;\n private responseHandler: Map<string, (r: Response) => void> = new Map<string, (r: Response) => void>();\n private abortController: AbortController;\n private timeoutId: ReturnType<typeof setTimeout> | number | undefined;\n private bodyField: keyof REQ | \"*\" | undefined;\n private API_OPTIONS: IApiOptions;\n\n private ReqType: FieldNodeConstructor;\n private ResType: FieldNodeConstructor;\n\n // Maps camelCase fieldName → protoName from the REQ type's field descriptors\n private reqProtoNameMap: Map<string, string>;\n // Maps camelCase fieldName → FieldConstructor from the REQ type's field descriptors\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private reqFieldConstructorMap: Map<string, any>;\n\n constructor(options: IApiOptions, method: string, path: string, ReqType: FieldNodeConstructor, ResType: FieldNodeConstructor, bodyField?: keyof REQ | \"*\") {\n this.API_OPTIONS = options;\n this.path = path;\n this.bodyField = bodyField;\n this.method = method;\n this.ReqType = ReqType;\n this.ResType = ResType;\n\n // Build the proto name map from the REQ type's field descriptors\n this.reqProtoNameMap = new Map<string, string>();\n this.reqFieldConstructorMap = new Map<string, FieldNodeConstructor>();\n const tempReq = new ReqType();\n tempReq.__meta.nodeFields.forEach(field => {\n this.reqProtoNameMap.set(field.fieldName, field.protoName);\n this.reqFieldConstructorMap.set(field.fieldName, field.FieldConstructor as FieldNodeConstructor);\n });\n\n this.abortController = new AbortController();\n const { signal } = this.abortController;\n this.requestInit = {\n method: this.method,\n signal,\n headers: this.API_OPTIONS.headers,\n redirect: \"follow\",\n };\n\n this.timeout = this.API_OPTIONS.timeout ?? 300000;\n }\n\n public setRequestOptions(ri: RequestInit) {\n const { signal } = this.abortController;\n this.requestInit = {\n method: this.method,\n headers: this.API_OPTIONS.headers,\n signal,\n ...ri,\n };\n }\n\n public setHandlers(handlers: Handlers<REQ, RES>) {\n this.onResponse = handlers.onResponse;\n this.onResponseError = handlers.onResponseError;\n this.onRequestStarted = handlers.onRequestStarted;\n this.onRequestFinished = handlers.onRequestFinished;\n this.onRequestAborted = handlers.onRequestAborted;\n this.onResponseRaw = handlers.onResponseRaw;\n this.onResponseErrorRaw = handlers.onResponseErrorRaw;\n this.onResponseParseError = handlers.onResponseParseError;\n this.onResponseErrorParseError = handlers.onResponseErrorParseError;\n this.onFatalError = handlers.onFatalError;\n this.onRawJsonResponse = handlers.onRawJsonResponse;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public abortPendingRequest(reason: any): void {\n if (!this.isLoading) {\n return;\n }\n clearTimeout(this.timeoutId);\n this.isLoading = false;\n this.abortController.abort(reason);\n\n if (this.onRequestAborted) {\n this.onRequestAborted(reason as REQ);\n }\n }\n\n public invoke(rqo: REQ, options?: RequestInit): Promise<RES> {\n return new Promise((resolve, reject) => {\n if (this.isLoading) {\n this.abortPendingRequest(\"invoke triggered before response\");\n }\n\n this.abortController = new AbortController();\n const { signal } = this.abortController;\n\n this.requestInit = {\n method: this.method,\n signal,\n headers: this.API_OPTIONS.headers,\n };\n\n if (options) {\n this.setRequestOptions(options);\n }\n\n this.isLoading = true;\n\n const { evaluatedPath, evaluatedBody } = this.buildPathAndBodyfield(this.path, this.bodyField, rqo);\n if (evaluatedBody) {\n this.requestInit.body = evaluatedBody;\n }\n\n clearTimeout(this.timeoutId);\n const request = new Request(evaluatedPath, this.requestInit);\n this.timeoutId = setTimeout(() => {\n this.abortController.abort(`Timeout of ${String(this.timeout)}ms reached`);\n if (this.onRequestAborted) {\n this.onRequestAborted(rqo);\n }\n\n console.error(`RequestService fetch aborted: Timeout of ${String(this.timeout)}ms reached`);\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(rqo);\n }, this.timeout);\n\n if (this.onRequestStarted) {\n this.onRequestStarted(rqo);\n }\n\n fetch(request)\n .then(response => {\n this._reworkRequest(response)\n .then(data => {\n resolve(data);\n })\n .catch(reject);\n if (this.onRequestFinished) {\n this.onRequestFinished(rqo);\n }\n })\n .catch((err: unknown) => {\n this.isLoading = false;\n\n if (err instanceof Error && err.name === \"AbortError\") {\n if (this.onRequestAborted) {\n this.onRequestAborted(rqo);\n }\n if (this.onRequestFinished) {\n this.onRequestFinished(rqo);\n }\n\n console.error(\"RequestService fetch aborted: \", err);\n } else {\n if (this.onRequestFinished) {\n this.onRequestFinished(rqo);\n }\n\n if (this.onFatalError) {\n this.onFatalError(err);\n }\n }\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n }\n\n _reworkRequest(response: Response): Promise<RES> {\n return new Promise((resolve, reject) => {\n this.isLoading = false;\n clearTimeout(this.timeoutId);\n const status = response.status;\n\n if (status === 0 || (status >= 200 && status < 300)) {\n this.lastResponse = response;\n\n if (this.onResponseRaw) {\n this.onResponseRaw(response);\n }\n\n this._parseResponse(response)\n .then(r => {\n resolve(r as RES);\n if (this.onResponse) {\n this.onResponse(r as RES, response);\n }\n })\n .catch((error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(error);\n if (this.onResponseParseError) {\n this.onResponseParseError(error, response);\n }\n });\n } else {\n this.lastResponse = response;\n if (this.onResponseErrorRaw) {\n this.onResponseErrorRaw(response);\n }\n\n this._parseResponse(response)\n .then(r => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(r);\n if (this.onResponseError) {\n this.onResponseError(r, response);\n }\n })\n .catch((error: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(error);\n if (this.onResponseErrorParseError) {\n this.onResponseErrorParseError(error, response);\n }\n });\n }\n });\n }\n\n _parseResponse(response: Response) {\n return new Promise((resolve, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- runtime data may not match types (REST API input)\n if (response) {\n this.responseHandler.set(\"text/plain\", r => {\n r.text()\n .then(text => {\n resolve(text);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n this.responseHandler.set(\"text/html\", r => {\n r.text()\n .then(text => {\n resolve(text);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n this.responseHandler.set(\"application/json\", r => {\n r.json()\n .then(json => {\n if (this.onRawJsonResponse) {\n this.onRawJsonResponse(json as JSONObject);\n }\n\n if (this.API_OPTIONS.UseProtoNames) {\n // Use FieldNode-based conversion instead of generic Mapper\n const resNode = new this.ResType();\n resNode.__fromProtoNameJson(json);\n resolve(resNode.__toLiteral());\n } else {\n resolve(json);\n }\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n this.responseHandler.set(\"application/x-ndjson\", r => {\n const preserveProtoNames = this.API_OPTIONS.UseProtoNames;\n const ResTypeCtor = this.ResType;\n\n const reader = r.body?.getReader();\n if (!reader) {\n throw new Error(\"NDJSON response has no readable body\");\n }\n\n const decoder = new TextDecoder();\n let buffer = \"\";\n\n const iterator = {\n async *[Symbol.asyncIterator](): AsyncGenerator<RES> {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- loop exits via break on done\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n buffer += decoder.decode(value, { stream: true });\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (trimmed === \"\") {\n continue;\n }\n\n let parsed: RES;\n try {\n parsed = JSON.parse(trimmed) as RES;\n } catch {\n throw new Error(`Failed to parse NDJSON line: ${trimmed}`);\n }\n\n if (preserveProtoNames) {\n const resNode = new ResTypeCtor();\n resNode.__fromProtoNameJson(parsed);\n yield resNode.__toLiteral() as RES;\n } else {\n yield parsed;\n }\n }\n }\n\n if (buffer.trim() !== \"\") {\n try {\n const parsed = JSON.parse(buffer.trim()) as RES;\n if (preserveProtoNames) {\n const resNode = new ResTypeCtor();\n resNode.__fromProtoNameJson(parsed);\n yield resNode.__toLiteral() as RES;\n } else {\n yield parsed;\n }\n } catch {\n throw new Error(`Failed to parse final NDJSON line: ${buffer.trim()}`);\n }\n }\n },\n };\n\n resolve(iterator);\n });\n\n this.responseHandler.set(\"application/octet-stream\", r => {\n r.arrayBuffer()\n .then(buffer => {\n resolve(buffer);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n this.responseHandler.set(\"application/pdf\", r => {\n r.blob()\n .then(blob => {\n resolve(blob);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n this.responseHandler.set(\"image/jpeg\", r => {\n r.blob()\n .then(blob => {\n resolve(blob);\n })\n .catch((err: unknown) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors -- changing rejection types would break downstream error handlers\n reject(err);\n });\n });\n\n const contentType = response.headers.get(\"content-type\");\n let handler = contentType?.split(\";\")[0].trim();\n handler ??= \"application/json\";\n let typeHandler = this.responseHandler.get(handler);\n\n if (typeHandler === undefined) {\n console.error(\"No parser for\", handler);\n typeHandler = this.responseHandler.get(\"application/json\");\n }\n\n if (typeHandler) {\n typeHandler(response);\n }\n } else {\n reject(new Error(\"no response\"));\n }\n });\n }\n\n private buildPathAndBodyfield(\n path: string,\n bodyField: keyof REQ | \"*\" | undefined,\n rqo: REQ\n ): {\n evaluatedPath: string;\n evaluatedBody: string | undefined;\n } {\n let evaluatedPath = path;\n let evaluatedBody;\n\n const keysForBodyOrQueryParams = new Map<string, keyof REQ>();\n Object.keys(rqo as object).forEach(key => {\n keysForBodyOrQueryParams.set(key, key as keyof REQ);\n });\n\n // Build a reverse map: protoName → camelCase fieldName for path template resolution\n const protoToFieldMap = new Map<string, string>();\n this.reqProtoNameMap.forEach((protoName, fieldName) => {\n protoToFieldMap.set(protoName, fieldName);\n });\n\n const fields = [...path.matchAll(/\\{([^}]+)}/g)];\n // Replace URL templates with values: /v1/cube/{cube_id} => /v1/cube/12\n // Path templates use proto names, but rqo uses camelCase keys\n fields.forEach(field => {\n const protoName = field[1];\n const camelKey = (protoToFieldMap.get(protoName) ?? protoName) as keyof REQ;\n const rqoValue = rqo[camelKey];\n evaluatedPath = evaluatedPath.replace(field[0], String(rqoValue));\n keysForBodyOrQueryParams.delete(camelKey as string);\n });\n\n if (bodyField === \"*\") {\n // Use FieldNode serialization for body when UseProtoNames is true\n if (this.API_OPTIONS.UseProtoNames) {\n const reqNode = new this.ReqType();\n // Build a literal from remaining keys\n const literalBody: Record<string, unknown> = {};\n keysForBodyOrQueryParams.forEach(key => {\n literalBody[key as string] = rqo[key];\n });\n reqNode.__fromLiteral(literalBody);\n evaluatedBody = JSON.stringify(reqNode.__toJson());\n } else {\n const body: Record<string, unknown> = {};\n keysForBodyOrQueryParams.forEach(key => {\n body[key as string] = rqo[key];\n });\n evaluatedBody = JSON.stringify(body);\n }\n } else {\n // Build query params\n const params: string[] = [];\n if (bodyField !== undefined) {\n keysForBodyOrQueryParams.delete(bodyField as string);\n }\n keysForBodyOrQueryParams.forEach(key => {\n // Use the reqProtoNameMap for proto name lookup instead of generic conversion\n const paramName = this.API_OPTIONS.UseProtoNamesForQueryParams ? (this.reqProtoNameMap.get(key as string) ?? (key as string)) : (key as string);\n if (Array.isArray(rqo[key])) {\n (rqo[key] as unknown[]).forEach(e => {\n params.push(`${paramName}=${String(e)}`);\n });\n } else {\n params.push(`${paramName}=${String(rqo[key])}`);\n }\n });\n if (params.length) {\n evaluatedPath = `${evaluatedPath}?${params.join(\"&\")}`;\n }\n\n if (bodyField !== undefined) {\n // Use FieldNode serialization for the named body field when UseProtoNames is true\n if (this.API_OPTIONS.UseProtoNames) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- FieldConstructor stored from meta is untyped\n const FieldCtor = this.reqFieldConstructorMap.get(bodyField as string);\n if (FieldCtor) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- FieldConstructor is dynamically resolved from meta\n const fieldNode = new FieldCtor(undefined) as FieldNode;\n fieldNode.__fromLiteral(rqo[bodyField]);\n evaluatedBody = JSON.stringify(fieldNode.__toJson());\n } else {\n evaluatedBody = JSON.stringify(rqo[bodyField]);\n }\n } else {\n evaluatedBody = JSON.stringify(rqo[bodyField]);\n }\n }\n }\n\n evaluatedPath = `${this.API_OPTIONS.serverAddr}${this.API_OPTIONS.ApiBaseURL}${evaluatedPath}`;\n\n return {\n evaluatedPath,\n evaluatedBody,\n };\n }\n\n onResponse?: (response: RES, serverResponse: Response) => void;\n onResponseError?: (parsedResponse: unknown, serverResponse: Response) => void;\n onRequestStarted?: (req: REQ) => void;\n onRequestFinished?: (req: REQ) => void;\n onRequestAborted?: (req: REQ) => void;\n onResponseRaw?: (serverResponse: Response) => void;\n onResponseErrorRaw?: (serverResponse: Response) => void;\n onResponseParseError?: (error: unknown, serverResponse: Response) => void;\n onResponseErrorParseError?: (error: unknown, serverResponse: Response) => void;\n onFatalError?: (error: unknown) => void;\n onRawJsonResponse?: (json: JSONObject) => void;\n}\n"]}
@@ -6,6 +6,10 @@ export class BOOLEAN extends FieldNode {
6
6
  return this._value;
7
7
  }
8
8
  set value(value) {
9
+ // guard for API responses which sometimes send a null instead of a value
10
+ if (typeof value !== "boolean") {
11
+ value = false;
12
+ }
9
13
  this._value = value;
10
14
  this.__isEmpty = false;
11
15
  this.__climbUpValidation();
@@ -25,6 +29,10 @@ export class BOOLEAN extends FieldNode {
25
29
  this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);
26
30
  }
27
31
  __updateWithLiteral(v) {
32
+ // guard for API responses which sometimes send a null instead of a value
33
+ if (typeof v !== "boolean") {
34
+ v = false;
35
+ }
28
36
  this._value = v;
29
37
  if (!this._value) {
30
38
  this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);
@@ -1 +1 @@
1
- {"version":3,"file":"BOOLEAN.js","sourceRoot":"","sources":["../../src/primitives/BOOLEAN.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,OAAQ,SAAQ,SAAS;IACpC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAc;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAID,YAAY,QAAkB,EAAE,MAAkB,EAAE,mBAA4B;QAC9E,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,KAAK,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,oBAAoB,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACnG,CAAC;IAEQ,mBAAmB,CAAC,CAAU;QACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEkB,qBAAqB;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,kDAAkD;IACzC,wBAAwB,CAAC,IAAa;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEQ,WAAW;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAEe,OAAO,CAAC,mBAAmB,GAAG,KAAK;QACjD,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACjG,IAAI,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF;AAED,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC","sourcesContent":["import { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class BOOLEAN extends FieldNode {\n get value(): boolean {\n return this._value;\n }\n\n set value(value: boolean) {\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n /**\n * Toggle the value of the bool.\n */\n toggle() {\n this.value = !this._value;\n }\n\n public _value: boolean;\n\n constructor(initData?: boolean, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = initData ?? false;\n this.__meta.typeName = \"primitives.BOOLEAN\";\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n }\n\n override __updateWithLiteral(v: boolean) {\n this._value = v;\n if (!this._value) {\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.__isEmpty = false;\n }\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (!this._value) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: boolean): boolean {\n return data;\n }\n\n override __toJson(): boolean {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value;\n this._value = false;\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"boolean\", BOOLEAN);\n"]}
1
+ {"version":3,"file":"BOOLEAN.js","sourceRoot":"","sources":["../../src/primitives/BOOLEAN.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class BOOLEAN extends FieldNode {\n get value(): boolean {\n return this._value;\n }\n\n set value(value: boolean) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof value !== \"boolean\") {\n value = false;\n }\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n /**\n * Toggle the value of the bool.\n */\n toggle() {\n this.value = !this._value;\n }\n\n public _value: boolean;\n\n constructor(initData?: boolean, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = initData ?? false;\n this.__meta.typeName = \"primitives.BOOLEAN\";\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n }\n\n override __updateWithLiteral(v: boolean) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof v !== \"boolean\") {\n v = false;\n }\n this._value = v;\n if (!this._value) {\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.__isEmpty = false;\n }\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (!this._value) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: boolean): boolean {\n return data;\n }\n\n override __toJson(): boolean {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value;\n this._value = false;\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"boolean\", BOOLEAN);\n"]}
@@ -6,6 +6,10 @@ export class BYTES extends FieldNode {
6
6
  return this._value;
7
7
  }
8
8
  set value(value) {
9
+ // guard for API responses which sometimes send a null instead of a value
10
+ if (!(value instanceof Uint8Array)) {
11
+ value = new Uint8Array();
12
+ }
9
13
  this._value = value;
10
14
  if (this._value.length === 0) {
11
15
  this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);
@@ -24,6 +28,10 @@ export class BYTES extends FieldNode {
24
28
  this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);
25
29
  }
26
30
  __updateWithLiteral(v) {
31
+ // guard for API responses which sometimes send a null instead of a value
32
+ if (!(v instanceof Uint8Array)) {
33
+ v = new Uint8Array();
34
+ }
27
35
  this._value = v;
28
36
  if (this._value.length === 0) {
29
37
  this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);
@@ -1 +1 @@
1
- {"version":3,"file":"BYTES.js","sourceRoot":"","sources":["../../src/primitives/BYTES.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class BYTES extends FieldNode {\n get value(): Uint8Array {\n return this._value;\n }\n\n set value(value: Uint8Array) {\n this._value = value;\n if (this._value.length === 0) {\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.__isEmpty = false;\n }\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: Uint8Array;\n\n constructor(initData?: Uint8Array, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = initData ?? new Uint8Array();\n this.__meta.typeName = \"primitives.BYTES\";\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n }\n\n override __updateWithLiteral(v: Uint8Array) {\n this._value = v;\n if (this._value.length === 0) {\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.__isEmpty = false;\n }\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value.length === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: Uint8Array): Uint8Array {\n return data;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n if (constraint === \"required\") {\n if (this._value.length === 0) {\n return [\"constraint.violation.required\"];\n }\n }\n if (constraint === \"max_length\") {\n // String length can be restricted using minLength and maxLength. \">\" is used to check.\n if (this._value.length > value) {\n return [\"constraint.violation.max_length\", String(value), String(this._value)];\n }\n }\n if (constraint === \"min_length\") {\n // String length can be restricted using minLength and maxLength. \"<\" is used to check.\n if (this._value.length < value) {\n return [\"constraint.violation.min_length\", String(value), String(this._value)];\n }\n }\n if (constraint === \"pattern\") {\n // The pattern keyword lets you define a regular expression template for the Uint8Array value.\n\n const re = new RegExp(value as string);\n if (!this._value.toString().match(re)) {\n return [\"constraint.violation.pattern\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): Uint8Array {\n return this.__toLiteral();\n }\n\n override __toLiteral(): Uint8Array {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value.length;\n this._value = new Uint8Array();\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"Uint8Array\", BYTES);\n"]}
1
+ {"version":3,"file":"BYTES.js","sourceRoot":"","sources":["../../src/primitives/BYTES.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class BYTES extends FieldNode {\n get value(): Uint8Array {\n return this._value;\n }\n\n set value(value: Uint8Array) {\n // guard for API responses which sometimes send a null instead of a value\n if (!(value instanceof Uint8Array)) {\n value = new Uint8Array();\n }\n this._value = value;\n if (this._value.length === 0) {\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.__isEmpty = false;\n }\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: Uint8Array;\n\n constructor(initData?: Uint8Array, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = initData ?? new Uint8Array();\n this.__meta.typeName = \"primitives.BYTES\";\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n }\n\n override __updateWithLiteral(v: Uint8Array) {\n // guard for API responses which sometimes send a null instead of a value\n if (!(v instanceof Uint8Array)) {\n v = new Uint8Array();\n }\n this._value = v;\n if (this._value.length === 0) {\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.__isEmpty = false;\n }\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value.length === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: Uint8Array): Uint8Array {\n return data;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n if (constraint === \"required\") {\n if (this._value.length === 0) {\n return [\"constraint.violation.required\"];\n }\n }\n if (constraint === \"max_length\") {\n // String length can be restricted using minLength and maxLength. \">\" is used to check.\n if (this._value.length > value) {\n return [\"constraint.violation.max_length\", String(value), String(this._value)];\n }\n }\n if (constraint === \"min_length\") {\n // String length can be restricted using minLength and maxLength. \"<\" is used to check.\n if (this._value.length < value) {\n return [\"constraint.violation.min_length\", String(value), String(this._value)];\n }\n }\n if (constraint === \"pattern\") {\n // The pattern keyword lets you define a regular expression template for the Uint8Array value.\n\n const re = new RegExp(value as string);\n if (!this._value.toString().match(re)) {\n return [\"constraint.violation.pattern\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): Uint8Array {\n return this.__toLiteral();\n }\n\n override __toLiteral(): Uint8Array {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value.length;\n this._value = new Uint8Array();\n this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"Uint8Array\", BYTES);\n"]}
@@ -6,6 +6,10 @@ export class DOUBLE extends FieldNode {
6
6
  return this._value;
7
7
  }
8
8
  set value(value) {
9
+ // guard for API responses which sometimes send a null instead of a value
10
+ if (typeof value !== "number") {
11
+ value = 0;
12
+ }
9
13
  this._value = value;
10
14
  this.__isEmpty = false;
11
15
  this.__climbUpValidation();
@@ -18,6 +22,10 @@ export class DOUBLE extends FieldNode {
18
22
  this.__meta.typeName = "primitives.DOUBLE";
19
23
  }
20
24
  __updateWithLiteral(v) {
25
+ // guard for API responses which sometimes send a null instead of a value
26
+ if (typeof v !== "number") {
27
+ v = 0;
28
+ }
21
29
  this._value = v;
22
30
  this.__isEmpty = false;
23
31
  this.__notifyFieldValueChange(false);
@@ -1 +1 @@
1
- {"version":3,"file":"DOUBLE.js","sourceRoot":"","sources":["../../src/primitives/DOUBLE.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class DOUBLE extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = Number.isInteger(initData) ? initData! : 0;\n this.__meta.typeName = \"primitives.DOUBLE\";\n }\n\n override __updateWithLiteral(v: number) {\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for double min max boundaries\n\n if (this._value > Number.MAX_SAFE_INTEGER) {\n return [\"constraint.violation.range.double.max\", Number.MAX_SAFE_INTEGER.toString()];\n }\n if (this._value < Number.MIN_SAFE_INTEGER) {\n return [\"constraint.violation.range.double.min\", Number.MIN_SAFE_INTEGER.toString()];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An double has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"double\", DOUBLE);\n"]}
1
+ {"version":3,"file":"DOUBLE.js","sourceRoot":"","sources":["../../src/primitives/DOUBLE.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,MAAO,SAAQ,SAAS;IACnC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,yEAAyE;QACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAID,YAAY,QAAiB,EAAE,MAAkB,EAAE,mBAA4B;QAC7E,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IAC7C,CAAC;IAEQ,mBAAmB,CAAC,CAAS;QACpC,yEAAyE;QACzE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,CAAC,GAAG,CAAC,CAAC;QACR,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEkB,qBAAqB;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,kDAAkD;IACzC,wBAAwB,CAAC,IAAY;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAEkB,qBAAqB;QACtC,sCAAsC;QAEtC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1C,OAAO,CAAC,uCAAuC,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1C,OAAO,CAAC,uCAAuC,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEkB,kBAAkB,CAAC,gBAAkC;QACtE,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnE,iEAAiE;YACjE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,8FAA8F;gBAC9F,IAAI,gBAAgB,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC/D,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,8FAA8F;gBAC9F,IAAI,gBAAgB,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC/D,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBACjC,8FAA8F;gBAC9F,iCAAiC;gBACjC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,kCAAkC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEQ,WAAW;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEQ,OAAO;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAEe,OAAO,CAAC,mBAAmB,GAAG,KAAK;QACjD,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhB,IAAI,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF;AAED,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class DOUBLE extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof value !== \"number\") {\n value = 0;\n }\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = Number.isInteger(initData) ? initData! : 0;\n this.__meta.typeName = \"primitives.DOUBLE\";\n }\n\n override __updateWithLiteral(v: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof v !== \"number\") {\n v = 0;\n }\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for double min max boundaries\n\n if (this._value > Number.MAX_SAFE_INTEGER) {\n return [\"constraint.violation.range.double.max\", Number.MAX_SAFE_INTEGER.toString()];\n }\n if (this._value < Number.MIN_SAFE_INTEGER) {\n return [\"constraint.violation.range.double.min\", Number.MIN_SAFE_INTEGER.toString()];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An double has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"double\", DOUBLE);\n"]}
@@ -6,6 +6,10 @@ export class FLOAT extends FieldNode {
6
6
  return this._value;
7
7
  }
8
8
  set value(value) {
9
+ // guard for API responses which sometimes send a null instead of a value
10
+ if (typeof value !== "number") {
11
+ value = 0;
12
+ }
9
13
  this._value = value;
10
14
  this.__isEmpty = false;
11
15
  this.__climbUpValidation();
@@ -18,6 +22,10 @@ export class FLOAT extends FieldNode {
18
22
  this.__meta.typeName = "primitives.FLOAT";
19
23
  }
20
24
  __updateWithLiteral(v) {
25
+ // guard for API responses which sometimes send a null instead of a value
26
+ if (typeof v !== "number") {
27
+ v = 0;
28
+ }
21
29
  this._value = v;
22
30
  this.__isEmpty = false;
23
31
  this.__notifyFieldValueChange(false);
@@ -1 +1 @@
1
- {"version":3,"file":"FLOAT.js","sourceRoot":"","sources":["../../src/primitives/FLOAT.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class FLOAT extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = typeof initData === \"number\" ? initData : 0;\n this.__meta.typeName = \"primitives.FLOAT\";\n }\n\n override __updateWithLiteral(v: number) {\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for float min max boundaries\n\n if (this._value > Number.MAX_SAFE_INTEGER) {\n return [\"constraint.violation.range.float.max\", Number.MAX_SAFE_INTEGER.toString()];\n }\n if (this._value < Number.MIN_SAFE_INTEGER) {\n return [\"constraint.violation.range.float.min\", Number.MIN_SAFE_INTEGER.toString()];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An float has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"float\", FLOAT);\n"]}
1
+ {"version":3,"file":"FLOAT.js","sourceRoot":"","sources":["../../src/primitives/FLOAT.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,KAAM,SAAQ,SAAS;IAClC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,yEAAyE;QACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAID,YAAY,QAAiB,EAAE,MAAkB,EAAE,mBAA4B;QAC7E,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,kBAAkB,CAAC;IAC5C,CAAC;IAEQ,mBAAmB,CAAC,CAAS;QACpC,yEAAyE;QACzE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,CAAC,GAAG,CAAC,CAAC;QACR,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEkB,qBAAqB;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,kDAAkD;IACzC,wBAAwB,CAAC,IAAY;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAEkB,qBAAqB;QACtC,qCAAqC;QAErC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1C,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1C,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEkB,kBAAkB,CAAC,gBAAkC;QACtE,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnE,gEAAgE;YAChE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,8FAA8F;gBAC9F,IAAI,gBAAgB,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC/D,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,8FAA8F;gBAC9F,IAAI,gBAAgB,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC/D,OAAO,CAAC,wCAAwC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBACjC,8FAA8F;gBAC9F,iCAAiC;gBACjC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,kCAAkC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEQ,WAAW;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEQ,OAAO;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAEe,OAAO,CAAC,mBAAmB,GAAG,KAAK;QACjD,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,YAAY,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF;AAED,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class FLOAT extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof value !== \"number\") {\n value = 0;\n }\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = typeof initData === \"number\" ? initData : 0;\n this.__meta.typeName = \"primitives.FLOAT\";\n }\n\n override __updateWithLiteral(v: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof v !== \"number\") {\n v = 0;\n }\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for float min max boundaries\n\n if (this._value > Number.MAX_SAFE_INTEGER) {\n return [\"constraint.violation.range.float.max\", Number.MAX_SAFE_INTEGER.toString()];\n }\n if (this._value < Number.MIN_SAFE_INTEGER) {\n return [\"constraint.violation.range.float.min\", Number.MIN_SAFE_INTEGER.toString()];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An float has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"float\", FLOAT);\n"]}
@@ -6,6 +6,10 @@ export class INT32 extends FieldNode {
6
6
  return this._value;
7
7
  }
8
8
  set value(value) {
9
+ // guard for API responses which sometimes send a null instead of a value
10
+ if (typeof value !== "number") {
11
+ value = 0;
12
+ }
9
13
  this._value = value;
10
14
  this.__isEmpty = false;
11
15
  this.__climbUpValidation();
@@ -18,6 +22,10 @@ export class INT32 extends FieldNode {
18
22
  this.__meta.typeName = "primitives.INT32";
19
23
  }
20
24
  __updateWithLiteral(v) {
25
+ // guard for API responses which sometimes send a null instead of a value
26
+ if (typeof v !== "number") {
27
+ v = 0;
28
+ }
21
29
  this._value = v;
22
30
  this.__isEmpty = false;
23
31
  this.__notifyFieldValueChange(false);
@@ -1 +1 @@
1
- {"version":3,"file":"INT32.js","sourceRoot":"","sources":["../../src/primitives/INT32.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class INT32 extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = Number.isInteger(initData) ? initData! : 0;\n this.__meta.typeName = \"primitives.INT32\";\n }\n\n override __updateWithLiteral(v: number) {\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for int32 min max boundaries\n\n if (this._value > 2147483647) {\n return [\"constraint.violation.range.int32.max\", \"2147483647\"];\n }\n if (this._value < -2147483648) {\n return [\"constraint.violation.range.int32.min\", \"-2147483648\"];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An int32 has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"int32\", INT32);\n"]}
1
+ {"version":3,"file":"INT32.js","sourceRoot":"","sources":["../../src/primitives/INT32.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class INT32 extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof value !== \"number\") {\n value = 0;\n }\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = Number.isInteger(initData) ? initData! : 0;\n this.__meta.typeName = \"primitives.INT32\";\n }\n\n override __updateWithLiteral(v: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof v !== \"number\") {\n v = 0;\n }\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for int32 min max boundaries\n\n if (this._value > 2147483647) {\n return [\"constraint.violation.range.int32.max\", \"2147483647\"];\n }\n if (this._value < -2147483648) {\n return [\"constraint.violation.range.int32.min\", \"-2147483648\"];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An int32 has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"int32\", INT32);\n"]}
@@ -6,6 +6,10 @@ export class INT64 extends FieldNode {
6
6
  return this._value;
7
7
  }
8
8
  set value(value) {
9
+ // guard for API responses which sometimes send a null instead of a value
10
+ if (typeof value !== "bigint") {
11
+ value = 0n;
12
+ }
9
13
  this._value = value;
10
14
  this.__isEmpty = false;
11
15
  this.__climbUpValidation();
@@ -18,7 +22,13 @@ export class INT64 extends FieldNode {
18
22
  this.__meta.typeName = "primitives.INT64";
19
23
  }
20
24
  __updateWithLiteral(v) {
21
- this._value = BigInt(v);
25
+ // guard for API responses which sometimes send a null instead of a value
26
+ if (typeof v !== "string" && typeof v !== "number" && typeof v !== "bigint") {
27
+ this._value = 0n;
28
+ }
29
+ else {
30
+ this._value = BigInt(v);
31
+ }
22
32
  this.__isEmpty = false;
23
33
  this.__notifyFieldValueChange(false);
24
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"INT64.js","sourceRoot":"","sources":["../../src/primitives/INT64.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class INT64 extends FieldNode {\n get value(): bigint {\n return this._value;\n }\n\n set value(value: bigint) {\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: bigint;\n\n constructor(initData?: string, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = BigInt(initData ?? \"0\");\n this.__meta.typeName = \"primitives.INT64\";\n }\n\n override __updateWithLiteral(v: string) {\n this._value = BigInt(v);\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0n) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An int64 has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % BigInt(value as string | number | bigint | boolean) !== 0n) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): string {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value.toString();\n }\n\n override valueOf(): bigint {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0n;\n this._value = 0n;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"int64\", INT64);\n"]}
1
+ {"version":3,"file":"INT64.js","sourceRoot":"","sources":["../../src/primitives/INT64.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class INT64 extends FieldNode {\n get value(): bigint {\n return this._value;\n }\n\n set value(value: bigint) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof value !== \"bigint\") {\n value = 0n;\n }\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: bigint;\n\n constructor(initData?: string, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = BigInt(initData ?? \"0\");\n this.__meta.typeName = \"primitives.INT64\";\n }\n\n override __updateWithLiteral(v: string) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof v !== \"string\" && typeof v !== \"number\" && typeof v !== \"bigint\") {\n this._value = 0n;\n } else {\n this._value = BigInt(v);\n }\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0n) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An int64 has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % BigInt(value as string | number | bigint | boolean) !== 0n) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): string {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value.toString();\n }\n\n override valueOf(): bigint {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0n;\n this._value = 0n;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"int64\", INT64);\n"]}
@@ -6,6 +6,10 @@ export class SINT32 extends FieldNode {
6
6
  return this._value;
7
7
  }
8
8
  set value(value) {
9
+ // guard for API responses which sometimes send a null instead of a value
10
+ if (typeof value !== "number") {
11
+ value = 0;
12
+ }
9
13
  this._value = value;
10
14
  this.__isEmpty = false;
11
15
  this.__climbUpValidation();
@@ -18,6 +22,10 @@ export class SINT32 extends FieldNode {
18
22
  this.__meta.typeName = "primitives.SINT32";
19
23
  }
20
24
  __updateWithLiteral(v) {
25
+ // guard for API responses which sometimes send a null instead of a value
26
+ if (typeof v !== "number") {
27
+ v = 0;
28
+ }
21
29
  this._value = v;
22
30
  this.__isEmpty = false;
23
31
  this.__notifyFieldValueChange(false);
@@ -1 +1 @@
1
- {"version":3,"file":"SINT32.js","sourceRoot":"","sources":["../../src/primitives/SINT32.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class SINT32 extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = Number.isInteger(initData) ? initData! : 0;\n this.__meta.typeName = \"primitives.SINT32\";\n }\n\n override __updateWithLiteral(v: number) {\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for sint32 min max boundaries\n\n if (this._value > 2147483647) {\n return [\"constraint.violation.range.sint32.max\", \"2147483647\"];\n }\n if (this._value < -2147483648) {\n return [\"constraint.violation.range.sint32.min\", \"-2147483648\"];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An sint32 has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"sint32\", SINT32);\n"]}
1
+ {"version":3,"file":"SINT32.js","sourceRoot":"","sources":["../../src/primitives/SINT32.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldConstraints } from \"../FieldConstraints\";\nimport { FieldNode } from \"../FieldNode\";\nimport { OPEN_MODELS_OPTIONS } from \"../OPEN_MODELS_OPTIONS\";\nimport { Registry } from \"../Registry\";\n\nexport class SINT32 extends FieldNode {\n get value(): number {\n return this._value;\n }\n\n set value(value: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof value !== \"number\") {\n value = 0;\n }\n this._value = value;\n this.__isEmpty = false;\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: number;\n\n constructor(initData?: number, parent?: FieldNode, parentAttributeName?: string) {\n super(undefined, parent, parentAttributeName);\n this.__isPrimitive = true;\n this._value = Number.isInteger(initData) ? initData! : 0;\n this.__meta.typeName = \"primitives.SINT32\";\n }\n\n override __updateWithLiteral(v: number) {\n // guard for API responses which sometimes send a null instead of a value\n if (typeof v !== \"number\") {\n v = 0;\n }\n this._value = v;\n this.__isEmpty = false;\n this.__notifyFieldValueChange(false);\n }\n\n protected override ___updateNotEmptyPath() {\n if (this._value === 0) {\n this.___isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues || OPEN_MODELS_OPTIONS.EmitUnpopulated);\n } else {\n this.___isEmpty = false;\n super.___updateNotEmptyPath();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n override __mapProtoNameJsonToJson(data: number): number {\n return data;\n }\n\n protected override __checkTypeBoundaries(): string[] | undefined {\n // check for sint32 min max boundaries\n\n if (this._value > 2147483647) {\n return [\"constraint.violation.range.sint32.max\", \"2147483647\"];\n }\n if (this._value < -2147483648) {\n return [\"constraint.violation.range.sint32.min\", \"-2147483648\"];\n }\n return undefined;\n }\n\n protected override __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined {\n for (const [constraint, value] of Object.entries(fieldConstraints)) {\n // An sint32 has always a value if (constraint === 'required') {}\n if (constraint === \"maximum\") {\n // By default, the minimum and maximum values are included in the range. \">\" is used to check.\n if (fieldConstraints.exclusive_maximum && this._value >= value) {\n return [\"constraint.violation.exclusive_maximum\", String(value), String(this._value)];\n }\n if (this._value > value) {\n return [\"constraint.violation.maximum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"minimum\") {\n // By default, the minimum and maximum values are included in the range. \"<\" is used to check.\n if (fieldConstraints.exclusive_minimum && this._value <= value) {\n return [\"constraint.violation.exclusive_minimum\", String(value), String(this._value)];\n }\n if (this._value < value) {\n return [\"constraint.violation.minimum\", String(value), String(this._value)];\n }\n }\n if (constraint === \"multiple_of\") {\n // Use the multiple_of keyword to specify that a number must be the multiple of another number\n // use this to define the step ??\n if (this._value % value !== 0) {\n return [\"constraint.violation.multiple_of\", String(value), String(this._value)];\n }\n }\n }\n\n return undefined;\n }\n\n override __toJson(): number {\n return this.__toLiteral();\n }\n\n override __toLiteral() {\n return this._value;\n }\n\n override valueOf(): number {\n return this._value;\n }\n\n override toString(): string {\n return this._value.toString();\n }\n\n public override __clear(withoutNotification = false) {\n // only notify when they are changes\n const shouldNotify = this._value !== 0;\n this._value = 0;\n if (shouldNotify && !withoutNotification) {\n this.__notifyFieldValueChange(false);\n }\n }\n}\n\nRegistry.register(\"sint32\", SINT32);\n"]}