@supatype/cli 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +136 -130
- package/.turbo/turbo-typecheck.log +1 -1
- package/dist/cli-version-embedded.js +1 -1
- package/dist/commands/db.d.ts.map +1 -1
- package/dist/commands/db.js +23 -1
- package/dist/commands/db.js.map +1 -1
- package/dist/commands/doctor.d.ts +0 -7
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +26 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +15 -7
- package/dist/commands/push.js.map +1 -1
- package/dist/compose-local-server-image.d.ts +11 -0
- package/dist/compose-local-server-image.d.ts.map +1 -1
- package/dist/compose-local-server-image.js +18 -0
- package/dist/compose-local-server-image.js.map +1 -1
- package/dist/db-preflight.d.ts +23 -0
- package/dist/db-preflight.d.ts.map +1 -1
- package/dist/db-preflight.js +66 -1
- package/dist/db-preflight.js.map +1 -1
- package/dist/dev-compose.d.ts +1 -0
- package/dist/dev-compose.d.ts.map +1 -1
- package/dist/dev-compose.js +79 -10
- package/dist/dev-compose.js.map +1 -1
- package/dist/field-bounds.d.ts +68 -0
- package/dist/field-bounds.d.ts.map +1 -0
- package/dist/field-bounds.js +277 -0
- package/dist/field-bounds.js.map +1 -0
- package/dist/hooks-generator.d.ts +1 -1
- package/dist/hooks-generator.d.ts.map +1 -1
- package/dist/hooks-generator.js +78 -4
- package/dist/hooks-generator.js.map +1 -1
- package/dist/model-hooks.d.ts +44 -2
- package/dist/model-hooks.d.ts.map +1 -1
- package/dist/model-hooks.js +116 -12
- package/dist/model-hooks.js.map +1 -1
- package/dist/schema-ast-v2.d.ts +38 -4
- package/dist/schema-ast-v2.d.ts.map +1 -1
- package/dist/schema-ast-v2.js +87 -4
- package/dist/schema-ast-v2.js.map +1 -1
- package/dist/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor.js +309 -27
- package/dist/type-extractor.js.map +1 -1
- package/package.json +4 -3
- package/src/cli-version-embedded.ts +1 -1
- package/src/commands/db.ts +27 -1
- package/src/commands/doctor.ts +30 -0
- package/src/commands/push.ts +26 -6
- package/src/compose-local-server-image.ts +17 -0
- package/src/db-preflight.ts +89 -1
- package/src/dev-compose.ts +96 -9
- package/src/field-bounds.ts +359 -0
- package/src/hooks-generator.ts +81 -4
- package/src/model-hooks.ts +158 -12
- package/src/schema-ast-v2.ts +114 -10
- package/src/type-extractor.ts +374 -39
- package/tests/db-preflight.test.ts +80 -0
- package/tests/field-bounds-matrix.test.ts +163 -0
- package/tests/field-bounds.test.ts +139 -0
- package/tests/field-validators.test.ts +139 -0
- package/tests/hooks-generator.test.ts +86 -0
- package/tests/local-server-image-env.test.ts +93 -0
- package/tests/model-constraints.test.ts +293 -0
- package/tests/model-hooks.test.ts +56 -0
- package/tests/type-extractor.test.ts +49 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/dev-compose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-compose.js","sourceRoot":"","sources":["../src/dev-compose.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAEL,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,GAErB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAA;AACjF,OAAO,EAAE,8BAA8B,EAAkC,MAAM,qBAAqB,CAAA;AACpG,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,wFAAwF;AACxF,MAAM,mBAAmB,GAAG,KAAK,CAAA;AAEjC,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,MAA6B;IAC7E,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC/C,iGAAiG;IACjG,wFAAwF;IACxF,MAAM,eAAe,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAA;IAC1F,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE;QAC5B,aAAa,EAAE,eAAe;QAC9B,OAAO,EAAE,6BAA6B;KACvC,CAAC,CAAA;AACJ,CAAC;AAMD,kEAAkE;AAClE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;IACvD,OAAO,gBAAgB,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAA;AACzF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAAC,GAAW;IACzC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,GAAW,EAAE,MAA6B,EAAE,SAAS,GAAG,KAAK;IACvF,IAAI,oBAAoB,CAAC,MAAM,CAAC;QAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACjE,OAAO,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;AAC9D,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACnF,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;IACvD,OAAO,gBAAgB,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE,kBAAkB,CAAA;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,GAAW,EACX,MAA6B,EAC7B,KAA0B;IAE1B,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,wEAAwE,CAC3E,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,CAAA;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACvF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAE9E,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACnE,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA6B,EAC7B,kBAA2B;IAE3B,IAAI,kBAAkB,EAAE,IAAI,EAAE;QAAE,OAAO,KAAK,CAAA;IAC5C,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE;QAAE,OAAO,KAAK,CAAA;IAC3C,gGAAgG;IAChG,8FAA8F;IAC9F,IAAI,oBAAoB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9C,OAAO,sBAAsB,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,GAAW,EACX,MAA6B,EAC7B,QAAiB;IAEjB,IAAI,QAAQ,EAAE,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAA;IACrC,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC,UAAU,CAAA;IACvD,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,oCAAoC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACvD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,OAAO,cAAc,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CACjC,MAA6B,EAC7B,KAA2B,EAC3B,GAAW,EACX,OAAe,EACf,KAAqC,EACrC,SAAS,GAAG,OAAO,EACnB,SAAsB;IAEtB,IAAI,oBAAoB,CAAC,MAAM,CAAC;QAAE,OAAM;IAExC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;QAC/E,KAAK,EAAE,IAAI;QACX,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;KACtC,CAAC,CAAA;IACF,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,SAAS,EAAE,EAAE,CAAA;QACb,iBAAiB,CAAC,EAAE,EAAE,gDAAgD,EAAE,KAAK,CAAC,CAAA;IAChF,CAAC;IACD,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAW,EACX,MAA6B,EAC7B,OAAe,EACf,cAAsB,EACtB,QAAgB,EAChB,SAAkB,EAClB,gBAAyB;IAEzB,MAAM,MAAM,GAAG,oBAAoB,QAAQ,EAAE,CAAA;IAC7C,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC/C,gEAAgE;IAChE,EAAE;IACF,0FAA0F;IAC1F,4FAA4F;IAC5F,8FAA8F;IAC9F,iFAAiF;IACjF,EAAE;IACF,oFAAoF;IACpF,6FAA6F;IAC7F,yDAAyD;IACzD,MAAM,OAAO,GAA2B;QACtC,sFAAsF;QACtF,0FAA0F;QAC1F,qFAAqF;QACrF,2FAA2F;QAC3F,gCAAgC;QAChC,GAAG,uBAAuB,CAAC,GAAG,CAAC;QAC/B,kFAAkF;QAClF,GAAG,2BAA2B,CAAC,GAAG,CAAC;QACnC,QAAQ,EAAE,OAAO;QACjB,gBAAgB,EAAE,cAAc;QAChC,wBAAwB,EAAE,OAAO;QACjC,sBAAsB,EAAE,OAAO;QAC/B,6BAA6B,EAAE,OAAO;QACtC,mBAAmB,EAAE,MAAM;QAC3B,wBAAwB,EAAE,MAAM;QAChC,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC;QACpC,gBAAgB,EAAE,MAAM;QACxB,QAAQ,EAAE,MAAM;QAChB,yBAAyB,EAAE,MAAM;QACjC,GAAG,SAAS;QACZ,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC;KACnF,CAAA;IACD,iGAAiG;IACjG,gGAAgG;IAChG,2FAA2F;IAC3F,8FAA8F;IAC9F,sFAAsF;IACtF,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAChD,oEAAoE;QACpE,2FAA2F;QAC3F,gCAAgC;QAChC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;QAC3D,OAAO,CAAC,YAAY;YAClB,gBAAgB,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,cAAc,SAAS,IAAI,MAAM,kBAAkB,CAAA;IACzG,CAAC;IACD,MAAM,eAAe,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAA;IAC1F,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;QAC1B,aAAa,EAAE,eAAe;QAC9B,OAAO,EAAE,6BAA6B;KACvC,CAAC,CAAA;AACJ,CAAC;AAED,uGAAuG;AACvG,SAAS,mBAAmB,CAC1B,GAAW,EACX,MAA6B,EAC7B,OAAe,EACf,cAAsB,EACtB,QAAgB,EAChB,SAAkB,EAClB,gBAAyB;IAEzB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAClG,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAA2B,EAAE,GAAW,EAAE,KAAa,EAAE,cAAsB;IAC/G,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IAC3E,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAE7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;IACnC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,SAAS,CACrB,QAAQ,EACR,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,CAAC,EACvE,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CACtC,CAAA;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;AACtE,CAAC;AAED,mEAAmE;AACnE,SAAS,uBAAuB,CAC9B,KAA2B,EAC3B,GAAW,EACX,cAAsB,EACtB,OAAe;IAEf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IACnG,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACnE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;AAChG,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACxB,KAA2B,EAC3B,GAAW,EACX,cAAsB,EACtB,MAAc;IAEd,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;IAChD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IACnG,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAEtE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC5B,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IAClE,MAAM,OAAO,GAAG,IAAI,IAAI,uCAAuC,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAA;IACxF,IAAI,CAAC;QACH,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,WAAW,OAAO,IAAI,CAAC,CAAA;IAC7E,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,MAAc;IAC3D,MAAM,IAAI,GAAG,oBAAoB,QAAQ,EAAE,CAAA;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,KAAK,CAAC,GAAG,IAAI,iBAAiB,CAAC;gBAC/B,KAAK,CAAC,GAAG,IAAI,qBAAqB,CAAC;aACpC,CAAC,CAAA;YACF,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAM;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,gCAAgC,MAAM,GAAG,CAAC,CAAA;AACnF,CAAC;AAED,wFAAwF;AACxF,KAAK,UAAU,mBAAmB,CAChC,QAAgB,EAChB,cAAsB,EACtB,MAAc;IAEd,MAAM,GAAG,GAAG,oBAAoB,QAAQ,oBAAoB,CAAA;IAC5D,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,cAAc,EAAE,EAAE,CAAA;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YACzC,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAM;YAClB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAA;YAChG,IAAI,CAAC,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5C,2DAA2D;gBAC3D,OAAM;YACR,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,CAAC,IAAI,CACV,6BAA6B,GAAG,gCAAgC,MAAM,kCAAkC,CACzG,CAAA;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,GAAyB,EACzB,QAAgB,EAChB,cAAsB;IAEtB,MAAM,uBAAuB,CAAC,GAAG,EAAE,oBAAoB,QAAQ,aAAa,EAAE,cAAc,CAAC,CAAA;AAC/F,CAAC;AAED,IAAI,cAAc,GAAkB,IAAI,CAAA;AACxC,IAAI,cAAc,GAAkB,IAAI,CAAA;AACxC,IAAI,oBAAoB,GAAG,KAAK,CAAA;AAChC,IAAI,kBAAkB,GAAG,KAAK,CAAA;AAE9B;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CACnC,GAAW,EACX,MAA6B,EAC7B,GAAY;IAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAA;IAE9D,IAAI,CAAC;QACH,MAAM,YAAY,EAAE,CAAA;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,kEAAmE,GAAa,CAAC,OAAO,EAAE,CAC3F,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAA;IACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAsC,WAAW,EAAE;gBACnF,GAAG;gBACH,IAAI,EAAE,YAAY;aACnB,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAA;YAC/C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAA;gBACnE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAA;gBAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBACrC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACjD,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAC3B,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAA;YACzD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;YAChE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sCAAuC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,aAAa,CAAU,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QACrF,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxC,aAAa,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;IAC/E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,mFAAoF,GAAa,CAAC,OAAO,EAAE,CAC5G,CAAA;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,MAA6B,EAC7B,KAA2B,EAC3B,UAAkB,EAClB,cAAsB;IAEtB,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IAC1C,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;IACpD,gGAAgG;IAChG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/B,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,KAAK,cAAc;QAAE,OAAM;IAEpE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,oFAAoF;IACpF,kFAAkF;IAClF,MAAM,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IAE9C,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;QAChF,MAAM,YAAY,EAAE,CAAA;QACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,QAAQ,CAAA;QACrD,MAAM,OAAO,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAA;QACnD,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,EAAE;gBAC3B,GAAG;gBACH,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;gBAC7C,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,IAAI;gBACX,GAAG,CAAC,OAAO;oBACT,CAAC,CAAC;wBACE,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;wBACpD,uBAAuB,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;qBAClD;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,GAAG,OAAO,CAAA;YACxB,MAAM,GAAG,CAAA;QACX,CAAC;QACD,cAAc,GAAG,OAAO,CAAA;QACxB,cAAc,GAAG,IAAI,CAAA;QACrB,IAAI,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;QACzC,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAA;IACnD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACpF,mEAAmE;QACnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAC5C,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAClF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IACD,+EAA+E;IAC/E,iFAAiF;IACjF,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC;QAC1E,CAAC,CAAC,MAAM,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC;QACtE,CAAC,CAAC,MAAM,OAAO,EAAE,CAAA;IACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,cAAc,GAAG,OAAO,CAAA;QACxB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAA;QAC7D,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,mCAAmC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9E,CAAC;IACD,cAAc,GAAG,OAAO,CAAA;IACxB,cAAc,GAAG,IAAI,CAAA;IAErB,IAAI,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAA;IACnD,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,0BAA0B,CACvC,GAAW,EACX,MAA6B,EAC7B,KAA2B,EAC3B,UAAkB,EAClB,cAAsB;IAEtB,IAAI,oBAAoB,EAAE,CAAC;QACzB,kBAAkB,GAAG,IAAI,CAAA;QACzB,OAAM;IACR,CAAC;IACD,oBAAoB,GAAG,IAAI,CAAA;IAC3B,IAAI,CAAC;QACH,GAAG,CAAC;YACF,kBAAkB,GAAG,KAAK,CAAA;YAC1B,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,CAAA;QAC5E,CAAC,QAAQ,kBAAkB,EAAC;IAC9B,CAAC;YAAS,CAAC;QACT,oBAAoB,GAAG,KAAK,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,KAA2B,EAC3B,GAAW,EACX,cAAsB,EACtB,MAA6B,EAC7B,OAA0C;IAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,cAAc;QAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC1D,WAAW,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;IAC5C,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IACD,WAAW,CAAC,IAAI,CACd,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,eAAe,EACf,MAAM,EACN,IAAI,EACJ,oCAAoC,EACpC,gBAAgB,EAChB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EACrC,SAAS,EACT,mBAAmB,CACpB,CAAA;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,WAAW,CAAC,IAAI,CACd,qBAAqB,EACrB,OAAO,CAAC,YAAY,EACpB,2BAA2B,EAC3B,OAAO,CAAC,kBAAkB,CAC3B,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAsB;QACjC,GAAG,OAAO,CAAC,GAAG;QACd,gBAAgB,EAAE,OAAO;KAC1B,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC1D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,qBAAqB,GAAG,WAAW,CAAA;IAC7C,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE;QAC9C,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,GAAG,EAAE,OAAO;KACb,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAEhD,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,cAAc,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAClE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,KAA2B,EAC3B,GAAW,EACX,cAAsB,EACtB,MAA6B,EAC7B,QAAgB;IAEhB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,cAAc;QAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC1D,WAAW,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;IAC5C,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IACD,WAAW,CAAC,IAAI,CACd,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,eAAe,EACf,MAAM,EACN,IAAI,EACJ,oCAAoC,EACpC,gBAAgB,EAChB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EACrC,UAAU,EACV,QAAQ,CACT,CAAA;IACD,MAAM,OAAO,GAAsB;QACjC,GAAG,OAAO,CAAC,GAAG;QACd,gBAAgB,EAAE,OAAO;KAC1B,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC1D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,qBAAqB,GAAG,WAAW,CAAA;IAC7C,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE;QAC9C,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,GAAG,EAAE,OAAO;KACb,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,qBAAqB,CAAa,MAAM,CAAC,CAAA;IAEtD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAA6B;IAC/E,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,QAAQ,CAAA;IAErD,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;QACtC,MAAM,oCAAoC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC9D,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACrD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAC1C,MAAM,YAAY,EAAE,CAAA;QACpB,OAAO,aAAa,CAAa,OAAO,EAAE;YACxC,GAAG;YACH,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;YAC7C,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,CAAA;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACvF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAE9E,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IAE1C,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAElE,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAE1C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IAC1C,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;IACpD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAE3C,IAAI,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC9E,mEAAmE;IACnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5C,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAA;QACjE,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,mCAAmC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAChF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAA6B;IAC/E,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;IAC3C,gGAAgG;IAChG,gGAAgG;IAChG,mDAAmD;IACnD,MAAM,SAAS,GACb,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;QACxD,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,CAAA;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACvF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAE9E,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IAE1C,OAAO,CAAC,GAAG,CAAC,oEAAoE,OAAO,MAAM,CAAC,CAAA;IAC9F,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAElE,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC1C,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAEnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;QAChF,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IACF,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,iBAAiB,CAAC,SAAS,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAClC,MAAM,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;IACvD,MAAM,6BAA6B,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;IAElE,MAAM,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE;QAChD,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;KACrD,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,MAA6B,EAAE,IAAuB;IACrG,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;IAC3C,gGAAgG;IAChG,gGAAgG;IAChG,mDAAmD;IACnD,MAAM,SAAS,GACb,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;QACxD,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,CAAA;IACrE,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IACxE,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;IAEvF,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;IAC/C,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IAElF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;IAEhG,OAAO,CAAC,GAAG,CAAC,yEAAyE,OAAO,cAAc,QAAQ,MAAM,CAAC,CAAA;IACzH,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACnE,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;IAC3E,CAAC;IAID,MAAM,aAAa,GAKf;QACF,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI;QACnB,aAAa,EAAE,IAAI;KACpB,CAAA;IAED,mBAAmB,CAAC,KAAK,IAAI,EAAE;QAC7B,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,CAAA;QACpC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAA;QAClC,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;YAChC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;YACzC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAA;QACpC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;QAClD,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,CAAA;QACtC,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;QACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/F,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,8CAA8C,UAAU,GAAG,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC,EAAE;QACD,GAAG;QACH,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE;KAC1E,CAAC,CAAA;IAEF,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAEjE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACzF,iFAAiF;IACjF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAE7C,mFAAmF;IACnF,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrD,CAAC;QACC,MAAM,WAAW,GAAG,CAAC,CAAA;QACrB,IAAI,OAAgB,CAAA;QACpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;gBACnE,OAAO,GAAG,SAAS,CAAA;gBACnB,MAAK;YACP,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,CAAA;gBACX,OAAO,CAAC,KAAK,CACX,kDAAkD,OAAO,IAAI,WAAW,IAAI,EAC3E,CAAW,CAAC,OAAO,CACrB,CAAA;gBACD,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,OAAO,IAAI,WAAW,EAAE,CAAC,CAAA;gBACvF,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC1B,wFAAwF;oBACxF,qFAAqF;oBACrF,kBAAkB;oBAClB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;wBAClC,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;wBACxE,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;4BAChE,KAAK,EAAE,IAAI;4BACX,KAAK,EAAE,QAAQ;yBAChB,CAAC,CAAA;wBACF,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;oBACnE,CAAC;oBACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAA;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,+BAA+B,CAAC,CAAA;YACvE,aAAa,EAAE,CAAA;YACf,MAAM,IAAI,KAAK,CACb,oCAAoC,WAAW,cAAe,OAAiB,CAAC,OAAO,EAAE,CAC1F,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;QAC/E,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAA;IACF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,aAAa,EAAE,CAAA;QACf,iBAAiB,CAAC,QAAQ,EAAE,0CAA0C,EAAE,QAAQ,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;QAC/D,MAAM,cAAc,GAAG,gBAAgB,CACrC,KAAK,CAAC,WAAW,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,CAAC,EACvD,GAAG,EACH,OAAO,EACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CACjC,CAAA;QACD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,CAAA;YACf,iBAAiB,CAAC,cAAc,EAAE,+DAA+D,EAAE,QAAQ,CAAC,CAAA;QAC9G,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,YAAY,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACnF,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAA;QAClE,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,KAAK,CAAC,WAAW,EACjB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,CAAC,EACzD,GAAG,EACH,OAAO,EACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CACjC,CAAA;QACD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,aAAa,EAAE,CAAA;YACf,iBAAiB,CAAC,QAAQ,EAAE,4CAA4C,EAAE,QAAQ,CAAC,CAAA;QACrF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;IACpD,MAAM,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;IACpD,MAAM,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;IAEvD,MAAM,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE;QAChD,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;KACrD,CAAC,CAAA;IAEF,qBAAqB,CAAC,GAAG,EAAE;QACzB,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,oBAAoB,QAAQ,EAAE;QACtC,WAAW,EAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QAC/B,QAAQ;QACR,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;IAEF,mBAAmB,CAAC,GAAG,EAAE;QACvB,cAAc,EAAE,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QAC/B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC1C,MAAM,6BAA6B,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;IAElE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACnF,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtC,eAAe,EAAE,CAAA;IAEjB,IAAI,UAAU,GAAe,IAAI,CAAA;IACjC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAA;IAC/C,IAAI,cAAc,EAAE,CAAC;QACnB,UAAU,GAAG,wBAAwB,CAAC;YACpC,GAAG;YACH,cAAc;YACd,MAAM;YACN,cAAc;YACd,WAAW,EAAE,oBAAoB,QAAQ,EAAE;YAC3C,eAAe,EAAE,oBAAoB,eAAe,EAAE;YACtD,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAA;QACF,UAAU,EAAE,KAAK,EAAE,CAAA;QACnB,aAAa,CAAC,UAAU,GAAG,UAAU,CAAA;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,iFAAiF,QAAQ,UAAU,CACpG,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,QAAQ,EAAE,EAAE;QACrD,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,QAAQ,WAAW,EAAE;QAC/D,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,QAAQ,WAAW,EAAE;QAC/D,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,oBAAoB,QAAQ,cAAc,EAAE;QACrE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,QAAQ,eAAe,EAAE;KACtE,CAAA;IACD,IAAI,qBAAqB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,QAAQ,GAAG,EAAE,CAAC,CAAA;IACpE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,oBAAoB,QAAQ,UAAU,EAAE,CAAC,CAAA;IAE5E,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACpC,CAAC;IAED,eAAe,CAAC;QACd,KAAK,EAAE,8BAA8B,OAAO,GAAG;QAC/C,KAAK;QACL,OAAO;QACP,cAAc;QACd,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACrD,aAAa,CAAC,OAAO,GAAG,OAAO,CAAA;IAE/B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,iBAAiB,EAAE,IAAI,CAAC,CAAA;QAC1G,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,iBAAiB,CAAC,CAAA;QAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QACzC,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;YAC3F,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAM;YACtC,IAAI,aAAa,CAAC,aAAa;gBAAE,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;YAC1E,aAAa,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5C,aAAa,CAAC,aAAa,GAAG,IAAI,CAAA;gBAClC,OAAO,CAAC,GAAG,CAAC,mCAAmC,QAAQ,qBAAqB,CAAC,CAAA;gBAC7E,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC;qBAChE,IAAI,CAAC,KAAK,IAAI,EAAE;oBACf,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;oBACjD,MAAM,6BAA6B,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;gBAC3E,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAG,CAAW,CAAC,OAAO,CAAC,CACtE,CAAA;YACL,CAAC,EAAE,GAAG,CAAC,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,IAAI,OAAO,CAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAY;IAC5C,MAAM,GAAG,GAAG,GAA0F,CAAA;IACtG,IAAI,CAAC,GAAG,EAAE,MAAM;QAAE,OAAO,KAAK,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAQ;QAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe;gBAAE,OAAO,IAAI,CAAA;QAChF,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAA2B,EAC3B,GAAW,EACX,cAAsB;IAEtB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,IAAI,EAAE,cAAc;QAC/B,IAAI,EAAE,KAAK,CAAC,WAAW;KACxB,CAAA;IACD,MAAM,GAAG,GAAG,yFAAyF,CAAA;IACrG,MAAM,MAAM,GAAG,SAAS,CACtB,QAAQ,EACR,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI;QAC5D,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EAC7D,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACvD,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAA;IACjH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"dev-compose.js","sourceRoot":"","sources":["../src/dev-compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a declared bound means for each field kind, and the SQL it compiles to.
|
|
3
|
+
*
|
|
4
|
+
* **This table is the mechanism.** Bounds used to be compiled inside the modifier cases of
|
|
5
|
+
* `type-extractor.ts`, which meant `MaxLength` became `char_length(col)` whatever the column turned
|
|
6
|
+
* out to be: `char_length(text[])` does not exist, so the RFC's own `tags: MaxLength<string[], 10>`
|
|
7
|
+
* produced SQL that fails `CREATE TABLE`. Worse, nine of twelve engine field structs had nowhere to
|
|
8
|
+
* put a `check`, so the constraint was dropped by serde with no error anywhere in the chain.
|
|
9
|
+
*
|
|
10
|
+
* A table keyed by kind fixes the class of bug rather than the instances: a kind absent from
|
|
11
|
+
* {@link BOUNDS_BY_KIND} throws, so a new field kind cannot be added without answering "what does a
|
|
12
|
+
* bound mean here", and every answer is either an expression or a refusal with a named alternative.
|
|
13
|
+
* There is no third outcome, which is what "no bound is ever silent" means in practice.
|
|
14
|
+
*/
|
|
15
|
+
import { type FieldKind, type FieldValidation } from "./schema-ast-v2.js";
|
|
16
|
+
/** Bounds as declared on the type, before anything knows what column they will land on. */
|
|
17
|
+
export interface DeclaredBounds {
|
|
18
|
+
maxLength?: number;
|
|
19
|
+
minLength?: number;
|
|
20
|
+
maxItems?: number;
|
|
21
|
+
minItems?: number;
|
|
22
|
+
min?: number | string;
|
|
23
|
+
max?: number | string;
|
|
24
|
+
}
|
|
25
|
+
/** What "length" counts, per storage. */
|
|
26
|
+
type LengthForm = "chars" | "octets" | "richText";
|
|
27
|
+
/** What "items" counts, per storage. */
|
|
28
|
+
type ItemsForm = "array" | "jsonbArray";
|
|
29
|
+
/**
|
|
30
|
+
* Re-exported for tests. Completeness is now the compiler's job, not a test's: this exists so the
|
|
31
|
+
* matrix can assert it covers every kind, which is a different question from whether every kind is
|
|
32
|
+
* classified.
|
|
33
|
+
*/
|
|
34
|
+
export declare const CLASSIFIED_KINDS: readonly FieldKind[];
|
|
35
|
+
/** How a column is measured, once the kind has decided. */
|
|
36
|
+
export type MeasureForm = LengthForm | ItemsForm;
|
|
37
|
+
export interface MeasureResolution {
|
|
38
|
+
/** How to measure, when this kind can be measured this way. */
|
|
39
|
+
form?: MeasureForm;
|
|
40
|
+
/** Why it cannot, and what to use instead. Present exactly when `form` is not. */
|
|
41
|
+
instead?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* How a kind is measured, for one measure family.
|
|
45
|
+
*
|
|
46
|
+
* **The single answer for both paths.** `MaxLength<T, N>` on a field and `Length<"col">` inside a
|
|
47
|
+
* model constraint have to agree about what "length" means for a given column, or the same schema
|
|
48
|
+
* gets `char_length` in one place and `cardinality` in the other. A second table for the constraint
|
|
49
|
+
* path is how `char_length(text[])` would come back, in a new file, having been fixed once already.
|
|
50
|
+
*/
|
|
51
|
+
export declare function measureFormFor(kind: FieldKind, measure: "length" | "items", options?: {
|
|
52
|
+
jsonIsArray?: boolean;
|
|
53
|
+
}): MeasureResolution;
|
|
54
|
+
export interface BoundsCompileResult {
|
|
55
|
+
check?: string;
|
|
56
|
+
validation?: FieldValidation;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Compile declared bounds against the kind they landed on.
|
|
60
|
+
*
|
|
61
|
+
* Throws rather than dropping. A bound that cannot be honoured is a mistake in the schema, and the
|
|
62
|
+
* failure it used to produce, silence, is the one failure this must not have.
|
|
63
|
+
*/
|
|
64
|
+
export declare function compileBounds(field: string, kind: FieldKind, bounds: DeclaredBounds, options?: {
|
|
65
|
+
jsonIsArray?: boolean;
|
|
66
|
+
}): BoundsCompileResult;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=field-bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-bounds.d.ts","sourceRoot":"","sources":["../src/field-bounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEtF,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,yCAAyC;AACzC,KAAK,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;AACjD,wCAAwC;AACxC,KAAK,SAAS,GAAG,OAAO,GAAG,YAAY,CAAA;AAqIvC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EAAgB,CAAA;AAiBjE,2DAA2D;AAC3D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,CAAA;AAEhD,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,QAAQ,GAAG,OAAO,EAC3B,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,iBAAiB,CAKnB;AAuCD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;AASD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,mBAAmB,CA2DrB"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a declared bound means for each field kind, and the SQL it compiles to.
|
|
3
|
+
*
|
|
4
|
+
* **This table is the mechanism.** Bounds used to be compiled inside the modifier cases of
|
|
5
|
+
* `type-extractor.ts`, which meant `MaxLength` became `char_length(col)` whatever the column turned
|
|
6
|
+
* out to be: `char_length(text[])` does not exist, so the RFC's own `tags: MaxLength<string[], 10>`
|
|
7
|
+
* produced SQL that fails `CREATE TABLE`. Worse, nine of twelve engine field structs had nowhere to
|
|
8
|
+
* put a `check`, so the constraint was dropped by serde with no error anywhere in the chain.
|
|
9
|
+
*
|
|
10
|
+
* A table keyed by kind fixes the class of bug rather than the instances: a kind absent from
|
|
11
|
+
* {@link BOUNDS_BY_KIND} throws, so a new field kind cannot be added without answering "what does a
|
|
12
|
+
* bound mean here", and every answer is either an expression or a refusal with a named alternative.
|
|
13
|
+
* There is no third outcome, which is what "no bound is ever silent" means in practice.
|
|
14
|
+
*/
|
|
15
|
+
import { FIELD_KINDS } from "./schema-ast-v2.js";
|
|
16
|
+
const TEXTUAL = {
|
|
17
|
+
length: "chars",
|
|
18
|
+
instead: {
|
|
19
|
+
items: "text has characters, not items; use MaxLength/MinLength",
|
|
20
|
+
range: "text is not ordered numerically; use a model-level constraint if you need a comparison",
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
const NUMERIC = {
|
|
24
|
+
range: "numeric",
|
|
25
|
+
instead: {
|
|
26
|
+
length: "a number has no length; use Between to bound its value",
|
|
27
|
+
items: "a number has no items; use Between to bound its value",
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const temporal = (range) => ({
|
|
31
|
+
range,
|
|
32
|
+
instead: {
|
|
33
|
+
length: "a date has no length; use Between with ISO-8601 string bounds",
|
|
34
|
+
items: "a date has no items; use Between with ISO-8601 string bounds",
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
const NO_BOUNDS = (why) => ({
|
|
38
|
+
instead: { length: why, items: why, range: why },
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* What each bound means for each kind.
|
|
42
|
+
*
|
|
43
|
+
* `Record<FieldKind, KindBounds>` is the whole mechanism: it is **exhaustive by the compiler**, so
|
|
44
|
+
* adding a kind to `FIELD_KINDS` fails the build here until someone says what `MaxLength`,
|
|
45
|
+
* `MaxItems` and `Between` do for it. Composite kinds (`timestamps`, `publishable`, `softDelete`)
|
|
46
|
+
* expand into real columns before a bound could apply, so they carry none, but they still have to
|
|
47
|
+
* say so.
|
|
48
|
+
*/
|
|
49
|
+
const BOUNDS_BY_KIND = {
|
|
50
|
+
text: TEXTUAL,
|
|
51
|
+
email: TEXTUAL,
|
|
52
|
+
url: TEXTUAL,
|
|
53
|
+
slug: TEXTUAL,
|
|
54
|
+
color: TEXTUAL,
|
|
55
|
+
xml: TEXTUAL,
|
|
56
|
+
ip: TEXTUAL,
|
|
57
|
+
cidr: TEXTUAL,
|
|
58
|
+
macaddr: TEXTUAL,
|
|
59
|
+
tsQuery: TEXTUAL,
|
|
60
|
+
tsVector: TEXTUAL,
|
|
61
|
+
richText: {
|
|
62
|
+
length: "richText",
|
|
63
|
+
instead: {
|
|
64
|
+
items: "rich text is measured in characters of plain text; use MaxLength/MinLength",
|
|
65
|
+
range: "rich text is not ordered; use MaxLength/MinLength",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
bytes: {
|
|
69
|
+
length: "octets",
|
|
70
|
+
instead: {
|
|
71
|
+
items: "a binary column has octets, not items; use MaxLength/MinLength",
|
|
72
|
+
range: "a binary column is not ordered; use MaxLength/MinLength",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
integer: NUMERIC,
|
|
76
|
+
smallInt: NUMERIC,
|
|
77
|
+
bigInt: NUMERIC,
|
|
78
|
+
float: NUMERIC,
|
|
79
|
+
serial: NUMERIC,
|
|
80
|
+
bigSerial: NUMERIC,
|
|
81
|
+
decimal: NUMERIC,
|
|
82
|
+
money: NUMERIC,
|
|
83
|
+
datetime: temporal("timestamptz"),
|
|
84
|
+
timestamp: temporal("timestamp"),
|
|
85
|
+
date: temporal("date"),
|
|
86
|
+
interval: temporal("interval"),
|
|
87
|
+
array: {
|
|
88
|
+
items: "array",
|
|
89
|
+
instead: {
|
|
90
|
+
length: "an array has items, not characters; use MaxItems/MinItems",
|
|
91
|
+
range: "an array is not ordered; use MaxItems/MinItems",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
blocks: {
|
|
95
|
+
items: "jsonbArray",
|
|
96
|
+
instead: {
|
|
97
|
+
length: "blocks are counted, not measured; use MaxItems/MinItems",
|
|
98
|
+
range: "blocks are not ordered; use MaxItems/MinItems",
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
// `json` is decided per field, not per kind: `JSON<Item[]>` takes item bounds and `JSON<{...}>`
|
|
102
|
+
// takes none. {@link boundsForKind} applies that, which is why the entry here is the object case.
|
|
103
|
+
json: NO_BOUNDS("a JSON object has no single measure; bound a sub-field with a model-level constraint, " +
|
|
104
|
+
"or declare the field as JSON<T[]> to bound its element count"),
|
|
105
|
+
button: NO_BOUNDS("a button is a composite value; bound a sub-field with a model-level constraint"),
|
|
106
|
+
enum: NO_BOUNDS("the union already constrains the permitted values"),
|
|
107
|
+
boolean: NO_BOUNDS("a boolean has two values and needs no bound"),
|
|
108
|
+
uuid: NO_BOUNDS("a UUID is fixed width"),
|
|
109
|
+
image: NO_BOUNDS("size and type limits belong on the bucket: fileSizeLimit and allowedMimeTypes"),
|
|
110
|
+
file: NO_BOUNDS("size and type limits belong on the bucket: fileSizeLimit and allowedMimeTypes"),
|
|
111
|
+
geo: NO_BOUNDS("a geometry is not measured this way"),
|
|
112
|
+
vector: NO_BOUNDS("the dimension is already fixed by the type, as Vector<N>"),
|
|
113
|
+
relation: NO_BOUNDS("bound the column on the model this relation points at"),
|
|
114
|
+
custom: NO_BOUNDS("a plugin field declares its own storage; bounds are the plugin's to define"),
|
|
115
|
+
timestamps: NO_BOUNDS("a composite expands into columns before a bound could apply"),
|
|
116
|
+
publishable: NO_BOUNDS("a composite expands into columns before a bound could apply"),
|
|
117
|
+
softDelete: NO_BOUNDS("a composite expands into columns before a bound could apply"),
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Re-exported for tests. Completeness is now the compiler's job, not a test's: this exists so the
|
|
121
|
+
* matrix can assert it covers every kind, which is a different question from whether every kind is
|
|
122
|
+
* classified.
|
|
123
|
+
*/
|
|
124
|
+
export const CLASSIFIED_KINDS = FIELD_KINDS;
|
|
125
|
+
/** `JSON<T[]>` counts elements; `JSON<{...}>` takes no bound. Anything else follows its kind. */
|
|
126
|
+
function boundsForKind(kind, jsonIsArray) {
|
|
127
|
+
const entry = BOUNDS_BY_KIND[kind];
|
|
128
|
+
if (kind === "json" && jsonIsArray) {
|
|
129
|
+
return {
|
|
130
|
+
items: "jsonbArray",
|
|
131
|
+
instead: {
|
|
132
|
+
length: "a JSON array has items, not characters; use MaxItems/MinItems",
|
|
133
|
+
range: "a JSON array is not ordered; use MaxItems/MinItems",
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
return entry;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* How a kind is measured, for one measure family.
|
|
141
|
+
*
|
|
142
|
+
* **The single answer for both paths.** `MaxLength<T, N>` on a field and `Length<"col">` inside a
|
|
143
|
+
* model constraint have to agree about what "length" means for a given column, or the same schema
|
|
144
|
+
* gets `char_length` in one place and `cardinality` in the other. A second table for the constraint
|
|
145
|
+
* path is how `char_length(text[])` would come back, in a new file, having been fixed once already.
|
|
146
|
+
*/
|
|
147
|
+
export function measureFormFor(kind, measure, options = {}) {
|
|
148
|
+
const entry = boundsForKind(kind, options.jsonIsArray === true);
|
|
149
|
+
const form = measure === "length" ? entry.length : entry.items;
|
|
150
|
+
if (form !== undefined)
|
|
151
|
+
return { form };
|
|
152
|
+
return { instead: entry.instead?.[measure] ?? `a ${kind} field cannot be measured that way` };
|
|
153
|
+
}
|
|
154
|
+
const COLUMN = '"{name}"';
|
|
155
|
+
function lengthExpr(form) {
|
|
156
|
+
switch (form) {
|
|
157
|
+
case "chars":
|
|
158
|
+
return `char_length(${COLUMN})`;
|
|
159
|
+
case "octets":
|
|
160
|
+
return `octet_length(${COLUMN})`;
|
|
161
|
+
case "richText":
|
|
162
|
+
return `char_length(_supatype.richtext_text(${COLUMN}))`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* `jsonb_array_length` raises `cannot get array length of a non-array` at insert time, so the type
|
|
167
|
+
* guard is part of the constraint rather than an assumption about what callers send.
|
|
168
|
+
*/
|
|
169
|
+
function itemsClause(form, comparisons) {
|
|
170
|
+
if (form === "array") {
|
|
171
|
+
return comparisons.map((c) => `cardinality(${COLUMN}) ${c}`).join(" AND ");
|
|
172
|
+
}
|
|
173
|
+
const guarded = comparisons.map((c) => `jsonb_array_length(${COLUMN}) ${c}`).join(" AND ");
|
|
174
|
+
return `jsonb_typeof(${COLUMN}) = 'array' AND ${guarded}`;
|
|
175
|
+
}
|
|
176
|
+
function rangeLiteral(form, value) {
|
|
177
|
+
if (form === "numeric")
|
|
178
|
+
return String(value);
|
|
179
|
+
const cast = form === "timestamptz" ? "timestamptz" : form;
|
|
180
|
+
return `'${String(value).replace(/'/g, "''")}'::${cast}`;
|
|
181
|
+
}
|
|
182
|
+
/** ISO-8601 date, date-time or a Postgres interval. Validated here so a bad literal is a CLI error. */
|
|
183
|
+
function isTemporalLiteral(form, value) {
|
|
184
|
+
if (form === "interval")
|
|
185
|
+
return /^\s*\d+\s+[a-z]+(\s+\d+\s+[a-z]+)*\s*$/i.test(value);
|
|
186
|
+
return !Number.isNaN(Date.parse(value));
|
|
187
|
+
}
|
|
188
|
+
function refuse(field, modifier, kind, hint) {
|
|
189
|
+
const tail = hint ? ` ${hint}.` : "";
|
|
190
|
+
throw new Error(`Field "${field}": ${modifier} is not supported on a ${kind} field.${tail}`);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Compile declared bounds against the kind they landed on.
|
|
194
|
+
*
|
|
195
|
+
* Throws rather than dropping. A bound that cannot be honoured is a mistake in the schema, and the
|
|
196
|
+
* failure it used to produce, silence, is the one failure this must not have.
|
|
197
|
+
*/
|
|
198
|
+
export function compileBounds(field, kind, bounds, options = {}) {
|
|
199
|
+
const entry = boundsForKind(kind, options.jsonIsArray === true);
|
|
200
|
+
const clauses = [];
|
|
201
|
+
const validation = {};
|
|
202
|
+
const { maxLength, minLength } = bounds;
|
|
203
|
+
if (maxLength !== undefined || minLength !== undefined) {
|
|
204
|
+
const resolved = measureFormFor(kind, "length", options);
|
|
205
|
+
if (resolved.form === undefined) {
|
|
206
|
+
refuse(field, maxLength !== undefined ? "MaxLength" : "MinLength", kind, resolved.instead);
|
|
207
|
+
}
|
|
208
|
+
const expr = lengthExpr(resolved.form);
|
|
209
|
+
if (maxLength !== undefined) {
|
|
210
|
+
clauses.push(`${expr} <= ${maxLength}`);
|
|
211
|
+
validation.maxLength = maxLength;
|
|
212
|
+
}
|
|
213
|
+
if (minLength !== undefined) {
|
|
214
|
+
clauses.push(`${expr} >= ${minLength}`);
|
|
215
|
+
validation.minLength = minLength;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
const { maxItems, minItems } = bounds;
|
|
219
|
+
const itemsResolved = measureFormFor(kind, "items", options);
|
|
220
|
+
if (maxItems !== undefined || minItems !== undefined) {
|
|
221
|
+
if (itemsResolved.form === undefined) {
|
|
222
|
+
refuse(field, maxItems !== undefined ? "MaxItems" : "MinItems", kind, itemsResolved.instead);
|
|
223
|
+
}
|
|
224
|
+
const comparisons = [];
|
|
225
|
+
if (maxItems !== undefined) {
|
|
226
|
+
comparisons.push(`<= ${maxItems}`);
|
|
227
|
+
validation.maxItems = maxItems;
|
|
228
|
+
}
|
|
229
|
+
if (minItems !== undefined) {
|
|
230
|
+
comparisons.push(`>= ${minItems}`);
|
|
231
|
+
validation.minItems = minItems;
|
|
232
|
+
}
|
|
233
|
+
clauses.push(itemsClause(itemsResolved.form, comparisons));
|
|
234
|
+
}
|
|
235
|
+
const { min, max } = bounds;
|
|
236
|
+
if (min !== undefined || max !== undefined) {
|
|
237
|
+
if (!entry.range)
|
|
238
|
+
refuse(field, "Between", kind, entry.instead?.range);
|
|
239
|
+
for (const [bound, comparison] of [[min, ">="], [max, "<="]]) {
|
|
240
|
+
if (bound === undefined)
|
|
241
|
+
continue;
|
|
242
|
+
assertRangeShape(field, kind, entry.range, bound);
|
|
243
|
+
clauses.push(`${COLUMN} ${comparison} ${rangeLiteral(entry.range, bound)}`);
|
|
244
|
+
}
|
|
245
|
+
if (min !== undefined)
|
|
246
|
+
validation.min = min;
|
|
247
|
+
if (max !== undefined)
|
|
248
|
+
validation.max = max;
|
|
249
|
+
}
|
|
250
|
+
// Parenthesised only when there is something to bind, matching `mergeCheckConstraint`. Gratuitous
|
|
251
|
+
// parentheses are not cosmetic here: the differ compares this text against what Postgres hands
|
|
252
|
+
// back from `pg_get_constraintdef`, so every avoidable difference is a false "changed" on push.
|
|
253
|
+
return {
|
|
254
|
+
...(clauses.length > 0 && { check: joinClauses(clauses) }),
|
|
255
|
+
...(Object.keys(validation).length > 0 && { validation }),
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function joinClauses(clauses) {
|
|
259
|
+
const [only] = clauses;
|
|
260
|
+
if (clauses.length === 1 && only !== undefined)
|
|
261
|
+
return only;
|
|
262
|
+
return clauses.map((c) => `(${c})`).join(" AND ");
|
|
263
|
+
}
|
|
264
|
+
/** A number bounds a number and a string bounds a date. Crossing them is a mistake, not a cast. */
|
|
265
|
+
function assertRangeShape(field, kind, form, bound) {
|
|
266
|
+
const isNumeric = form === "numeric";
|
|
267
|
+
if (isNumeric && typeof bound !== "number") {
|
|
268
|
+
throw new Error(`Field "${field}": Between on a ${kind} field takes numbers, but "${bound}" is a string.`);
|
|
269
|
+
}
|
|
270
|
+
if (!isNumeric && typeof bound !== "string") {
|
|
271
|
+
throw new Error(`Field "${field}": Between on a ${kind} field takes ISO-8601 string bounds, but ${bound} is a number.`);
|
|
272
|
+
}
|
|
273
|
+
if (!isNumeric && !isTemporalLiteral(form, bound)) {
|
|
274
|
+
throw new Error(`Field "${field}": Between bound "${bound}" is not a valid ${form === "interval" ? "interval" : "ISO-8601 date"}.`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=field-bounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-bounds.js","sourceRoot":"","sources":["../src/field-bounds.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The module source, or `null` when no model declares a hook.
|
|
2
|
+
* The module source, or `null` when no model declares a hook or a field validator.
|
|
3
3
|
*
|
|
4
4
|
* Returning null rather than an empty module keeps a `_supatype/hooks.ts` from appearing in projects
|
|
5
5
|
* that have no hooks, a generated file nobody imports is a file somebody eventually edits.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-generator.d.ts","sourceRoot":"","sources":["../src/hooks-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks-generator.d.ts","sourceRoot":"","sources":["../src/hooks-generator.ts"],"names":[],"mappings":"AA2CA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAkW/D"}
|
package/dist/hooks-generator.js
CHANGED
|
@@ -16,15 +16,17 @@ function hookedModels(ast) {
|
|
|
16
16
|
return [];
|
|
17
17
|
return models
|
|
18
18
|
.filter((model) => {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const platform = model.annotations?.platform;
|
|
20
|
+
const declares = (value) => typeof value === "object" && value !== null && Object.keys(value).length > 0;
|
|
21
|
+
// Validators need the same row types hooks do, so a model declaring only validators must
|
|
22
|
+
// still appear here or `FieldValidator<"products", ...>` would not compile.
|
|
23
|
+
return declares(platform?.hooks) || declares(platform?.validate);
|
|
22
24
|
})
|
|
23
25
|
.map((model) => ({ table: resolveTableName(model), fields: model.fields }))
|
|
24
26
|
.sort((a, b) => a.table.localeCompare(b.table));
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
|
-
* The module source, or `null` when no model declares a hook.
|
|
29
|
+
* The module source, or `null` when no model declares a hook or a field validator.
|
|
28
30
|
*
|
|
29
31
|
* Returning null rather than an empty module keeps a `_supatype/hooks.ts` from appearing in projects
|
|
30
32
|
* that have no hooks, a generated file nobody imports is a file somebody eventually edits.
|
|
@@ -153,6 +155,78 @@ export type AfterDelete<T extends HookedTable> = (
|
|
|
153
155
|
ctx: AfterDeleteContext<T>,
|
|
154
156
|
) => void | Promise<void>
|
|
155
157
|
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* A per-field validator: one field's value, and a verdict about it.
|
|
161
|
+
*
|
|
162
|
+
* \`FieldValidator<"products", "setup_items">\` types \`value\` as that column's real type, so a
|
|
163
|
+
* validator cannot quietly be written against the wrong shape.
|
|
164
|
+
*
|
|
165
|
+
* Return \`true\` to accept, or a message to refuse. The message reaches the caller attached to the
|
|
166
|
+
* field name, which is what lets a form put it on the input rather than in a banner: the whole
|
|
167
|
+
* reason for declaring this instead of putting the same logic in a \`beforeChange\` hook.
|
|
168
|
+
*/
|
|
169
|
+
export type FieldValidatorContext<T extends HookedTable, F extends keyof HookTables[T]["Row"]> =
|
|
170
|
+
HookBase & {
|
|
171
|
+
readonly operation: "insert" | "update"
|
|
172
|
+
readonly field: F
|
|
173
|
+
readonly value: HookTables[T]["Row"][F]
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export type FieldVerdict = true | string
|
|
177
|
+
|
|
178
|
+
export type FieldValidator<T extends HookedTable, F extends keyof HookTables[T]["Row"]> = (
|
|
179
|
+
ctx: FieldValidatorContext<T, F>,
|
|
180
|
+
) => FieldVerdict | Promise<FieldVerdict>
|
|
181
|
+
|
|
182
|
+
interface WireValidatorContext {
|
|
183
|
+
table?: string
|
|
184
|
+
operation?: string
|
|
185
|
+
field?: string
|
|
186
|
+
value?: unknown
|
|
187
|
+
user?: unknown
|
|
188
|
+
requestId?: string
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Wrap a typed validator as the request handler the worker expects.
|
|
193
|
+
*
|
|
194
|
+
* A refusal is **422 with the field named**, not a bare 400: the request was understood and one
|
|
195
|
+
* value was rejected. A thrown error is deliberately *not* turned into a refusal, because a broken
|
|
196
|
+
* validator has not decided anything: it becomes a 500, which the server reads as unavailable and
|
|
197
|
+
* refuses the write on, rather than as the validator saying no.
|
|
198
|
+
*/
|
|
199
|
+
export function fieldValidator(
|
|
200
|
+
handler: (ctx: never) => FieldVerdict | Promise<FieldVerdict>,
|
|
201
|
+
): (req: Request) => Promise<Response> {
|
|
202
|
+
return async (req: Request): Promise<Response> => {
|
|
203
|
+
if (req.method !== "POST") {
|
|
204
|
+
return json({ message: "A validator is invoked with POST" }, 405)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
let wire: WireValidatorContext
|
|
208
|
+
try {
|
|
209
|
+
wire = (await req.json()) as WireValidatorContext
|
|
210
|
+
} catch {
|
|
211
|
+
return json({ message: "Validator payload was not JSON" }, 400)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
const field = wire.field ?? ""
|
|
215
|
+
const ctx = {
|
|
216
|
+
table: wire.table ?? "",
|
|
217
|
+
operation: wire.operation === "update" ? "update" : "insert",
|
|
218
|
+
field,
|
|
219
|
+
value: wire.value,
|
|
220
|
+
user: (wire.user ?? null) as never,
|
|
221
|
+
requestId: wire.requestId ?? "",
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
const verdict = await handler(ctx as never)
|
|
225
|
+
if (verdict === true) return json({}, 200)
|
|
226
|
+
return json({ field, message: String(verdict), error: String(verdict) }, 422)
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
156
230
|
/** Every handler a single function may serve, when one function covers a model's whole lifecycle. */
|
|
157
231
|
export interface HookHandlers<T extends HookedTable> {
|
|
158
232
|
readonly beforeChange?: BeforeChange<T>
|