more-apartments-astro-integration 1.4.0 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +234 -81
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.mts +331 -34
- package/dist/index.d.ts +331 -34
- package/dist/index.js +252 -41
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +244 -41
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -1
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/common.ts","../../src/types/generated/schemas.ts","../../src/types/properties.ts","../../src/types/content.ts","../../src/types/settings.ts","../../src/types/bookings.ts","../../src/types/index.ts","../../src/client.ts","../../src/cli/utils/format.ts","../../src/cli/commands/properties.ts","../../src/cli/commands/content.ts","../../src/cli/commands/settings.ts","../../src/cli/commands/bookings.ts","../../src/cli/index.ts"],"names":["z","config","resolve","inspect","program","readFileSync","Command"],"mappings":";;;;;;;;;;AAIO,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACnB,CAAC,CAAA;AAEM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC3C,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,KAAA,CAAE,KAAA,CAAMA,KAAA,CAAE,MAAA,CAAO;AAAA,IACtB,GAAA,EAAKA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACzB,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,MAAA,EAAQA,MAAE,OAAA;AAAQ,GACnB,CAAC,CAAA;AAAA,EACF,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,EAAA,EAAIA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,KAAA,EAAOA,MAAE,MAAA;AACX,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0B,CAAyB,UAAA,KAC9DA,KAAA,CAAE,MAAA,CAAO;AAAA,EACP,IAAA,EAAMA,KAAA,CAAE,KAAA,CAAM,UAAU,CAAA;AAAA,EACxB,KAAA,EAAO,qBAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAC,CAAA;AAE2BA,MAAE,MAAA,CAAO;AAAA,EACrC,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,MAAA,EAAQA,KAAA,CAAE,MAAA,CAAOA,KAAA,CAAE,MAAA,EAAO,EAAGA,KAAA,CAAE,KAAA,CAAMA,KAAA,CAAE,MAAA,EAAQ,CAAC,EAAE,QAAA;AACpD,CAAC;AC3B2CA,MAAE,MAAA,CAAO;AAAA,EACnD,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,QAAA,EAAUA,MAAE,MAAA;AACd,CAAC;AAWwCA,MAAE,MAAA,CAAO;AAAA,EAChD,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AASyCA,MAAE,MAAA,CAAO;AAAA;AAAA,EAEjD,SAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACxC,WAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EAE1C,QAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EAEvC,aAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC5C,SAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EAExC,MAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACrC,MAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACrC,QAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACvC,eAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EAE9C,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACzC,WAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC1C,aAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EAE5C,UAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EAC1C,SAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACzC,SAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,GAAW,QAAA;AAClC,CAAC;;;ACpDkCA,MAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA,EACd,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAClB,CAAC;AAEM,IAAM,cAAA,GAAiBA,MAAE,MAAA,CAAO;AAAA,EACrC,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA;AAAA,EAGf,iBAAA,EAAmBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACvC,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,gBAAA,EAAkBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACtC,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzC,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGzC,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,MAAA,EAAQA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA;AAAA,EAG7B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,EAClB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA;AAAA,EAGpB,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGjC,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC7B,YAAA,EAAcA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACnC,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG1B,KAAA,EAAOA,MAAE,OAAA,EAAQ;AAAA,EACjB,IAAA,EAAMA,MAAE,OAAA,EAAQ;AAAA,EAChB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGnB,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,mBAAA,EAAqBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzC,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,QAAA,EAAUA,MAAE,OAAA,EAAQ;AAAA,EACpB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGnB,UAAA,EAAYA,MAAE,OAAA,EAAQ;AAAA,EACtB,IAAA,EAAMA,MAAE,OAAA,EAAQ;AAAA,EAChB,SAAA,EAAWA,MAAE,OAAA,EAAQ;AAAA,EACrB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,MAAA,EAAQA,MAAE,OAAA,EAAQ;AAAA,EAClB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,MAAA,EAAQA,MAAE,OAAA,EAAQ;AAAA,EAClB,aAAA,EAAeA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGzB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,KAAA,EAAOA,MAAE,OAAA,EAAQ;AAAA,EACjB,IAAA,EAAMA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGhB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,EACnB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,YAAA,EAAcA,MAAE,OAAA,EAAQ;AAAA,EACxB,SAAA,EAAWA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGrB,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG3B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC/B,QAAA,EAAUA,MAAE,OAAA,EAAQ;AAAA,EACpB,mBAAA,EAAqBA,MAAE,OAAA,EAAQ;AAAA,EAC/B,eAAA,EAAiBA,MAAE,OAAA,EAAQ;AAAA,EAC3B,YAAA,EAAcA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGxB,eAAA,EAAiBA,MAAE,OAAA,EAAQ;AAAA,EAC3B,YAAA,EAAcA,MAAE,OAAA,EAAQ;AAAA,EACxB,aAAA,EAAeA,MAAE,OAAA,EAAQ;AAAA,EACzB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA,EAC1B,2BAAA,EAA6BA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAGvC,aAAA,EAAeA,MAAE,OAAA,EAAQ;AAAA,EACzB,cAAA,EAAgBA,MAAE,OAAA,EAAQ;AAAA;AAAA,EAG1B,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,GAAA,EAAKA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAGpC,UAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA;AAAA,EAGzC,eAAA,EAAiBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACrC,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAG/B,MAAA,EAAQA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,CAAO;AAAA,IACvB,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,IACb,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA;AAAA,IAEd,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA;AAAA,IACpB,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA;AAAA,IACrB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA;AAAA,IACpB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA;AAAA;AAAA,IAEjB,GAAA,EAAKA,MAAE,MAAA;AAAO,GACf,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA;AAAA,EAGb,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;AAEM,IAAM,YAAA,GAAeA,MAAE,MAAA,CAAO;AAAA,EACnC,SAAA,EAAWA,MAAE,OAAA,EAAQ;AAAA,EACrB,iBAAA,EAAmBA,MAAE,OAAA,EAAQ;AAAA,EAC7B,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA,EACd,YAAA,EAAcA,MAAE,MAAA;AAClB,CAAC,CAAA;AAEM,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EACzC,MAAMA,KAAAA,CAAE,MAAA,CAAOA,KAAAA,CAAE,MAAA,IAAU,YAAY;AACzC,CAAC,CAAA;AAQM,IAAM,0BAAA,GAA6BA,MAAE,MAAA,CAAO;AAAA,EACjD,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAM,cAAc;AAC9B,CAAC,CAAA;AAEyCA,MAAE,MAAA,CAAO;AAAA,EACjD,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,QAAA,EAAUA,MAAE,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,MACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,MAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,MACtB,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACpC;AAAA,GACF,CAAA;AAAA,EACD,IAAA,EAAMA,MACH,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,MACH,MAAA,CAAO;AAAA,MACN,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,MAC/B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC/B,EACA,QAAA,EAAS;AAAA,IACZ,mBAAA,EAAqBA,MAClB,MAAA,CAAO;AAAA,MACN,WAAA,EAAaA,MAAE,MAAA;AAAO,KACvB,EACA,QAAA,EAAS;AAAA,IACZ,kBAAA,EAAoBA,MACjB,MAAA,CAAO;AAAA,MACN,KAAA,EAAOA,MAAE,MAAA;AAAO,KACjB,EACA,QAAA;AAAS,GACb,EACA,QAAA;AACL,CAAC;AC/MM,IAAM,UAAA,GAAaA,MAAE,MAAA,CAAO;AAAA,EACjC,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,EACzB,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,IACtB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,CAAA;AAAA,EACD,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;AAEM,IAAM,UAAA,GAAaA,MAAE,MAAA,CAAO;AAAA,EACjC,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA;AAAA,EACf,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,QAAQ,CAAA;AAAA,EACxB,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,EACzB,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,IACtB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,CAAA;AAAA,EACD,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;AAEM,IAAM,cAAA,GAAiBA,MAAE,MAAA,CAAO;AAAA,EACrC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAM,CAACA,MAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,GAAGA,KAAAA,CAAE,MAAA,EAAQ,CAAC,EAAE,QAAA;AACvD,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,WAAA,EAAaA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,EACzB,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,KAAA,EAAOA,MAAE,MAAA;AACX,CAAC,CAAA;ACtDM,IAAM,kBAAA,GAAqBA,MAAE,MAAA,CAAO;AAAA,EACzC,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,IACf,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,IACjB,MAAA,EAAQA,MAAE,MAAA;AAAO,GAClB,CAAA;AAAA,EACD,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,CAAA;AAAA,EACD,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,IACf,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,SAAA,EAAWA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAChC,EAAE,QAAA,EAAS;AAAA,EACZ,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,MACb,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,MAClB,IAAA,EAAMA,MAAE,MAAA;AAAO,KAChB,CAAA;AAAA,IACD,eAAA,EAAiBA,MAAE,MAAA;AAAO,GAC3B,EAAE,QAAA,EAAS;AAAA,EACZ,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,kBAAA,EAAoBA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,CAAO;AAAA,MACnC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,MACf,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,MACjB,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC9B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC9B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC/B,CAAC;AAAA,GACH,EAAE,QAAA,EAAS;AAAA,EACZ,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,GAAA,EAAKA,MAAE,MAAA,EAAO;AAAA,IACd,WAAA,EAAaA,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,MACf,KAAA,EAAOA,MAAE,MAAA;AAAO,KACjB;AAAA,GACF,EAAE,QAAA,EAAS;AAAA,EACZ,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,IACf,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC7B,EAAE,QAAA,EAAS;AAAA,EACZ,YAAA,EAAcA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,IACf,OAAA,EAASA,MAAE,MAAA,EAAO;AAAA,IAClB,SAAA,EAAWA,MAAE,MAAA;AAAO,GACrB,CAAA;AAAA,EACD,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,IACf,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACpC,UAAA,EAAYA,MAAE,MAAA,CAAO;AAAA,MACnB,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,KAAA,EAAOA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,KAAK,CAAA;AAAA,MACtB,SAASA,KAAAA,CAAE,KAAA,CAAMA,MAAE,GAAA,EAAK,EAAE,QAAA;AAAS,KACpC,EAAE,QAAA,EAAS;AAAA,IACZ,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,MACf,UAAA,EAAYA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAChC,aAAA,EAAeA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACnC,YAAYA,KAAAA,CAAE,KAAA,CAAMA,MAAE,GAAA,EAAK,EAAE,QAAA;AAAS,KACvC,EAAE,QAAA;AAAS,GACb,EAAE,QAAA;AACL,CAAC,CAAA;AAEM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,IAChB,QAAA,EAAUA,MAAE,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,IACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,IAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,IACtB,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACpC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,GACpC,EAAE,QAAA,EAAS;AAAA,EACZ,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,GAAA,EAAKA,MAAE,MAAA,CAAO;AAAA,MACZ,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,MAChB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,MACtB,cAAA,EAAgBA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACpC,MAAMA,KAAAA,CAAE,KAAA,CAAMA,MAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACpC;AAAA,GACF,CAAA;AAAA,EACD,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,MAAE,MAAA,CAAO;AAAA,MACb,QAAA,EAAUA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,MAC/B,OAAA,EAASA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC/B,EAAE,QAAA,EAAS;AAAA,IACZ,mBAAA,EAAqBA,MAAE,MAAA,CAAO;AAAA,MAC5B,WAAA,EAAaA,MAAE,MAAA;AAAO,KACvB,EAAE,QAAA,EAAS;AAAA,IACZ,kBAAA,EAAoBA,MAAE,MAAA,CAAO;AAAA,MAC3B,KAAA,EAAOA,MAAE,MAAA;AAAO,KACjB,EAAE,QAAA;AAAS,GACb,EAAE,QAAA;AACL,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,oBAAA,EAAsBA,MAAE,MAAA,CAAO;AAAA,IAC7B,QAAA,EAAUA,MAAE,MAAA,CAAO;AAAA,MACjB,mBAAA,EAAqBA,KAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC3C,EAAE,QAAA,EAAS;AAAA,IACZ,OAAA,EAASA,MAAE,MAAA,CAAO;AAAA,MAChB,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC1B,IAAA,EAAMA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAC3B,EAAE,QAAA;AAAS,GACb,EAAE,QAAA;AACL,CAAC,CAAA;AC5GmCA,MAAE,MAAA,CAAO;AAAA,EAC3C,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,EAAM;AAAA,EACxB,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,KAAA,EAAOA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,cAAA,EAAgBA,MAAE,IAAA,CAAK,CAAC,UAAU,MAAA,EAAQ,eAAe,CAAC,CAAA,CAAE,QAAA;AAC9D,CAAC;AAEM,IAAM,qBAAA,GAAwBA,MAAE,MAAA,CAAO;AAAA,EAC5C,EAAA,EAAIA,MAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,EACjB,MAAA,EAAQA,MAAE,IAAA,CAAK,CAAC,WAAW,WAAA,EAAa,WAAA,EAAa,WAAW,CAAC,CAAA;AAAA,EACjE,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,gBAAgBA,KAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,MAAA,EAAQ,UAAU,CAAC,CAAA;AAAA,EACtD,iBAAA,EAAmBA,MAAE,MAAA,EAAO;AAAA,EAC5B,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,UAAA,EAAYA,MAAE,MAAA;AAChB,CAAC,CAAA;ACSyCA,MAAE,MAAA,CAAO;AAAA,EACjD,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,MAAA,EAAQA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,QAAA,EAAUA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAASA,KAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,IACnB,KAAA,EAAOA,MAAE,MAAA;AAAO,GACjB,EAAE,QAAA,EAAS;AAAA,EACZ,KAAA,EAAOA,MAAE,MAAA,CAAO;AAAA,IACd,OAAA,EAASA,MAAE,OAAA,EAAQ;AAAA,IACnB,GAAA,EAAKA,MAAE,MAAA;AAAO,GACf,EAAE,QAAA;AACL,CAAC;;;ACfM,IAAM,uBAAN,MAA2B;AAAA,EACxB,MAAA;AAAA,EACA,KAAA,uBAA2D,GAAA,EAAI;AAAA;AAAA;AAAA;AAAA,EAKvE,UAAA,GAAmB;AACjB,IAAA,IAAA,CAAK,MAAM,KAAA,EAAM;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAA,GAAmD;AACjD,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAK,KAAA,CAAM,IAAA;AAAA,MACpB,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,CAAA,CAAE,MAAA,CAAO,CAAC,KAAA,EAAO,KAAA,KAAU;AAC7D,QAAA,OAAO,KAAA,GAAQ,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA;AAAA,MAC5C,GAAG,CAAC;AAAA,KACN;AAAA,EACF;AAAA,EAEA,YAAYC,OAAAA,EAA8B;AACxC,IAAA,IAAA,CAAK,MAAA,GAAS;AAAA,MACZ,SAASA,OAAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,IAAK,EAAA;AAAA,MAC/C,MAAA,EAAQA,QAAO,MAAA,IAAU,EAAA;AAAA,MACzB,QAAA,EAAUA,QAAO,QAAA,IAAY,EAAA;AAAA,MAC7B,OAAA,EAASA,QAAO,OAAA,IAAW,GAAA;AAAA,MAC3B,KAAA,EAAO;AAAA,QACL,QAAA,EAAUA,OAAAA,CAAO,KAAA,EAAO,QAAA,IAAY,CAAA;AAAA,QACpC,KAAA,EAAOA,OAAAA,CAAO,KAAA,EAAO,KAAA,IAAS;AAAA,OAChC;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAASA,OAAAA,CAAO,KAAA,EAAO,OAAA,IAAW,IAAA;AAAA,QAClC,GAAA,EAAKA,OAAAA,CAAO,KAAA,EAAO,GAAA,IAAO;AAAA;AAAA;AAC5B,KACF;AAAA,EACF;AAAA,EAEA,MAAc,cAAA,CACZ,GAAA,EACA,OAAA,GAAuB,IACvB,MAAA,EACY;AACZ,IAAA,MAAM,WAAW,CAAA,EAAG,OAAA,CAAQ,MAAA,IAAU,KAAK,IAAI,GAAG,CAAA,CAAA;AAGlD,IAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO,OAAA,KAAY,CAAC,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,MAAA,KAAW,KAAA,CAAA,EAAQ;AAC/E,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAA;AACtC,MAAA,IAAI,MAAA,IAAU,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,GAAA,IAAO,IAAA,CAAK,GAAA,EAAI,GAAI,MAAA,CAAO,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,MAAM,GAAA,EAAK;AAC7F,QAAA,OAAO,MAAA,CAAO,IAAA;AAAA,MAChB;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAuB;AAAA,MAC3B,cAAA,EAAgB,kBAAA;AAAA,MAChB,QAAA,EAAU,kBAAA;AAAA,MACV,GAAI,IAAA,CAAK,MAAA,CAAO,MAAA,IAAU,EAAE,iBAAiB,CAAA,OAAA,EAAU,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA,CAAA,EAAG;AAAA,MAC5E,GAAI,KAAK,MAAA,CAAO,QAAA,IAAY,EAAE,YAAA,EAAc,IAAA,CAAK,OAAO,QAAA,EAAS;AAAA,MACjE,GAAG,OAAA,CAAQ;AAAA,KACb;AAEA,IAAA,IAAI,SAAA,GAA0B,IAAA;AAE9B,IAAA,KAAA,IAAS,OAAA,GAAU,GAAG,OAAA,IAAW,IAAA,CAAK,OAAO,KAAA,EAAO,QAAA,IAAY,IAAI,OAAA,EAAA,EAAW;AAC7E,MAAA,IAAI;AACF,QAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,QAAA,MAAM,SAAA,GAAY,WAAW,MAAM;AACjC,UAAA,UAAA,CAAW,KAAA,EAAM;AAAA,QACnB,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA;AAEtB,QAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAChC,GAAG,OAAA;AAAA,UACH,OAAA;AAAA,UACA,QAAQ,UAAA,CAAW;AAAA,SACpB,CAAA;AAED,QAAA,YAAA,CAAa,SAAS,CAAA;AAEtB,QAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,UAAA,MAAM,KAAA,GAAQ,MAAM,QAAA,CAAS,IAAA,EAAK,CAAE,KAAA,CAAM,OAAO,EAAE,OAAA,EAAS,QAAA,CAAS,UAAA,EAAW,CAAE,CAAA;AAClF,UAAA,MAAM,IAAI,KAAA,CAAM,KAAA,CAAM,OAAA,IAAW,CAAA,KAAA,EAAQ,SAAS,MAAM,CAAA,EAAA,EAAK,QAAA,CAAS,UAAU,CAAA,CAAE,CAAA;AAAA,QACpF;AAEA,QAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAGjC,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,MAAM,MAAA,GAAS,MAAA,CAAO,SAAA,CAAU,IAAI,CAAA;AACpC,UAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,YAAA,MAAM,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,UACpE;AACA,UAAA,MAAM,gBAAgB,MAAA,CAAO,IAAA;AAG7B,UAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO,OAAA,KAAY,CAAC,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,MAAA,KAAW,KAAA,CAAA,EAAQ;AAC/E,YAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,QAAA,EAAU,EAAE,IAAA,EAAM,eAAe,SAAA,EAAW,IAAA,CAAK,GAAA,EAAI,EAAG,CAAA;AAAA,UACzE;AAEA,UAAA,OAAO,aAAA;AAAA,QACT;AAGA,QAAA,IAAI,IAAA,CAAK,OAAO,KAAA,EAAO,OAAA,KAAY,CAAC,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,MAAA,KAAW,KAAA,CAAA,EAAQ;AAC/E,UAAA,IAAA,CAAK,KAAA,CAAM,IAAI,QAAA,EAAU,EAAE,MAAM,SAAA,EAAW,IAAA,CAAK,GAAA,EAAI,EAAG,CAAA;AAAA,QAC1D;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,SAAS,KAAA,EAAO;AACd,QAAA,SAAA,GAAY,KAAA;AAEZ,QAAA,IAAI,WAAW,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,QAAA,IAAY,KAAK,CAAA,EAAG;AACpD,UAAA,MAAM,IAAI,OAAA,CAAQ,CAAAC,QAAAA,KAAW,UAAA,CAAWA,QAAAA,EAAAA,CAAU,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,KAAA,IAAS,GAAA,KAAS,OAAA,GAAU,EAAE,CAAC,CAAA;AAAA,QACtG;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,SAAA,IAAa,IAAI,KAAA,CAAM,gBAAgB,CAAA;AAAA,EAC/C;AAAA;AAAA,EAGA,MAAM,cAAc,MAAA,EAGqB;AACvC,IAAA,MAAM,WAAA,GAAc,IAAI,eAAA,EAAgB;AACxC,IAAA,IAAI,MAAA,EAAQ,MAAM,WAAA,CAAY,MAAA,CAAO,QAAQ,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AACnE,IAAA,IAAI,MAAA,EAAQ,UAAU,WAAA,CAAY,MAAA,CAAO,YAAY,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA;AAE/E,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,kBAAA,EAAqB,WAAA,CAAY,QAAA,EAAS,GAAI,GAAA,GAAM,WAAA,CAAY,QAAA,KAAa,EAAE,CAAA,CAAA;AACjH,IAAA,OAAO,KAAK,cAAA,CAAe,GAAA,EAAK,EAAC,EAAG,uBAAA,CAAwB,cAAc,CAAC,CAAA;AAAA,EAC7E;AAAA,EAEA,MAAM,YAAY,gBAAA,EAAsD;AACtE,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,sBAAsB,gBAAgB,CAAA,CAAA;AACxE,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAmC,GAAA,EAAK,EAAC,EAAGF,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,cAAA,EAAgB,CAAC,CAAA;AAC1G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,eAAA,CACJ,YAAA,EACA,SAAA,EACA,OAAA,EACuB;AACvB,IAAA,MAAM,WAAA,GAAc,IAAI,eAAA,CAAgB;AAAA,MACtC,UAAA,EAAY,SAAA;AAAA,MACZ,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,mBAAA,EAAsB,YAAY,iBAAiB,WAAW,CAAA,CAAA;AAChG,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAuC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,kBAAA,EAAoB,CAAC,CAAA;AAClH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,mBAAA,CACJ,YAAA,EACA,QAAA,EACA,MAAA,EAOE;AACF,IAAA,MAAM,WAAA,GAAc,IAAI,eAAA,CAAgB;AAAA,MACtC,IAAA,EAAM,QAAA;AAAA,MACN,EAAA,EAAI;AAAA,KACL,CAAA;AACD,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,gBAAA,EAAmB,YAAY,cAAc,WAAW,CAAA,CAAA;AAC1F,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAMtB,GAAG,CAAA;AACT,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,QAAA,GAA4B;AAChC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,aAAA,CAAA;AAClC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAAiC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,UAAU,CAAA,EAAG,CAAC,CAAA;AAC7G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,QAAQ,IAAA,EAA6B;AACzC,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,iBAAiB,IAAI,CAAA,CAAA;AACvD,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA+B,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,UAAA,EAAY,CAAC,CAAA;AAClG,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,SAAS,MAAA,EAIK;AAClB,IAAA,MAAM,WAAA,GAAc,IAAI,eAAA,EAAgB;AACxC,IAAA,IAAI,MAAA,EAAQ,MAAM,WAAA,CAAY,MAAA,CAAO,QAAQ,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AACnE,IAAA,IAAI,MAAA,EAAQ,UAAU,WAAA,CAAY,MAAA,CAAO,YAAY,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA;AAC/E,IAAA,IAAI,QAAQ,GAAA,EAAK,WAAA,CAAY,MAAA,CAAO,KAAA,EAAO,OAAO,GAAG,CAAA;AAErD,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,aAAA,EAAgB,WAAA,CAAY,QAAA,EAAS,GAAI,GAAA,GAAM,WAAA,CAAY,QAAA,KAAa,EAAE,CAAA,CAAA;AAC5G,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAAiC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,UAAU,CAAA,EAAG,CAAC,CAAA;AAC7G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,QAAQ,IAAA,EAA6B;AACzC,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,iBAAiB,IAAI,CAAA,CAAA;AACvD,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA+B,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,UAAA,EAAY,CAAC,CAAA;AAClG,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,YAAA,GAA6B;AACjC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,iBAAA,CAAA;AAClC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,eAAmC,GAAA,EAAK,IAAIA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAMA,MAAE,KAAA,CAAMA,KAAAA,CAAE,QAAQ,CAAA,EAAG,CAAC,CAAA;AAC/G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,aAAA,GAAqC;AACzC,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,kBAAA,CAAA;AAClC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAAqC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,cAAc,CAAA,EAAG,CAAC,CAAA;AACrH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,YAAY,IAAA,EAAiC;AACjD,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,sBAAsB,IAAI,CAAA,CAAA;AAC5D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAmC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,cAAA,EAAgB,CAAC,CAAA;AAC1G,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,oBAAoB,IAAA,EAA0C;AAClE,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,sBAAsB,IAAI,CAAA,SAAA,CAAA;AAC5D,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAA,CAA4C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,MAAMA,KAAAA,CAAE,KAAA,CAAM,qBAAqB,CAAA,EAAG,CAAC,CAAA;AACnI,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,kBAAA,CAAmB,IAAA,EAAc,OAAA,EAA2C;AAChF,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,mBAAA,EAAsB,IAAI,aAAa,OAAO,CAAA,CAAA;AAChF,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA0C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAC,CAAA;AACxH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,eAAA,GAAyC;AAC7C,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,qBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAuC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,kBAAA,EAAoB,CAAC,CAAA;AAClH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,gBAAA,GAA2C;AAC/C,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,sBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAAwC,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,mBAAA,EAAqB,CAAC,CAAA;AACpH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,mBAAA,GAAiD;AACrD,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,2BAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA2C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,sBAAA,EAAwB,CAAC,CAAA;AAC1H,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,kBAAA,GAA+C;AACnD,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,wBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA0C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAC,CAAA;AACxH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA,EAGA,MAAM,cAAc,OAAA,EAAmD;AACrE,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,gBAAA,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA;AAAA,MAC1B,GAAA;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA,OAC9B;AAAA,MACAA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,uBAAuB;AAAA,KAC1C;AACA,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,MAAM,WAAW,SAAA,EAA6C;AAC5D,IAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,MAAA,CAAO,OAAO,oBAAoB,SAAS,CAAA,CAAA;AAC/D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA,CAA0C,GAAA,EAAK,EAAC,EAAGA,KAAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAM,qBAAA,EAAuB,CAAC,CAAA;AACxH,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAiB,MAAA,EAAmD;AACxE,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,EAAgB;AAGzC,IAAA,IAAI,OAAO,OAAA,EAAS,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,OAAO,OAAO,CAAA;AAC9D,IAAA,IAAI,OAAO,SAAA,EAAW,YAAA,CAAa,GAAA,CAAI,WAAA,EAAa,OAAO,SAAS,CAAA;AAGpE,IAAA,IAAI,MAAA,CAAO,QAAQ,YAAA,CAAa,GAAA,CAAI,UAAU,MAAA,CAAO,MAAA,CAAO,UAAU,CAAA;AAGtE,IAAA,IAAI,OAAO,WAAA,EAAa,YAAA,CAAa,GAAA,CAAI,aAAA,EAAe,OAAO,WAAW,CAAA;AAC1E,IAAA,IAAI,OAAO,OAAA,EAAS,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,OAAO,OAAO,CAAA;AAG9D,IAAA,IAAI,OAAO,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAI,CAAA;AACrD,IAAA,IAAI,OAAO,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,MAAA,EAAQ,OAAO,IAAI,CAAA;AACrD,IAAA,IAAI,OAAO,MAAA,EAAQ,YAAA,CAAa,GAAA,CAAI,QAAA,EAAU,OAAO,MAAM,CAAA;AAC3D,IAAA,IAAI,OAAO,aAAA,EAAe,YAAA,CAAa,GAAA,CAAI,eAAA,EAAiB,OAAO,aAAa,CAAA;AAChF,IAAA,IAAI,MAAA,CAAO,QAAA,KAAa,MAAA,IAAa,MAAA,CAAO,QAAA,KAAa,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,UAAA,EAAY,MAAA,CAAO,QAAA,CAAS,QAAA,EAAU,CAAA;AACtH,IAAA,IAAI,MAAA,CAAO,SAAA,KAAc,MAAA,IAAa,MAAA,CAAO,SAAA,KAAc,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,WAAA,EAAa,MAAA,CAAO,SAAA,CAAU,QAAA,EAAU,CAAA;AAC1H,IAAA,IAAI,MAAA,CAAO,WAAA,KAAgB,MAAA,IAAa,MAAA,CAAO,WAAA,KAAgB,IAAA,EAAM,YAAA,CAAa,GAAA,CAAI,aAAA,EAAe,MAAA,CAAO,WAAA,CAAY,QAAA,EAAU,CAAA;AAClI,IAAA,IAAI,MAAA,CAAO,aAAa,MAAA,EAAW,YAAA,CAAa,IAAI,UAAA,EAAY,MAAA,CAAO,QAAA,GAAW,GAAA,GAAM,GAAG,CAAA;AAC3F,IAAA,IAAI,MAAA,CAAO,YAAY,MAAA,EAAW,YAAA,CAAa,IAAI,SAAA,EAAW,MAAA,CAAO,OAAA,GAAU,GAAA,GAAM,GAAG,CAAA;AACxF,IAAA,IAAI,MAAA,CAAO,YAAY,MAAA,EAAW,YAAA,CAAa,IAAI,SAAA,EAAW,MAAA,CAAO,OAAA,GAAU,GAAA,GAAM,GAAG,CAAA;AAExF,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,0BAAA,EAA6B,YAAA,CAAa,UAAU,CAAA,CAAA;AACtF,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,eAAqC,GAAA,EAAK,IAAI,0BAA0B,CAAA;AACpG,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAEF,CAAA;ACzWO,SAAS,YAAA,CAAa,IAAA,EAAW,MAAA,GAAuB,MAAA,EAAc;AAC3E,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,MAAA;AACH,MAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAC,CAAA;AACzC,MAAA;AAAA,IAEF,KAAK,MAAA;AACH,MAAA,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAO,IAAI,CAAC,CAAA;AACxB,MAAA;AAAA,IAEF,KAAK,OAAA;AACH,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,QAAA,OAAA,CAAQ,MAAM,IAAI,CAAA;AAAA,MACpB,CAAA,MAAO;AACL,QAAA,OAAA,CAAQ,KAAA,CAAM,CAAC,IAAI,CAAC,CAAA;AAAA,MACtB;AACA,MAAA;AAAA,IAEF;AACE,MAAA,OAAA,CAAQ,GAAA,CAAIG,aAAQ,IAAA,EAAM,EAAE,OAAO,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,CAAC,CAAA;AAAA;AAE9D;AAEA,SAAS,MAAA,CAAO,GAAA,EAAU,MAAA,GAAiB,CAAA,EAAW;AACpD,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA;AAEjC,EAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW;AACrC,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,IAAA,OAAO,GAAA,CAAI,QAAA,CAAS,IAAI,CAAA,GAAI,CAAA;AAAA,EAAM,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,CAAE,IAAI,CAAA,IAAA,KAAQ,CAAA,EAAG,MAAM,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,GAAK,GAAA;AAAA,EACrG;AAEA,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,OAAO,QAAQ,SAAA,EAAW;AACvD,IAAA,OAAO,OAAO,GAAG,CAAA;AAAA,EACnB;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG;AACtB,IAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC7B,IAAA,OAAO,IAAA,GAAO,GAAA,CAAI,GAAA,CAAI,CAAA,IAAA,KAAQ,GAAG,MAAM,CAAA,EAAA,EAAK,MAAA,CAAO,IAAA,EAAM,SAAS,CAAC,CAAC,CAAA,CAAE,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,EACnF;AAEA,EAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA;AAClC,IAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAEjC,IAAA,OAAO,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC1C,MAAA,MAAM,cAAA,GAAiB,MAAA,CAAO,KAAA,EAAO,MAAA,GAAS,CAAC,CAAA;AAC/C,MAAA,IAAI,cAAA,CAAe,UAAA,CAAW,IAAI,CAAA,EAAG;AACnC,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,IAAI,cAAc,CAAA,CAAA;AAAA,MAC1C;AACA,MAAA,OAAO,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,KAAK,cAAc,CAAA,CAAA;AAAA,IAC3C,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AAAA,EACd;AAEA,EAAA,OAAO,OAAO,GAAG,CAAA;AACnB;AAEO,SAAS,YAAY,KAAA,EAAkB;AAC5C,EAAA,IAAI,MAAM,OAAA,EAAS;AACjB,IAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,OAAA,EAAU,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,EACzC,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,KAAA,CAAM,iCAAiC,KAAK,CAAA;AAAA,EACtD;AACA,EAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAChB;;;ACnEO,SAAS,kBAAkBC,QAAAA,EAAwB;AACxD,EAAA,MAAM,UAAA,GAAaA,SAChB,OAAA,CAAQ,YAAY,EACpB,KAAA,CAAM,OAAO,CAAA,CACb,WAAA,CAAY,mBAAmB,CAAA;AAElC,EAAA,UAAA,CACG,QAAQ,MAAM,CAAA,CACd,YAAY,qBAAqB,CAAA,CACjC,OAAO,qBAAA,EAAuB,aAAA,EAAe,GAAG,CAAA,CAChD,MAAA,CAAO,wBAAwB,gBAAA,EAAkB,IAAI,EACrD,MAAA,CAAO,OAAO,SAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,CAAc;AAAA,QACxC,IAAA,EAAM,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAAA,QAC3B,QAAA,EAAU,QAAA,CAAS,OAAA,CAAQ,KAAK;AAAA,OACjC,CAAA;AAED,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,qCAAqC,EACjD,MAAA,CAAO,OAAO,EAAA,EAAI,OAAA,EAAS,OAAA,KAAY;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,WAAA,CAAY,EAAE,CAAA;AAE5C,MAAA,YAAA,CAAa,UAAU,MAAM,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,QAAQ,CAAA,CAChB,WAAA,CAAY,gCAAgC,CAAA,CAC5C,MAAA,CAAO,iCAAA,EAAmC,8BAA8B,CAAA,CACxE,MAAA,CAAO,mBAAA,EAAqB,WAAW,CAAA,CACvC,MAAA,CAAO,mBAAA,EAAqB,mBAAmB,CAAA,CAC/C,MAAA,CAAO,kBAAA,EAAoB,2BAA2B,CAAA,CACtD,MAAA,CAAO,oBAAA,EAAsB,6BAA6B,CAAA,CAC1D,MAAA,CAAO,uBAAA,EAAyB,kBAAkB,CAAA,CAClD,MAAA,CAAO,yBAAA,EAA2B,oBAAoB,CAAA,CACtD,MAAA,CAAO,sBAAA,EAAwB,qBAAqB,CAAA,CACpD,MAAA,CAAO,wBAAA,EAA0B,iBAAiB,CAAA,CAClD,MAAA,CAAO,wBAAA,EAA0B,eAAe,CAAA,CAChD,MAAA,CAAO,YAAA,EAAc,cAAc,CAAA,CACnC,MAAA,CAAO,WAAA,EAAa,aAAa,CAAA,CACjC,MAAA,CAAO,WAAA,EAAa,aAAa,CAAA,CACjC,MAAA,CAAO,OAAO,SAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,eAAoB,EAAC;AAE3B,MAAA,IAAI,OAAA,CAAQ,WAAA,EAAa,YAAA,CAAa,WAAA,GAAc,OAAA,CAAQ,WAAA;AAC5D,MAAA,IAAI,OAAA,CAAQ,IAAA,EAAM,YAAA,CAAa,IAAA,GAAO,OAAA,CAAQ,IAAA;AAC9C,MAAA,IAAI,OAAA,CAAQ,IAAA,EAAM,YAAA,CAAa,IAAA,GAAO,OAAA,CAAQ,IAAA;AAC9C,MAAA,IAAI,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,OAAA,GAAU,OAAA,CAAQ,OAAA;AACpD,MAAA,IAAI,OAAA,CAAQ,SAAA,EAAW,YAAA,CAAa,SAAA,GAAY,OAAA,CAAQ,SAAA;AACxD,MAAA,IAAI,QAAQ,MAAA,EAAQ,YAAA,CAAa,MAAA,GAAS,QAAA,CAAS,QAAQ,MAAM,CAAA;AACjE,MAAA,IAAI,QAAQ,QAAA,EAAU,YAAA,CAAa,QAAA,GAAW,QAAA,CAAS,QAAQ,QAAQ,CAAA;AACvE,MAAA,IAAI,QAAQ,SAAA,EAAW,YAAA,CAAa,SAAA,GAAY,QAAA,CAAS,QAAQ,SAAS,CAAA;AAC1E,MAAA,IAAI,QAAQ,UAAA,EAAY,YAAA,CAAa,UAAA,GAAa,QAAA,CAAS,QAAQ,UAAU,CAAA;AAC7E,MAAA,IAAI,OAAA,CAAQ,YAAA,EAAc,YAAA,CAAa,YAAA,GAAe,OAAA,CAAQ,YAAA;AAC9D,MAAA,IAAI,OAAA,CAAQ,QAAA,EAAU,YAAA,CAAa,QAAA,GAAW,IAAA;AAC9C,MAAA,IAAI,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,OAAA,GAAU,IAAA;AAC5C,MAAA,IAAI,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,OAAA,GAAU,IAAA;AAE5C,MAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,gBAAA,CAAiB,YAAY,CAAA;AAE1D,MAAA,YAAA,CAAa,SAAS,MAAM,CAAA;AAAA,IAC9B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,QAAQ,mBAAmB,CAAA,CAC3B,YAAY,2BAA2B,CAAA,CACvC,eAAe,oBAAA,EAAsB,yBAAyB,CAAA,CAC9D,cAAA,CAAe,oBAAoB,uBAAuB,CAAA,CAC1D,OAAO,OAAO,EAAA,EAAI,SAAS,OAAA,KAAY;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,YAAA,GAAe,MAAM,MAAA,CAAO,eAAA,CAAgB,IAAI,OAAA,CAAQ,KAAA,EAAO,QAAQ,GAAG,CAAA;AAEhF,MAAA,YAAA,CAAa,cAAc,MAAM,CAAA;AAAA,IACnC,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AACL;;;ACzGO,SAAS,eAAeA,QAAAA,EAAwB;AACrD,EAAA,MAAM,UAAUA,QAAAA,CACb,OAAA,CAAQ,SAAS,CAAA,CACjB,YAAY,2CAA2C,CAAA;AAG1D,EAAA,MAAM,QAAQ,OAAA,CACX,OAAA,CAAQ,OAAO,CAAA,CACf,YAAY,cAAc,CAAA;AAE7B,EAAA,KAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,gBAAgB,CAAA,CAC5B,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,QAAA,EAAS;AAErC,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,KAAA,CACG,OAAA,CAAQ,aAAa,CAAA,CACrB,WAAA,CAAY,2BAA2B,EACvC,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA;AAEtC,MAAA,YAAA,CAAa,MAAM,MAAM,CAAA;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAGH,EAAA,MAAM,QAAQ,OAAA,CACX,OAAA,CAAQ,OAAO,CAAA,CACf,YAAY,cAAc,CAAA;AAE7B,EAAA,KAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,gBAAgB,CAAA,CAC5B,MAAA,CAAO,qBAAA,EAAuB,aAAA,EAAe,GAAG,CAAA,CAChD,OAAO,sBAAA,EAAwB,gBAAA,EAAkB,IAAI,CAAA,CACrD,MAAA,CAAO,iBAAA,EAAmB,eAAe,CAAA,CACzC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAc;AAAA,QAClB,IAAA,EAAM,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAAA,QAC3B,QAAA,EAAU,QAAA,CAAS,OAAA,CAAQ,KAAK;AAAA,OAClC;AAEA,MAAA,IAAI,OAAA,CAAQ,GAAA,EAAK,MAAA,CAAO,GAAA,GAAM,OAAA,CAAQ,GAAA;AAEtC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAE3C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,KAAA,CACG,OAAA,CAAQ,aAAa,CAAA,CACrB,WAAA,CAAY,2BAA2B,EACvC,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA;AAEtC,MAAA,YAAA,CAAa,MAAM,MAAM,CAAA;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAGH,EAAA,MAAM,UAAA,GAAa,QAChB,OAAA,CAAQ,YAAY,EACpB,KAAA,CAAM,MAAM,CAAA,CACZ,WAAA,CAAY,mBAAmB,CAAA;AAElC,EAAA,UAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,qBAAqB,CAAA,CACjC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,EAAc;AAE1C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,aAAa,CAAA,CACrB,WAAA,CAAY,+BAA+B,EAC3C,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,WAAA,CAAY,IAAI,CAAA;AAE9C,MAAA,YAAA,CAAa,UAAU,MAAM,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,iBAAiB,CAAA,CACzB,WAAA,CAAY,8BAA8B,EAC1C,MAAA,CAAO,OAAO,IAAA,EAAM,OAAA,EAAS,OAAA,KAAY;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,mBAAA,CAAoB,IAAI,CAAA;AAEtD,MAAA,YAAA,CAAa,UAAU,MAAM,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,UAAA,CACG,OAAA,CAAQ,8BAA8B,CAAA,CACtC,WAAA,CAAY,+BAA+B,CAAA,CAC3C,MAAA,CAAO,OAAO,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,OAAA,KAAY;AACrD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA;AAE5C,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,kBAAA,CAAmB,UAAU,OAAO,CAAA;AAEhE,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAGH,EAAA,OAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,oBAAoB,CAAA,CAChC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,YAAA,EAAa;AAE5C,MAAA,YAAA,CAAa,WAAW,MAAM,CAAA;AAAA,IAChC,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AACL;;;AC/KO,SAAS,gBAAgBA,QAAAA,EAAwB;AACtD,EAAA,MAAM,WAAWA,QAAAA,CACd,OAAA,CAAQ,UAAU,CAAA,CAClB,YAAY,iBAAiB,CAAA;AAEhC,EAAA,QAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,wBAAwB,CAAA,CACpC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,eAAA,EAAgB;AAE5C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,OAAO,CAAA,CACf,WAAA,CAAY,oBAAoB,CAAA,CAChC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,gBAAA,EAAiB;AAE7C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,YAAY,CAAA,CACpB,KAAA,CAAM,OAAO,CAAA,CACb,WAAA,CAAY,uBAAuB,CAAA,CACnC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,mBAAA,EAAoB;AAEhD,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,SAAS,CAAA,CACjB,WAAA,CAAY,sBAAsB,CAAA,CAClC,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,kBAAA,EAAmB;AAE/C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,KAAK,CAAA,CACb,WAAA,CAAY,kBAAkB,CAAA,CAC9B,MAAA,CAAO,OAAO,OAAA,EAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,CAAC,MAAM,KAAA,EAAO,UAAA,EAAY,OAAO,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,QAC3D,OAAO,eAAA,EAAgB;AAAA,QACvB,OAAO,gBAAA,EAAiB;AAAA,QACxB,OAAO,mBAAA,EAAoB;AAAA,QAC3B,OAAO,kBAAA;AAAmB,OAC3B,CAAA;AAED,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,IAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAEA,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AACL;AC9FO,SAAS,gBAAgBA,QAAAA,EAAwB;AACtD,EAAA,MAAM,WAAWA,QAAAA,CACd,OAAA,CAAQ,UAAU,CAAA,CAClB,YAAY,iBAAiB,CAAA;AAEhC,EAAA,QAAA,CACG,OAAA,CAAQ,QAAQ,CAAA,CAChB,WAAA,CAAY,sBAAsB,CAAA,CAClC,cAAA,CAAe,mBAAA,EAAqB,qCAAqC,CAAA,CACzE,MAAA,CAAO,OAAO,SAAS,OAAA,KAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAGrC,MAAA,MAAM,WAAWF,YAAA,CAAQ,OAAA,CAAQ,GAAA,EAAI,EAAG,QAAQ,IAAI,CAAA;AACpD,MAAA,MAAM,cAA8B,IAAA,CAAK,KAAA,CAAMG,eAAA,CAAa,QAAA,EAAU,OAAO,CAAC,CAAA;AAE9E,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,aAAA,CAAc,WAAW,CAAA;AAErD,MAAA,OAAA,CAAQ,IAAI,qCAAgC,CAAA;AAC5C,MAAA,YAAA,CAAa,QAAQ,MAAM,CAAA;AAAA,IAC7B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,WAAA,CAAY,4BAA4B,EACxC,MAAA,CAAO,OAAO,EAAA,EAAI,OAAA,EAAS,OAAA,KAAY;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AACrC,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAA;AAErC,MAAA,MAAM,OAAA,GAAU,MAAM,MAAA,CAAO,UAAA,CAAW,EAAE,CAAA;AAE1C,MAAA,YAAA,CAAa,SAAS,MAAM,CAAA;AAAA,IAC9B,SAAS,KAAA,EAAO;AACd,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB;AAAA,EACF,CAAC,CAAA;AAEH,EAAA,QAAA,CACG,QAAQ,SAAS,CAAA,CACjB,YAAY,sCAAsC,CAAA,CAClD,OAAO,MAAM;AACZ,IAAA,MAAM,OAAA,GAA0B;AAAA,MAC9B,WAAA,EAAa,GAAA;AAAA,MACb,QAAA,EAAU;AAAA,QACR,UAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAW,KAAA;AAAA,QACX,KAAA,EAAO,sBAAA;AAAA,QACP,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS,aAAA;AAAA,QACT,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS,aAAA;AAAA,QACT,WAAA,EAAa;AAAA,OACf;AAAA,MACA,YAAA,EAAc,YAAA;AAAA,MACd,cAAA,EAAgB,YAAA;AAAA,MAChB,MAAA,EAAQ,CAAA;AAAA,MACR,WAAA,EAAa,GAAA;AAAA,MACb,KAAA,EAAO;AAAA,KACT;AAEA,IAAA,OAAA,CAAQ,IAAI,+DAA+D,CAAA;AAC3E,IAAA,OAAA,CAAQ,IAAI,IAAA,CAAK,SAAA,CAAU,OAAA,EAAS,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,EAC9C,CAAC,CAAA;AACL;;;AChEAJ,aAAA,CAAO,EAAE,MAAMC,YAAAA,CAAQ,OAAA,CAAQ,KAAI,EAAG,MAAM,GAAG,CAAA;AAE/C,IAAM,OAAA,GAAU,IAAII,iBAAA,EAAQ;AAE5B,OAAA,CACG,KAAK,iBAAiB,CAAA,CACtB,YAAY,+CAA+C,CAAA,CAC3D,QAAQ,OAAO,CAAA,CACf,OAAO,sBAAA,EAAwB,cAAA,EAAgB,QAAQ,GAAA,CAAI,wBAAwB,EACnF,MAAA,CAAO,qBAAA,EAAuB,WAAW,OAAA,CAAQ,GAAA,CAAI,uBAAuB,CAAA,CAC5E,MAAA,CAAO,6BAA6B,eAAA,EAAiB,OAAA,CAAQ,IAAI,wBAAwB,CAAA,CACzF,OAAO,oBAAA,EAAsB,uBAAA,EAAyB,OAAO,CAAA,CAC7D,MAAA,CAAO,yBAAyB,mCAAA,EAAqC,MAAM,EAC3E,IAAA,CAAK,WAAA,EAAa,CAAC,WAAA,KAAgB;AAClC,EAAA,MAAM,IAAA,GAAO,YAAY,IAAA,EAAK;AAG9B,EAAA,IAAI,CAAC,KAAK,OAAA,EAAS;AACjB,IAAA,OAAA,CAAQ,MAAM,yEAAyE,CAAA;AACvF,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAEA,EAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,IAAA,OAAA,CAAQ,MAAM,uEAAuE,CAAA;AACrF,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAEA,EAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,IAAA,OAAA,CAAQ,MAAM,yEAAyE,CAAA;AACvF,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AAGA,EAAA,MAAM,YAAA,GAAqC;AAAA,IACzC,SAAS,IAAA,CAAK,OAAA;AAAA,IACd,QAAQ,IAAA,CAAK,MAAA;AAAA,IACb,UAAU,IAAA,CAAK,QAAA;AAAA,IACf,OAAA,EAAS,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA;AAAA,IAC9B,KAAA,EAAO,EAAE,OAAA,EAAS,KAAA,EAAO,KAAK,CAAA;AAAE,GAClC;AAEA,EAAA,WAAA,CAAY,MAAA,GAAS,IAAI,oBAAA,CAAqB,YAAY,CAAA;AAC1D,EAAA,WAAA,CAAY,SAAS,IAAA,CAAK,MAAA;AAC5B,CAAC,CAAA;AAGH,iBAAA,CAAkB,OAAO,CAAA;AACzB,cAAA,CAAe,OAAO,CAAA;AACtB,eAAA,CAAgB,OAAO,CAAA;AACvB,eAAA,CAAgB,OAAO,CAAA;AAEvB,OAAA,CAAQ,KAAA,EAAM","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n// Common types used across multiple endpoints\n\nexport const PaginationLinksSchema = z.object({\n first: z.string().nullable(),\n last: z.string().nullable(),\n prev: z.string().nullable(),\n next: z.string().nullable(),\n});\n\nexport const PaginationMetaSchema = z.object({\n current_page: z.number(),\n from: z.number().nullable(),\n last_page: z.number(),\n links: z.array(z.object({\n url: z.string().nullable(),\n label: z.string(),\n active: z.boolean(),\n })),\n path: z.string(),\n per_page: z.number(),\n to: z.number().nullable(),\n total: z.number(),\n});\n\nexport const PaginatedResponseSchema = <T extends z.ZodTypeAny>(dataSchema: T) =>\n z.object({\n data: z.array(dataSchema),\n links: PaginationLinksSchema,\n meta: PaginationMetaSchema,\n });\n\nexport const ApiErrorSchema = z.object({\n message: z.string(),\n errors: z.record(z.string(), z.array(z.string())).optional(),\n});\n\n// Base types\nexport type PaginationLinks = z.infer<typeof PaginationLinksSchema>;\nexport type PaginationMeta = z.infer<typeof PaginationMetaSchema>;\nexport type PaginatedResponse<T> = {\n data: T[];\n links: PaginationLinks;\n meta: PaginationMeta;\n};\nexport type ApiError = z.infer<typeof ApiErrorSchema>;","// Generated by scripts/generate-zod-schemas.mjs\n// DO NOT EDIT MANUALLY - This file is auto-generated from OpenAPI spec\n\nimport { z } from 'zod';\n\n/**\n * Query parameters for availability.show\n * Generated from OpenAPI operation: GET /properties/{property}/availability\n */\nexport const AvailabilityShowParamsSchema = z.object({\n start_date: z.string(),\n end_date: z.string()\n});\n\nexport type AvailabilityShowParams = z.infer<typeof AvailabilityShowParamsSchema>;\n\n\n// Request body schema for booking.store references: CreateBookingRequest\n\n/**\n * Query parameters for property.index\n * Generated from OpenAPI operation: GET /properties\n */\nexport const PropertyIndexParamsSchema = z.object({\n per_page: z.string().optional()\n});\n\nexport type PropertyIndexParams = z.infer<typeof PropertyIndexParamsSchema>;\n\n\n/**\n * Query parameters for property.search\n * Generated from OpenAPI operation: GET /properties/search\n */\nexport const PropertySearchParamsSchema = z.object({\n // Date filters\n arrival: z.string().nullable().optional(),\n departure: z.string().nullable().optional(),\n // Guest capacity\n guests: z.number().nullable().optional(),\n // Legacy filters (deprecated)\n destination: z.string().nullable().optional(),\n segment: z.string().nullable().optional(),\n // Direct column filters (preferred)\n city: z.string().nullable().optional(),\n area: z.string().nullable().optional(),\n street: z.string().nullable().optional(),\n property_type: z.string().nullable().optional(),\n // Numeric filters\n bedrooms: z.number().nullable().optional(),\n bathrooms: z.number().nullable().optional(),\n max_persons: z.number().nullable().optional(),\n // Boolean filters\n elevator: z.boolean().nullable().optional(),\n parking: z.boolean().nullable().optional(),\n balcony: z.boolean().nullable().optional()\n});\n\nexport type PropertySearchParams = z.infer<typeof PropertySearchParamsSchema>;\n\n","import { z } from \"zod\";\n\n// Property-related types and schemas\n\nexport const PropertyImageSchema = z.object({\n id: z.number(),\n url: z.string(),\n alt: z.string().optional(),\n});\n\nexport const PropertySchema = z.object({\n id: z.number(),\n external_id: z.string().nullable(),\n name: z.string(),\n slug: z.string(),\n\n // Descriptions\n short_description: z.string().nullable(),\n description: z.string(),\n area_description: z.string().nullable(),\n arrival_description: z.string().nullable(),\n payment_description: z.string().nullable(),\n\n // Property type & capacity\n type: z.string().nullable(),\n max_persons: z.number().nullable(),\n bedrooms: z.number().nullable(),\n bathrooms: z.number().nullable(),\n toilets: z.number().nullable(),\n size: z.number().nullable(),\n floor: z.number().nullable(),\n stairs: z.boolean().nullable(),\n\n // Location\n street: z.string().nullable(),\n zipcode: z.string().nullable(),\n area: z.string().nullable(),\n city: z.string(),\n country: z.string(),\n latitude: z.number(),\n longitude: z.number(),\n\n // Beds\n single_bed: z.number().nullable(),\n double_bed: z.number().nullable(),\n single_sofa: z.number().nullable(),\n double_sofa: z.number().nullable(),\n single_bunk: z.number().nullable(),\n\n // Amenities - Outdoor\n balcony: z.boolean(),\n patio: z.boolean().nullable(),\n garden: z.boolean().nullable(),\n roof_terrace: z.boolean().nullable(),\n view: z.string().nullable(),\n\n // Amenities - Climate\n airco: z.boolean(),\n fans: z.boolean(),\n heating: z.boolean(),\n\n // Amenities - Connectivity\n internet: z.string().nullable(),\n internet_connection: z.string().nullable(),\n tv: z.string().nullable(),\n tv_connection: z.string().nullable(),\n dvd: z.string().nullable(),\n computer: z.boolean(),\n printer: z.boolean(),\n\n // Amenities - Kitchen\n dishwasher: z.boolean(),\n oven: z.boolean(),\n microwave: z.boolean(),\n grill: z.number().nullable(),\n hob: z.number().nullable(),\n fridge: z.boolean(),\n freezer: z.boolean(),\n toaster: z.boolean(),\n kettle: z.boolean(),\n coffeemachine: z.boolean(),\n\n // Amenities - Laundry\n washingmachine: z.boolean(),\n dryer: z.boolean(),\n iron: z.boolean(),\n\n // Amenities - Bathroom\n bathtub: z.boolean(),\n jacuzzi: z.boolean(),\n shower_regular: z.boolean(),\n shower_steam: z.boolean(),\n hairdryer: z.boolean(),\n\n // Amenities - Recreation\n swimmingpool: z.string().nullable(),\n sauna: z.string().nullable(),\n\n // Amenities - General\n parking: z.string().nullable(),\n elevator: z.boolean().nullable(),\n entresol: z.boolean(),\n wheelchair_friendly: z.boolean(),\n smoking_allowed: z.boolean(),\n pets_allowed: z.boolean(),\n\n // Supplies\n supplies_coffee: z.boolean(),\n supplies_tea: z.boolean(),\n supplies_milk: z.boolean(),\n supplies_sugar: z.boolean(),\n supplies_dishwasher_tablets: z.boolean(),\n\n // Services\n service_linen: z.boolean(),\n service_towels: z.boolean(),\n\n // Costs & Policies\n cleaning_costs: z.number().nullable(),\n deposit_costs: z.number().nullable(),\n prepayment: z.number().nullable(),\n fee: z.number().nullable(),\n tax_vat: z.number().nullable(),\n tax_other: z.number().nullable(),\n tax_other_type: z.string().nullable(),\n minimal_nights: z.number().nullable(),\n maximal_nights: z.number().nullable(),\n\n // Dynamic pricing (calculated when arrival/departure dates provided)\n min_rate: z.number().nullable().optional(),\n\n // Availability & Check-in/out\n available_start: z.string().nullable(),\n available_end: z.string().nullable(),\n check_in: z.string().nullable(),\n check_out: z.string().nullable(),\n\n // Media\n images: z.array(z.object({\n id: z.number(),\n alt: z.string(),\n // Responsive image sizes\n small_url: z.string(), // 400×300\n medium_url: z.string(), // 800×600\n large_url: z.string(), // 1200×900\n srcset: z.string(), // Responsive srcset string\n // Default fallback (backward compatibility)\n url: z.string(),\n })).optional(),\n\n // Metadata\n status: z.string().nullable(),\n provider_name: z.string().nullable(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const AvailableDay = z.object({\n available: z.boolean(),\n morning_available: z.boolean(),\n date: z.string(),\n day: z.number(),\n stay_minimum: z.number(),\n});\n\nexport const AvailabilitySchema = z.object({\n days: z.record(z.string(), AvailableDay),\n});\n\n// Property Search schemas\n// NOTE: PropertySearchParamsSchema is now AUTO-GENERATED from OpenAPI spec\n// See: src/types/generated/schemas.ts (generated by scripts/generate-zod-schemas.mjs)\n// This ensures parameter schemas stay in sync with backend API automatically\nexport { PropertySearchParamsSchema } from './generated/schemas';\n\nexport const PropertySearchResultSchema = z.object({\n data: z.array(PropertySchema),\n});\n\nexport const PropertyPageSettingsSchema = z.object({\n routing: z.object({\n base_url: z.string(),\n }),\n index: z.object({\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }),\n }),\n show: z\n .object({\n hero: z\n .object({\n provider: z.boolean().optional(),\n address: z.boolean().optional(),\n })\n .optional(),\n cancellation_policy: z\n .object({\n description: z.string(),\n })\n .optional(),\n related_properties: z\n .object({\n title: z.string(),\n })\n .optional(),\n })\n .optional(),\n});\n\n// Exported types\nexport type PropertyImage = z.infer<typeof PropertyImageSchema>;\nexport type Property = z.infer<typeof PropertySchema>;\nexport type Availability = z.infer<typeof AvailabilitySchema>;\nexport type PropertyPageSettings = z.infer<typeof PropertyPageSettingsSchema>;\n\n// Property Search types\n// NOTE: PropertySearchParams type is now AUTO-GENERATED from OpenAPI spec\nexport type { PropertySearchParams } from './generated/schemas';\nexport type PropertySearchResult = z.infer<typeof PropertySearchResultSchema>;\n","import { z } from \"zod\";\n\n// Content management types (pages, posts, etc.)\n\nexport const PageSchema = z.object({\n id: z.string(),\n slug: z.string(),\n title: z.string().nullable(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n sections: z.array(z.any()),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n image: z.string().nullable(),\n }),\n route_name: z.string(),\n});\n\nexport const PostSchema = z.object({\n id: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n excerpt: z.string().nullable(),\n author: z.string().nullable(),\n date: z.string(), // ISO date string\n image: z.string().nullable(),\n tags: z.array(z.string()),\n reading_time: z.string().nullable(),\n sections: z.array(z.any()),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n image: z.string().nullable(),\n }),\n route_name: z.string(),\n});\n\nexport const CategorySchema = z.object({\n slug: z.string(),\n name: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n segments: z.union([z.array(z.string()), z.number()]).optional(),\n});\n\nexport const CategorySegmentSchema = z.object({\n name: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n tags: z.array(z.string()).optional(),\n sections: z.array(z.any()),\n content: z.string().nullable(),\n image: z.string(),\n});\n\n// Exported types\nexport type Page = z.infer<typeof PageSchema>;\nexport type Post = z.infer<typeof PostSchema>;\nexport type Category = z.infer<typeof CategorySchema>;\nexport type CategorySegment = z.infer<typeof CategorySegmentSchema>;\n","import { z } from 'zod';\n\n// Settings types based on actual Laravel instance configuration files\n\nexport const MainSettingsSchema = z.object({\n site: z.object({\n name: z.string(),\n domain: z.string(),\n locale: z.string(),\n }),\n contact: z.object({\n email: z.string(),\n phone: z.string().optional(),\n }),\n social: z.object({\n facebook: z.string().optional(),\n instagram: z.string().optional(),\n }).optional(),\n mail: z.object({\n from: z.object({\n address: z.string(),\n name: z.string(),\n }),\n contact_form_to: z.string(),\n }).optional(),\n pms: z.object({\n property_providers: z.array(z.object({\n name: z.string(),\n system: z.string(),\n api_key: z.string().optional(),\n base_url: z.string().optional(),\n discount: z.number().optional(),\n enabled: z.boolean().optional(),\n })),\n }).optional(),\n pricing: z.object({\n vat: z.number(),\n tourist_tax: z.object({\n type: z.string(),\n value: z.number(),\n }),\n }).optional(),\n discount: z.number().optional(),\n});\n\nexport const ThemeSettingsSchema = z.object({\n logo: z.object({\n path: z.string(),\n height: z.number().optional(),\n }).optional(),\n favicon_path: z.string().optional(),\n colors: z.object({\n primary: z.string(),\n secondary: z.string(),\n }),\n layout: z.object({\n homepage_style: z.string().optional(),\n navigation: z.object({\n variant: z.string().optional(),\n items: z.array(z.any()),\n buttons: z.array(z.any()).optional(),\n }).optional(),\n footer: z.object({\n blog_title: z.string().optional(),\n contact_title: z.string().optional(),\n categories: z.array(z.any()).optional(),\n }).optional(),\n }).optional(),\n});\n\nexport const PropertySettingsSchema = z.object({\n routing: z.object({\n base_url: z.string(),\n }),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }).optional(),\n index: z.object({\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }),\n }),\n show: z.object({\n hero: z.object({\n provider: z.boolean().optional(),\n address: z.boolean().optional(),\n }).optional(),\n cancellation_policy: z.object({\n description: z.string(),\n }).optional(),\n related_properties: z.object({\n title: z.string(),\n }).optional(),\n }).optional(),\n});\n\nexport const BookingSettingsSchema = z.object({\n booking_confirmation: z.object({\n sections: z.object({\n arrival_description: z.boolean().optional(),\n }).optional(),\n content: z.object({\n body: z.string().optional(),\n help: z.string().optional(),\n }).optional(),\n }).optional(),\n});\n\n// Exported types\nexport type MainSettings = z.infer<typeof MainSettingsSchema>;\nexport type ThemeSettings = z.infer<typeof ThemeSettingsSchema>;\nexport type PropertySettings = z.infer<typeof PropertySettingsSchema>;\nexport type BookingSettings = z.infer<typeof BookingSettingsSchema>;","import { z } from 'zod';\n\n// Booking-related types and schemas\n\nexport const BookingRequestSchema = z.object({\n property_id: z.number(),\n check_in: z.string(),\n check_out: z.string(),\n guests: z.number(),\n first_name: z.string(),\n last_name: z.string(),\n email: z.string().email(),\n phone: z.string().optional(),\n notes: z.string().optional(),\n total_amount: z.number(),\n payment_method: z.enum(['stripe', 'cash', 'bank_transfer']).optional(),\n});\n\nexport const BookingResponseSchema = z.object({\n id: z.string(),\n property_id: z.number(),\n check_in: z.string(),\n check_out: z.string(),\n guests: z.number(),\n status: z.enum(['pending', 'confirmed', 'cancelled', 'completed']),\n total_amount: z.number(),\n payment_status: z.enum(['pending', 'paid', 'refunded']),\n confirmation_code: z.string(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\n// Exported types\nexport type BookingRequest = z.infer<typeof BookingRequestSchema>;\nexport type BookingResponse = z.infer<typeof BookingResponseSchema>;","// Main types index - exports all types from categorized modules\n\n// Common types\nexport * from './common';\n\n// Property types\nexport * from './properties';\nexport {\n PropertySchema,\n AvailabilitySchema,\n PropertySearchResultSchema,\n} from './properties';\n\n// Content types\nexport * from './content';\nexport {\n PageSchema,\n PostSchema,\n} from './content';\n\n// Settings types\nexport * from './settings';\nexport {\n MainSettingsSchema,\n ThemeSettingsSchema,\n PropertySettingsSchema,\n BookingSettingsSchema,\n} from './settings';\n\n// Booking types\nexport * from './bookings';\nexport {\n BookingRequestSchema,\n BookingResponseSchema,\n} from './bookings';\n\n// Configuration types\nimport { z } from 'zod';\n\nexport const MoreApartmentsConfigSchema = z.object({\n baseUrl: z.string().optional(),\n apiKey: z.string().optional(),\n instance: z.string().optional(),\n timeout: z.number().optional(),\n retry: z.object({\n attempts: z.number(),\n delay: z.number(),\n }).optional(),\n cache: z.object({\n enabled: z.boolean(),\n ttl: z.number(),\n }).optional(),\n});\n\nexport type MoreApartmentsConfig = z.infer<typeof MoreApartmentsConfigSchema>;","import { z } from 'zod';\nimport type {\n MoreApartmentsConfig,\n Property,\n PaginatedResponse,\n Page,\n Post,\n Category,\n CategorySegment,\n MainSettings,\n ThemeSettings,\n PropertySettings,\n BookingSettings,\n Availability,\n BookingRequest,\n BookingResponse,\n PropertySearchParams,\n PropertySearchResult,\n} from './types';\nimport {\n PropertySchema,\n PaginatedResponseSchema,\n PageSchema,\n PostSchema,\n CategorySchema,\n CategorySegmentSchema,\n MainSettingsSchema,\n ThemeSettingsSchema,\n PropertySettingsSchema,\n BookingSettingsSchema,\n AvailabilitySchema,\n BookingResponseSchema,\n ApiErrorSchema,\n PropertySearchParamsSchema,\n PropertySearchResultSchema,\n} from './types';\n\nexport class MoreApartmentsClient {\n private config: Required<MoreApartmentsConfig>;\n private cache: Map<string, { data: any; timestamp: number }> = new Map();\n\n /**\n * Clear all cached data\n */\n clearCache(): void {\n this.cache.clear();\n }\n\n /**\n * Get cache statistics\n */\n getCacheStats(): { entries: number; size: number } {\n return {\n entries: this.cache.size,\n size: Array.from(this.cache.values()).reduce((total, entry) => {\n return total + JSON.stringify(entry.data).length;\n }, 0),\n };\n }\n\n constructor(config: MoreApartmentsConfig) {\n this.config = {\n baseUrl: config.baseUrl?.replace(/\\/$/, '') || '',\n apiKey: config.apiKey || '',\n instance: config.instance || '',\n timeout: config.timeout || 30000,\n retry: {\n attempts: config.retry?.attempts || 3,\n delay: config.retry?.delay || 1000,\n },\n cache: {\n enabled: config.cache?.enabled ?? true,\n ttl: config.cache?.ttl || 300000, // 5 minutes default\n },\n };\n }\n\n private async fetchWithRetry<T>(\n url: string,\n options: RequestInit = {},\n schema?: any\n ): Promise<T> {\n const cacheKey = `${options.method || 'GET'}:${url}`;\n\n // Check cache for GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n const cached = this.cache.get(cacheKey);\n if (cached && this.config.cache?.ttl && Date.now() - cached.timestamp < this.config.cache.ttl) {\n return cached.data as T;\n }\n }\n\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n ...(this.config.apiKey && { 'Authorization': `Bearer ${this.config.apiKey}` }),\n ...(this.config.instance && { 'X-Instance': this.config.instance }),\n ...options.headers,\n };\n\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt < (this.config.retry?.attempts ?? 3); attempt++) {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => {\n controller.abort();\n }, this.config.timeout);\n\n const response = await fetch(url, {\n ...options,\n headers,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: response.statusText }));\n throw new Error(error.message || `HTTP ${response.status}: ${response.statusText}`);\n }\n\n const data = await response.json();\n\n // Validate with schema if provided\n if (schema) {\n const result = schema.safeParse(data);\n if (!result.success) {\n throw new Error(`Invalid response format: ${result.error.message}`);\n }\n const validatedData = result.data as T;\n\n // Cache successful GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n this.cache.set(cacheKey, { data: validatedData, timestamp: Date.now() });\n }\n\n return validatedData;\n }\n\n // Cache successful GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n this.cache.set(cacheKey, { data, timestamp: Date.now() });\n }\n\n return data as T;\n } catch (error) {\n lastError = error as Error;\n\n if (attempt < (this.config.retry?.attempts ?? 3) - 1) {\n await new Promise(resolve => setTimeout(resolve, (this.config.retry?.delay ?? 1000) * (attempt + 1)));\n }\n }\n }\n\n throw lastError || new Error('Request failed');\n }\n\n // Property endpoints\n async getProperties(params?: {\n page?: number;\n per_page?: number;\n }): Promise<PaginatedResponse<Property>> {\n const queryParams = new URLSearchParams();\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.per_page) queryParams.append('per_page', params.per_page.toString());\n\n const url = `${this.config.baseUrl}/api/v1/properties${queryParams.toString() ? '?' + queryParams.toString() : ''}`;\n return this.fetchWithRetry(url, {}, PaginatedResponseSchema(PropertySchema));\n }\n\n async getProperty(propertyIdOrSlug: number | string): Promise<Property> {\n const url = `${this.config.baseUrl}/api/v1/properties/${propertyIdOrSlug}`;\n const response = await this.fetchWithRetry<{ data: Property }>(url, {}, z.object({ data: PropertySchema }));\n return response.data;\n }\n\n // Availability endpoints\n async getAvailability(\n propertySlug: string,\n startDate: string,\n endDate: string\n ): Promise<Availability> {\n const queryParams = new URLSearchParams({\n start_date: startDate,\n end_date: endDate,\n });\n const url = `${this.config.baseUrl}/api/v1/properties/${propertySlug}/availability?${queryParams}`;\n const response = await this.fetchWithRetry<{ data: Availability }>(url, {}, z.object({ data: AvailabilitySchema }));\n return response.data;\n }\n\n /**\n * Get property calendar with pricing information (legacy endpoint)\n * Returns daily rates and availability for the specified date range\n */\n async getPropertyCalendar(\n propertySlug: string,\n fromDate: string,\n toDate: string\n ): Promise<Array<{\n date: string;\n available: boolean;\n season: string;\n final_rate: number;\n stay_minimum: number;\n }>> {\n const queryParams = new URLSearchParams({\n from: fromDate,\n to: toDate,\n });\n const url = `${this.config.baseUrl}/api/properties/${propertySlug}/calendars?${queryParams}`;\n const response = await this.fetchWithRetry<{ data: Array<{\n date: string;\n available: boolean;\n season: string;\n final_rate: number;\n stay_minimum: number;\n }> }>(url);\n return response.data;\n }\n\n // Content endpoints\n async getPages(): Promise<Page[]> {\n const url = `${this.config.baseUrl}/api/v1/pages`;\n const response = await this.fetchWithRetry<{ data: Page[] }>(url, {}, z.object({ data: z.array(PageSchema) }));\n return response.data;\n }\n\n async getPage(slug: string): Promise<Page> {\n const url = `${this.config.baseUrl}/api/v1/pages/${slug}`;\n const response = await this.fetchWithRetry<{ data: Page }>(url, {}, z.object({ data: PageSchema }));\n return response.data;\n }\n\n async getPosts(params?: {\n page?: number;\n per_page?: number;\n tag?: string;\n }): Promise<Post[]> {\n const queryParams = new URLSearchParams();\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.per_page) queryParams.append('per_page', params.per_page.toString());\n if (params?.tag) queryParams.append('tag', params.tag);\n\n const url = `${this.config.baseUrl}/api/v1/posts${queryParams.toString() ? '?' + queryParams.toString() : ''}`;\n const response = await this.fetchWithRetry<{ data: Post[] }>(url, {}, z.object({ data: z.array(PostSchema) }));\n return response.data;\n }\n\n async getPost(slug: string): Promise<Post> {\n const url = `${this.config.baseUrl}/api/v1/posts/${slug}`;\n const response = await this.fetchWithRetry<{ data: Post }>(url, {}, z.object({ data: PostSchema }));\n return response.data;\n }\n\n async getLocations(): Promise<any> {\n const url = `${this.config.baseUrl}/api/v1/locations`;\n const response = await this.fetchWithRetry<{ data: string[] }>(url, {}, z.object({ data: z.array(z.string()) }));\n return response.data;\n }\n\n async getCategories(): Promise<Category[]> {\n const url = `${this.config.baseUrl}/api/v1/categories`;\n const response = await this.fetchWithRetry<{ data: Category[] }>(url, {}, z.object({ data: z.array(CategorySchema) }));\n return response.data;\n }\n\n async getCategory(slug: string): Promise<Category> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}`;\n const response = await this.fetchWithRetry<{ data: Category }>(url, {}, z.object({ data: CategorySchema }));\n return response.data;\n }\n\n async getCategorySegments(slug: string): Promise<CategorySegment[]> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}/segments`;\n const response = await this.fetchWithRetry<{ data: CategorySegment[] }>(url, {}, z.object({ data: z.array(CategorySegmentSchema) }));\n return response.data;\n }\n\n async getCategorySegment(slug: string, segment: string): Promise<CategorySegment> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}/segments/${segment}`;\n const response = await this.fetchWithRetry<{ data: CategorySegment }>(url, {}, z.object({ data: CategorySegmentSchema }));\n return response.data;\n }\n\n // Settings endpoints\n async getMainSettings(): Promise<MainSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/main`;\n const response = await this.fetchWithRetry<{ data: MainSettings }>(url, {}, z.object({ data: MainSettingsSchema }));\n return response.data;\n }\n\n async getThemeSettings(): Promise<ThemeSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/theme`;\n const response = await this.fetchWithRetry<{ data: ThemeSettings }>(url, {}, z.object({ data: ThemeSettingsSchema }));\n return response.data;\n }\n\n async getPropertySettings(): Promise<PropertySettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/properties`;\n const response = await this.fetchWithRetry<{ data: PropertySettings }>(url, {}, z.object({ data: PropertySettingsSchema }));\n return response.data;\n }\n\n async getBookingSettings(): Promise<BookingSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/booking`;\n const response = await this.fetchWithRetry<{ data: BookingSettings }>(url, {}, z.object({ data: BookingSettingsSchema }));\n return response.data;\n }\n\n // Booking endpoints\n async createBooking(booking: BookingRequest): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings`;\n const response = await this.fetchWithRetry<{ data: BookingResponse }>(\n url,\n {\n method: 'POST',\n body: JSON.stringify(booking),\n },\n z.object({ data: BookingResponseSchema })\n );\n return response.data;\n }\n\n async getBooking(bookingId: string): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${bookingId}`;\n const response = await this.fetchWithRetry<{ data: BookingResponse }>(url, {}, z.object({ data: BookingResponseSchema }));\n return response.data;\n }\n\n /**\n * Search properties with advanced filtering\n */\n async searchProperties(params: PropertySearchParams): Promise<Property[]> {\n const searchParams = new URLSearchParams();\n\n // Date filters\n if (params.arrival) searchParams.set('arrival', params.arrival);\n if (params.departure) searchParams.set('departure', params.departure);\n\n // Guest capacity\n if (params.guests) searchParams.set('guests', params.guests.toString());\n\n // General search (deprecated)\n if (params.destination) searchParams.set('destination', params.destination);\n if (params.segment) searchParams.set('segment', params.segment);\n\n // Direct column filters (preferred for headless instances)\n if (params.city) searchParams.set('city', params.city);\n if (params.area) searchParams.set('area', params.area);\n if (params.street) searchParams.set('street', params.street);\n if (params.property_type) searchParams.set('property_type', params.property_type);\n if (params.bedrooms !== undefined && params.bedrooms !== null) searchParams.set('bedrooms', params.bedrooms.toString());\n if (params.bathrooms !== undefined && params.bathrooms !== null) searchParams.set('bathrooms', params.bathrooms.toString());\n if (params.max_persons !== undefined && params.max_persons !== null) searchParams.set('max_persons', params.max_persons.toString());\n if (params.elevator !== undefined) searchParams.set('elevator', params.elevator ? '1' : '0');\n if (params.parking !== undefined) searchParams.set('parking', params.parking ? '1' : '0');\n if (params.balcony !== undefined) searchParams.set('balcony', params.balcony ? '1' : '0');\n\n const url = `${this.config.baseUrl}/api/v1/properties/search?${searchParams.toString()}`;\n const response = await this.fetchWithRetry<PropertySearchResult>(url, {}, PropertySearchResultSchema);\n return response.data;\n }\n\n}\n","import { inspect } from 'util';\n\nexport type OutputFormat = 'json' | 'table' | 'yaml';\n\nexport function formatOutput(data: any, format: OutputFormat = 'json'): void {\n switch (format) {\n case 'json':\n console.log(JSON.stringify(data, null, 2));\n break;\n\n case 'yaml':\n console.log(toYAML(data));\n break;\n\n case 'table':\n if (Array.isArray(data)) {\n console.table(data);\n } else {\n console.table([data]);\n }\n break;\n\n default:\n console.log(inspect(data, { depth: null, colors: true }));\n }\n}\n\nfunction toYAML(obj: any, indent: number = 0): string {\n const spaces = ' '.repeat(indent);\n\n if (obj === null || obj === undefined) {\n return 'null';\n }\n\n if (typeof obj === 'string') {\n return obj.includes('\\n') ? `|\\n${obj.split('\\n').map(line => `${spaces} ${line}`).join('\\n')}` : obj;\n }\n\n if (typeof obj === 'number' || typeof obj === 'boolean') {\n return String(obj);\n }\n\n if (Array.isArray(obj)) {\n if (obj.length === 0) return '[]';\n return '\\n' + obj.map(item => `${spaces}- ${toYAML(item, indent + 1)}`).join('\\n');\n }\n\n if (typeof obj === 'object') {\n const entries = Object.entries(obj);\n if (entries.length === 0) return '{}';\n\n return '\\n' + entries.map(([key, value]) => {\n const formattedValue = toYAML(value, indent + 1);\n if (formattedValue.startsWith('\\n')) {\n return `${spaces}${key}:${formattedValue}`;\n }\n return `${spaces}${key}: ${formattedValue}`;\n }).join('\\n');\n }\n\n return String(obj);\n}\n\nexport function handleError(error: any): void {\n if (error.message) {\n console.error(`Error: ${error.message}`);\n } else {\n console.error('An unexpected error occurred:', error);\n }\n process.exit(1);\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function propertiesCommand(program: Command): void {\n const properties = program\n .command('properties')\n .alias('props')\n .description('Manage properties');\n\n properties\n .command('list')\n .description('List all properties')\n .option('-p, --page <number>', 'Page number', '1')\n .option('-l, --limit <number>', 'Items per page', '10')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getProperties({\n page: parseInt(options.page),\n per_page: parseInt(options.limit),\n });\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('show <id>')\n .description('Show property details by ID or slug')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const property = await client.getProperty(id);\n\n formatOutput(property, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('search')\n .description('Search properties with filters')\n .option('-d, --destination <destination>', 'Destination (general search)')\n .option('-c, --city <city>', 'City name')\n .option('-a, --area <area>', 'Area/neighborhood')\n .option('--arrival <date>', 'Arrival date (YYYY-MM-DD)')\n .option('--departure <date>', 'Departure date (YYYY-MM-DD)')\n .option('-g, --guests <number>', 'Number of guests')\n .option('-b, --bedrooms <number>', 'Number of bedrooms')\n .option('--bathrooms <number>', 'Number of bathrooms')\n .option('--max-persons <number>', 'Maximum persons')\n .option('--property-type <type>', 'Property type')\n .option('--elevator', 'Has elevator')\n .option('--parking', 'Has parking')\n .option('--balcony', 'Has balcony')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const searchParams: any = {};\n\n if (options.destination) searchParams.destination = options.destination;\n if (options.city) searchParams.city = options.city;\n if (options.area) searchParams.area = options.area;\n if (options.arrival) searchParams.arrival = options.arrival;\n if (options.departure) searchParams.departure = options.departure;\n if (options.guests) searchParams.guests = parseInt(options.guests);\n if (options.bedrooms) searchParams.bedrooms = parseInt(options.bedrooms);\n if (options.bathrooms) searchParams.bathrooms = parseInt(options.bathrooms);\n if (options.maxPersons) searchParams.maxPersons = parseInt(options.maxPersons);\n if (options.propertyType) searchParams.propertyType = options.propertyType;\n if (options.elevator) searchParams.elevator = true;\n if (options.parking) searchParams.parking = true;\n if (options.balcony) searchParams.balcony = true;\n\n const results = await client.searchProperties(searchParams);\n\n formatOutput(results, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('availability <id>')\n .description('Get property availability')\n .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')\n .requiredOption('-e, --end <date>', 'End date (YYYY-MM-DD)')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const availability = await client.getAvailability(id, options.start, options.end);\n\n formatOutput(availability, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function contentCommand(program: Command): void {\n const content = program\n .command('content')\n .description('Manage content (pages, posts, categories)');\n\n // Pages subcommands\n const pages = content\n .command('pages')\n .description('Manage pages');\n\n pages\n .command('list')\n .description('List all pages')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getPages();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n pages\n .command('show <slug>')\n .description('Show page details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const page = await client.getPage(slug);\n\n formatOutput(page, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Posts subcommands\n const posts = content\n .command('posts')\n .description('Manage posts');\n\n posts\n .command('list')\n .description('List all posts')\n .option('-p, --page <number>', 'Page number', '1')\n .option('-l, --limit <number>', 'Items per page', '10')\n .option('-t, --tag <tag>', 'Filter by tag')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const params: any = {\n page: parseInt(options.page),\n per_page: parseInt(options.limit),\n };\n\n if (options.tag) params.tag = options.tag;\n\n const result = await client.getPosts(params);\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n posts\n .command('show <slug>')\n .description('Show post details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const post = await client.getPost(slug);\n\n formatOutput(post, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Categories subcommands\n const categories = content\n .command('categories')\n .alias('cats')\n .description('Manage categories');\n\n categories\n .command('list')\n .description('List all categories')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getCategories();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('show <slug>')\n .description('Show category details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const category = await client.getCategory(slug);\n\n formatOutput(category, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('segments <slug>')\n .description('List segments for a category')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const segments = await client.getCategorySegments(slug);\n\n formatOutput(segments, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('segment <category> <segment>')\n .description('Show specific segment details')\n .action(async (category, segment, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getCategorySegment(category, segment);\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Locations subcommand\n content\n .command('locations')\n .description('List all locations')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const locations = await client.getLocations();\n\n formatOutput(locations, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function settingsCommand(program: Command): void {\n const settings = program\n .command('settings')\n .description('Manage settings');\n\n settings\n .command('main')\n .description('Get main site settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getMainSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('theme')\n .description('Get theme settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getThemeSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('properties')\n .alias('props')\n .description('Get property settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getPropertySettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('booking')\n .description('Get booking settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getBookingSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('all')\n .description('Get all settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const [main, theme, properties, booking] = await Promise.all([\n client.getMainSettings(),\n client.getThemeSettings(),\n client.getPropertySettings(),\n client.getBookingSettings(),\n ]);\n\n const result = {\n main,\n theme,\n properties,\n booking,\n };\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { readFileSync } from 'fs';\nimport { resolve } from 'path';\nimport { formatOutput, handleError } from '../utils/format';\nimport type { BookingRequest } from '../../types';\n\nexport function bookingsCommand(program: Command): void {\n const bookings = program\n .command('bookings')\n .description('Manage bookings');\n\n bookings\n .command('create')\n .description('Create a new booking')\n .requiredOption('-f, --file <path>', 'Path to JSON file with booking data')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n // Read booking data from file\n const filePath = resolve(process.cwd(), options.file);\n const bookingData: BookingRequest = JSON.parse(readFileSync(filePath, 'utf-8'));\n\n const result = await client.createBooking(bookingData);\n\n console.log('✓ Booking created successfully');\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n bookings\n .command('show <id>')\n .description('Show booking details by ID')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const booking = await client.getBooking(id);\n\n formatOutput(booking, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n bookings\n .command('example')\n .description('Print example booking JSON structure')\n .action(() => {\n const example: BookingRequest = {\n property_id: 123,\n customer: {\n first_name: 'John',\n last_name: 'Doe',\n email: 'john.doe@example.com',\n phone: '+31612345678',\n address: '123 Main St',\n city: 'Amsterdam',\n country: 'Netherlands',\n postal_code: '1012AB',\n },\n arrival_date: '2024-06-01',\n departure_date: '2024-06-07',\n guests: 2,\n total_price: 850.00,\n notes: 'Late check-in requested',\n };\n\n console.log('Example booking structure (save to file and use with --file):');\n console.log(JSON.stringify(example, null, 2));\n });\n}\n","import { Command } from 'commander';\nimport { config } from 'dotenv';\nimport { resolve } from 'path';\nimport { MoreApartmentsClient } from '../client';\nimport type { MoreApartmentsConfig } from '../types';\nimport { propertiesCommand } from './commands/properties';\nimport { contentCommand } from './commands/content';\nimport { settingsCommand } from './commands/settings';\nimport { bookingsCommand } from './commands/bookings';\n\n// Load .env from current working directory\nconfig({ path: resolve(process.cwd(), '.env') });\n\nconst program = new Command();\n\nprogram\n .name('more-apartments')\n .description('CLI to interact with More Apartments REST API')\n .version('1.0.1')\n .option('-u, --base-url <url>', 'API base URL', process.env.MORE_APARTMENTS_BASE_URL)\n .option('-k, --api-key <key>', 'API key', process.env.MORE_APARTMENTS_API_KEY)\n .option('-i, --instance <instance>', 'Instance name', process.env.MORE_APARTMENTS_INSTANCE)\n .option('-t, --timeout <ms>', 'Request timeout in ms', '30000')\n .option('-f, --format <format>', 'Output format (json, table, yaml)', 'json')\n .hook('preAction', (thisCommand) => {\n const opts = thisCommand.opts();\n\n // Validate required options\n if (!opts.baseUrl) {\n console.error('Error: --base-url is required (or set MORE_APARTMENTS_BASE_URL env var)');\n process.exit(1);\n }\n\n if (!opts.apiKey) {\n console.error('Error: --api-key is required (or set MORE_APARTMENTS_API_KEY env var)');\n process.exit(1);\n }\n\n if (!opts.instance) {\n console.error('Error: --instance is required (or set MORE_APARTMENTS_INSTANCE env var)');\n process.exit(1);\n }\n\n // Create client and attach to command\n const clientConfig: MoreApartmentsConfig = {\n baseUrl: opts.baseUrl,\n apiKey: opts.apiKey,\n instance: opts.instance,\n timeout: parseInt(opts.timeout),\n cache: { enabled: false, ttl: 0 },\n };\n\n thisCommand.client = new MoreApartmentsClient(clientConfig);\n thisCommand.format = opts.format;\n });\n\n// Register command groups\npropertiesCommand(program);\ncontentCommand(program);\nsettingsCommand(program);\nbookingsCommand(program);\n\nprogram.parse();\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/types/common.ts","../../src/types/generated/schemas.ts","../../src/types/properties.ts","../../src/types/content.ts","../../src/types/settings.ts","../../src/types/bookings.ts","../../src/types/index.ts","../../src/client.ts","../../src/cli/utils/format.ts","../../src/cli/commands/properties.ts","../../src/cli/commands/content.ts","../../src/cli/commands/settings.ts","../../src/cli/index.ts"],"names":["z","config","resolve","inspect","program","Command"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n// Common types used across multiple endpoints\n\nexport const PaginationLinksSchema = z.object({\n first: z.string().nullable(),\n last: z.string().nullable(),\n prev: z.string().nullable(),\n next: z.string().nullable(),\n});\n\nexport const PaginationMetaSchema = z.object({\n current_page: z.number(),\n from: z.number().nullable(),\n last_page: z.number(),\n links: z.array(z.object({\n url: z.string().nullable(),\n label: z.string(),\n active: z.boolean(),\n })),\n path: z.string(),\n per_page: z.number(),\n to: z.number().nullable(),\n total: z.number(),\n});\n\nexport const PaginatedResponseSchema = <T extends z.ZodTypeAny>(dataSchema: T) =>\n z.object({\n data: z.array(dataSchema),\n links: PaginationLinksSchema,\n meta: PaginationMetaSchema,\n });\n\nexport const ApiErrorSchema = z.object({\n message: z.string(),\n errors: z.record(z.string(), z.array(z.string())).optional(),\n});\n\n// Base types\nexport type PaginationLinks = z.infer<typeof PaginationLinksSchema>;\nexport type PaginationMeta = z.infer<typeof PaginationMetaSchema>;\nexport type PaginatedResponse<T> = {\n data: T[];\n links: PaginationLinks;\n meta: PaginationMeta;\n};\nexport type ApiError = z.infer<typeof ApiErrorSchema>;","// Generated by scripts/generate-zod-schemas.mjs\n// DO NOT EDIT MANUALLY - This file is auto-generated from OpenAPI spec\n\nimport { z } from 'zod';\n\n/**\n * Query parameters for availability.show\n * Generated from OpenAPI operation: GET /properties/{property}/availability\n */\nexport const AvailabilityShowParamsSchema = z.object({\n start_date: z.string(),\n end_date: z.string()\n});\n\nexport type AvailabilityShowParams = z.infer<typeof AvailabilityShowParamsSchema>;\n\n\n// Request body schema for booking.store references: CreateBookingRequest\n\n// Request body schema for booking.createDraft references: BookingDraftRequest\n\n// Request body schema for booking.updateStep1 references: PersonalInfoRequest\n\n// Request body schema for booking.updateStep2 references: BookingDetailsRequest\n\n// Request body schema for booking.updateStep3 references: ReviewRequest\n\n/**\n * Query parameters for property.index\n * Generated from OpenAPI operation: GET /properties\n */\nexport const PropertyIndexParamsSchema = z.object({\n per_page: z.string().optional()\n});\n\nexport type PropertyIndexParams = z.infer<typeof PropertyIndexParamsSchema>;\n\n\n/**\n * Query parameters for property.search\n * Generated from OpenAPI operation: GET /properties/search\n */\nexport const PropertySearchParamsSchema = z.object({\n // Date filters\n arrival: z.string().nullable().optional(),\n departure: z.string().nullable().optional(),\n // Guest capacity\n guests: z.number().nullable().optional(),\n // Legacy filters (deprecated)\n destination: z.string().nullable().optional(),\n segment: z.string().nullable().optional(),\n // Direct column filters (preferred)\n city: z.string().nullable().optional(),\n area: z.string().nullable().optional(),\n street: z.string().nullable().optional(),\n property_type: z.string().nullable().optional(),\n // Numeric filters\n bedrooms: z.number().nullable().optional(),\n bathrooms: z.number().nullable().optional(),\n max_persons: z.number().nullable().optional(),\n // Boolean filters\n elevator: z.boolean().nullable().optional(),\n parking: z.boolean().nullable().optional(),\n balcony: z.boolean().nullable().optional()\n});\n\nexport type PropertySearchParams = z.infer<typeof PropertySearchParamsSchema>;\n\n","import { z } from \"zod\";\n\n// Property-related types and schemas\n\nexport const PropertyImageSchema = z.object({\n id: z.number(),\n url: z.string(),\n alt: z.string().optional(),\n});\n\nexport const PropertySchema = z.object({\n id: z.number(),\n external_id: z.string().nullable(),\n name: z.string(),\n slug: z.string(),\n\n // Descriptions\n short_description: z.string().nullable(),\n description: z.string(),\n area_description: z.string().nullable(),\n arrival_description: z.string().nullable(),\n payment_description: z.string().nullable(),\n\n // Property type & capacity\n type: z.string().nullable(),\n max_persons: z.number().nullable(),\n bedrooms: z.number().nullable(),\n bathrooms: z.number().nullable(),\n toilets: z.number().nullable(),\n size: z.number().nullable(),\n floor: z.number().nullable(),\n stairs: z.boolean().nullable(),\n\n // Location\n street: z.string().nullable(),\n zipcode: z.string().nullable(),\n area: z.string().nullable(),\n city: z.string(),\n country: z.string().nullable(),\n latitude: z.number(),\n longitude: z.number(),\n\n // Beds\n single_bed: z.number().nullable(),\n double_bed: z.number().nullable(),\n single_sofa: z.number().nullable(),\n double_sofa: z.number().nullable(),\n single_bunk: z.number().nullable(),\n\n // Amenities - Outdoor\n balcony: z.boolean(),\n patio: z.boolean().nullable(),\n garden: z.boolean().nullable(),\n roof_terrace: z.boolean().nullable(),\n view: z.string().nullable(),\n\n // Amenities - Climate\n airco: z.boolean(),\n fans: z.boolean(),\n heating: z.boolean(),\n\n // Amenities - Connectivity\n internet: z.string().nullable(),\n internet_connection: z.string().nullable(),\n tv: z.string().nullable(),\n tv_connection: z.string().nullable(),\n dvd: z.string().nullable(),\n computer: z.boolean(),\n printer: z.boolean(),\n\n // Amenities - Kitchen\n dishwasher: z.boolean(),\n oven: z.boolean(),\n microwave: z.boolean(),\n grill: z.number().nullable(),\n hob: z.number().nullable(),\n fridge: z.boolean(),\n freezer: z.boolean(),\n toaster: z.boolean(),\n kettle: z.boolean(),\n coffeemachine: z.boolean(),\n\n // Amenities - Laundry\n washingmachine: z.boolean(),\n dryer: z.boolean(),\n iron: z.boolean(),\n\n // Amenities - Bathroom\n bathtub: z.boolean(),\n jacuzzi: z.boolean(),\n shower_regular: z.boolean(),\n shower_steam: z.boolean(),\n hairdryer: z.boolean(),\n\n // Amenities - Recreation\n swimmingpool: z.string().nullable(),\n sauna: z.string().nullable(),\n\n // Amenities - General\n parking: z.string().nullable(),\n elevator: z.boolean().nullable(),\n entresol: z.boolean(),\n wheelchair_friendly: z.boolean(),\n smoking_allowed: z.boolean(),\n pets_allowed: z.boolean(),\n\n // Supplies\n supplies_coffee: z.boolean(),\n supplies_tea: z.boolean(),\n supplies_milk: z.boolean(),\n supplies_sugar: z.boolean(),\n supplies_dishwasher_tablets: z.boolean(),\n\n // Services\n service_linen: z.boolean(),\n service_towels: z.boolean(),\n\n // Costs & Policies\n cleaning_costs: z.number().nullable(),\n deposit_costs: z.number().nullable(),\n prepayment: z.number().nullable(),\n fee: z.number().nullable(),\n tax_vat: z.number().nullable(),\n tax_other: z.number().nullable(),\n tax_other_type: z.string().nullable(),\n minimal_nights: z.number().nullable(),\n maximal_nights: z.number().nullable(),\n\n // Dynamic pricing (calculated when arrival/departure dates provided)\n min_rate: z.number().nullable().optional(),\n\n // Availability & Check-in/out\n available_start: z.string().nullable(),\n available_end: z.string().nullable(),\n check_in: z.string().nullable(),\n check_out: z.string().nullable(),\n\n // Media\n images: z.array(z.object({\n id: z.number(),\n alt: z.string(),\n // Responsive image sizes\n small_url: z.string(), // 400×300\n medium_url: z.string(), // 800×600\n large_url: z.string(), // 1200×900\n srcset: z.string(), // Responsive srcset string\n // Default fallback (backward compatibility)\n url: z.string(),\n })).optional(),\n\n // Metadata\n status: z.string().nullable(),\n provider_name: z.string().nullable(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const AvailableDay = z.object({\n available: z.boolean(),\n morning_available: z.boolean(),\n date: z.string(),\n day: z.number(),\n stay_minimum: z.number(),\n});\n\nexport const AvailabilitySchema = z.object({\n days: z.record(z.string(), AvailableDay),\n});\n\n// Property Search schemas\n// NOTE: PropertySearchParamsSchema is now AUTO-GENERATED from OpenAPI spec\n// See: src/types/generated/schemas.ts (generated by scripts/generate-zod-schemas.mjs)\n// This ensures parameter schemas stay in sync with backend API automatically\nexport { PropertySearchParamsSchema } from './generated/schemas';\n\nexport const PropertySearchResultSchema = z.object({\n data: z.array(PropertySchema),\n});\n\nexport const PropertyPageSettingsSchema = z.object({\n routing: z.object({\n base_url: z.string(),\n }),\n index: z.object({\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }),\n }),\n show: z\n .object({\n hero: z\n .object({\n provider: z.boolean().optional(),\n address: z.boolean().optional(),\n })\n .optional(),\n cancellation_policy: z\n .object({\n description: z.string(),\n })\n .optional(),\n related_properties: z\n .object({\n title: z.string(),\n })\n .optional(),\n })\n .optional(),\n});\n\n// Exported types\nexport type PropertyImage = z.infer<typeof PropertyImageSchema>;\nexport type Property = z.infer<typeof PropertySchema>;\nexport type Availability = z.infer<typeof AvailabilitySchema>;\nexport type PropertyPageSettings = z.infer<typeof PropertyPageSettingsSchema>;\n\n// Property Search types\n// NOTE: PropertySearchParams type is now AUTO-GENERATED from OpenAPI spec\nexport type { PropertySearchParams } from './generated/schemas';\nexport type PropertySearchResult = z.infer<typeof PropertySearchResultSchema>;\n","import { z } from \"zod\";\n\n// Content management types (pages, posts, etc.)\n\nexport const PageSchema = z.object({\n id: z.string(),\n slug: z.string(),\n title: z.string().nullable(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n sections: z.array(z.any()),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n image: z.string().nullable(),\n }),\n route_name: z.string(),\n});\n\nexport const PostSchema = z.object({\n id: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n excerpt: z.string().nullable(),\n author: z.string().nullable(),\n date: z.string(), // ISO date string\n image: z.string().nullable(),\n tags: z.array(z.string()),\n reading_time: z.string().nullable(),\n sections: z.array(z.any()),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n image: z.string().nullable(),\n }),\n route_name: z.string(),\n});\n\nexport const CategorySchema = z.object({\n slug: z.string(),\n name: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n content: z.string().nullable(),\n segments: z.union([z.array(z.string()), z.number()]).optional(),\n});\n\nexport const CategorySegmentSchema = z.object({\n name: z.string(),\n slug: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n tags: z.array(z.string()).optional(),\n sections: z.array(z.any()),\n content: z.string().nullable(),\n image: z.string(),\n});\n\n// Exported types\nexport type Page = z.infer<typeof PageSchema>;\nexport type Post = z.infer<typeof PostSchema>;\nexport type Category = z.infer<typeof CategorySchema>;\nexport type CategorySegment = z.infer<typeof CategorySegmentSchema>;\n","import { z } from 'zod';\n\n// Settings types based on actual Laravel instance configuration files\n\nexport const MainSettingsSchema = z.object({\n site: z.object({\n name: z.string(),\n domain: z.string(),\n locale: z.string(),\n }),\n contact: z.object({\n email: z.string(),\n phone: z.string().optional(),\n }),\n social: z.object({\n facebook: z.string().optional(),\n instagram: z.string().optional(),\n }).optional(),\n mail: z.object({\n from: z.object({\n address: z.string(),\n name: z.string(),\n }),\n contact_form_to: z.string(),\n }).optional(),\n pms: z.object({\n property_providers: z.array(z.object({\n name: z.string(),\n system: z.string(),\n api_key: z.string().optional(),\n base_url: z.string().optional(),\n discount: z.number().optional(),\n enabled: z.boolean().optional(),\n })),\n }).optional(),\n pricing: z.object({\n vat: z.number(),\n tourist_tax: z.object({\n type: z.string(),\n value: z.number(),\n }),\n }).optional(),\n discount: z.number().optional(),\n});\n\nexport const ThemeSettingsSchema = z.object({\n logo: z.object({\n path: z.string(),\n height: z.number().optional(),\n }).optional(),\n favicon_path: z.string().optional(),\n colors: z.object({\n primary: z.string(),\n secondary: z.string(),\n }),\n layout: z.object({\n homepage_style: z.string().optional(),\n navigation: z.object({\n variant: z.string().optional(),\n items: z.array(z.any()),\n buttons: z.array(z.any()).optional(),\n }).optional(),\n footer: z.object({\n blog_title: z.string().optional(),\n contact_title: z.string().optional(),\n categories: z.array(z.any()).optional(),\n }).optional(),\n }).optional(),\n});\n\nexport const PropertySettingsSchema = z.object({\n routing: z.object({\n base_url: z.string(),\n }),\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }).optional(),\n index: z.object({\n seo: z.object({\n title: z.string(),\n description: z.string(),\n openGraphTitle: z.string().optional(),\n tags: z.array(z.string()).optional(),\n }),\n }),\n show: z.object({\n hero: z.object({\n provider: z.boolean().optional(),\n address: z.boolean().optional(),\n }).optional(),\n cancellation_policy: z.object({\n description: z.string(),\n }).optional(),\n related_properties: z.object({\n title: z.string(),\n }).optional(),\n }).optional(),\n});\n\nexport const BookingSettingsSchema = z.object({\n booking_confirmation: z.object({\n sections: z.object({\n arrival_description: z.boolean().optional(),\n }).optional(),\n content: z.object({\n body: z.string().optional(),\n help: z.string().optional(),\n }).optional(),\n }).optional(),\n});\n\n// Exported types\nexport type MainSettings = z.infer<typeof MainSettingsSchema>;\nexport type ThemeSettings = z.infer<typeof ThemeSettingsSchema>;\nexport type PropertySettings = z.infer<typeof PropertySettingsSchema>;\nexport type BookingSettings = z.infer<typeof BookingSettingsSchema>;","import { z } from 'zod';\n\n/**\n * Booking-related types and schemas for the 3-step booking wizard\n */\n\n// Enums\nexport type BookingStatus =\n | 'pending_details'\n | 'waiting_payment'\n | 'fresh'\n | 'confirmed'\n | 'cancelled'\n | 'completed';\n\nexport type PaymentMethod = 'stripe' | 'bank_transfer' | 'cash';\n\n// Step 1: Draft Creation\nexport interface BookingDraftRequest {\n property_id: number;\n arrival: string; // YYYY-MM-DD\n departure: string; // YYYY-MM-DD\n amount_adults: number;\n amount_children: number;\n}\n\nexport interface BookingDraftResponse {\n uuid: string;\n status: 'pending_details';\n property_id: number;\n arrival: string;\n departure: string;\n amount_adults: number;\n amount_children: number;\n total_price: number;\n nights: number;\n expires_at: string;\n created_at: string;\n updated_at: string;\n}\n\n// Step 2: Personal Information\nexport interface PersonalInfoRequest {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n address_1: string;\n address_2?: string;\n postal_code?: string;\n city: string;\n country: string;\n}\n\n// Step 3: Booking Details\nexport interface BookingDetailsRequest {\n time_arrival: string; // HH:MM\n flight?: string;\n notes?: string;\n}\n\n// Step 4: Review & Confirmation\nexport interface ReviewRequest {\n terms_accepted: boolean;\n marketing_consent?: boolean;\n}\n\n// Supporting Types\nexport interface PriceBreakdown {\n base_price: number;\n cleaning_fee: number;\n tourist_tax: number;\n vat: number;\n total: number;\n}\n\nexport interface PropertySummary {\n id: number;\n name: string;\n slug: string;\n city: string;\n image: string;\n max_guests: number;\n}\n\n// Full Booking Response (used for GET and step updates)\nexport interface BookingResponse {\n uuid: string;\n status: BookingStatus;\n property_id: number;\n property?: PropertySummary;\n arrival: string;\n departure: string;\n amount_adults: number;\n amount_children: number;\n first_name?: string;\n last_name?: string;\n email?: string;\n phone?: string;\n address_1?: string;\n address_2?: string;\n postal_code?: string;\n city?: string;\n country?: string;\n time_arrival?: string;\n flight?: string;\n notes?: string;\n terms_accepted?: boolean;\n marketing_consent?: boolean;\n total_price: number;\n price_breakdown?: PriceBreakdown;\n nights: number;\n expires_at: string;\n created_at: string;\n updated_at: string;\n}\n\n// Confirmation Response\nexport interface BookingConfirmResponse {\n message: string;\n data: {\n uuid: string;\n status: BookingStatus;\n property_id: number;\n arrival: string;\n departure: string;\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n address_1: string;\n address_2?: string;\n postal_code?: string;\n city: string;\n country: string;\n amount_adults: number;\n amount_children: number;\n time_arrival: string;\n flight?: string;\n notes?: string;\n external_id?: string;\n identifier?: string;\n balance_due: number;\n created_at: string;\n updated_at: string;\n };\n stripe_url?: string;\n}\n\n// Zod Schemas for validation\nexport const BookingDraftRequestSchema = z.object({\n property_id: z.number().int().positive(),\n arrival: z.string().regex(/^\\d{4}-\\d{2}-\\d{2}$/),\n departure: z.string().regex(/^\\d{4}-\\d{2}-\\d{2}$/),\n amount_adults: z.number().int().min(1),\n amount_children: z.number().int().min(0),\n});\n\nexport const BookingDraftResponseSchema = z.object({\n uuid: z.string().uuid(),\n status: z.literal('pending_details'),\n property_id: z.number(),\n arrival: z.string(),\n departure: z.string(),\n amount_adults: z.number(),\n amount_children: z.number(),\n total_price: z.number(),\n nights: z.number(),\n expires_at: z.string(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const PersonalInfoRequestSchema = z.object({\n first_name: z.string().min(1).max(255),\n last_name: z.string().min(1).max(255),\n email: z.string().email().max(255),\n phone: z.string().max(50),\n address_1: z.string().min(1).max(255),\n address_2: z.string().max(255).optional(),\n postal_code: z.string().max(20).optional(),\n city: z.string().min(1).max(100),\n country: z.string().min(1).max(100),\n});\n\nexport const BookingDetailsRequestSchema = z.object({\n time_arrival: z.string().regex(/^([01]\\d|2[0-3]):([0-5]\\d)$/),\n flight: z.string().max(50).optional(),\n notes: z.string().max(1000).optional(),\n});\n\nexport const ReviewRequestSchema = z.object({\n terms_accepted: z.boolean().refine(val => val === true, {\n message: \"Terms must be accepted\"\n }),\n marketing_consent: z.boolean().optional(),\n});\n\nexport const PropertySummarySchema = z.object({\n id: z.number(),\n name: z.string(),\n slug: z.string(),\n city: z.string(),\n image: z.string(),\n max_guests: z.number(),\n});\n\nexport const PriceBreakdownSchema = z.object({\n base_price: z.number(),\n cleaning_fee: z.number(),\n tourist_tax: z.number(),\n vat: z.number(),\n total: z.number(),\n});\n\n// Pricing Response (from GET /api/v1/bookings/{uuid}/pricing)\nexport interface BookingPricingResponse {\n uuid: string;\n property_id: number;\n arrival: string;\n departure: string;\n amount_adults: number;\n amount_children: number;\n nights: number;\n total_price: number;\n price_per_night: number;\n currency: string;\n}\n\nexport const BookingPricingResponseSchema = z.object({\n uuid: z.string().uuid(),\n property_id: z.number(),\n arrival: z.string(),\n departure: z.string(),\n amount_adults: z.number(),\n amount_children: z.number(),\n nights: z.number(),\n total_price: z.number(),\n price_per_night: z.number(),\n currency: z.string(),\n});\n\nexport const BookingResponseSchema = z.object({\n uuid: z.string().uuid(),\n status: z.enum(['pending_details', 'waiting_payment', 'fresh', 'confirmed', 'cancelled', 'completed']),\n property_id: z.number(),\n property: PropertySummarySchema.optional(),\n arrival: z.string(),\n departure: z.string(),\n amount_adults: z.number(),\n amount_children: z.number(),\n first_name: z.string().nullish(),\n last_name: z.string().nullish(),\n email: z.string().nullish(),\n phone: z.string().nullish(),\n address_1: z.string().nullish(),\n address_2: z.string().nullish(),\n postal_code: z.string().nullish(),\n city: z.string().nullish(),\n country: z.string().nullish(),\n time_arrival: z.string().nullish(),\n flight: z.string().nullish(),\n notes: z.string().nullish(),\n terms_accepted: z.boolean().nullish(),\n marketing_consent: z.boolean().nullish(),\n total_price: z.number(),\n price_breakdown: PriceBreakdownSchema.optional(),\n nights: z.number(),\n expires_at: z.string().nullish(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const BookingConfirmResponseSchema = z.object({\n message: z.string(),\n data: z.object({\n uuid: z.string().uuid(),\n status: z.enum(['pending_details', 'waiting_payment', 'fresh', 'confirmed', 'cancelled', 'completed']),\n property_id: z.number(),\n arrival: z.string(),\n departure: z.string(),\n first_name: z.string(),\n last_name: z.string(),\n email: z.string(),\n phone: z.string(),\n address_1: z.string(),\n address_2: z.string().optional(),\n postal_code: z.string().optional(),\n city: z.string(),\n country: z.string(),\n amount_adults: z.number(),\n amount_children: z.number(),\n time_arrival: z.string(),\n flight: z.string().optional(),\n notes: z.string().optional(),\n external_id: z.string().optional(),\n identifier: z.string().optional(),\n balance_due: z.number(),\n created_at: z.string(),\n updated_at: z.string(),\n }),\n stripe_url: z.string().optional(),\n});\n\n","// Main types index - exports all types from categorized modules\n\n// Common types\nexport * from './common';\n\n// Property types\nexport * from './properties';\nexport {\n PropertySchema,\n AvailabilitySchema,\n PropertySearchResultSchema,\n} from './properties';\n\n// Content types\nexport * from './content';\nexport {\n PageSchema,\n PostSchema,\n} from './content';\n\n// Settings types\nexport * from './settings';\nexport {\n MainSettingsSchema,\n ThemeSettingsSchema,\n PropertySettingsSchema,\n BookingSettingsSchema,\n} from './settings';\n\n// Booking types\nexport * from './bookings';\nexport {\n BookingResponseSchema,\n BookingDraftRequestSchema,\n BookingDraftResponseSchema,\n PersonalInfoRequestSchema,\n BookingDetailsRequestSchema,\n ReviewRequestSchema,\n BookingConfirmResponseSchema,\n BookingPricingResponseSchema,\n PropertySummarySchema,\n PriceBreakdownSchema,\n} from './bookings';\n\n// Configuration types\nimport { z } from 'zod';\n\nexport const MoreApartmentsConfigSchema = z.object({\n baseUrl: z.string().optional(),\n apiKey: z.string().optional(),\n instance: z.string().optional(),\n timeout: z.number().optional(),\n retry: z.object({\n attempts: z.number(),\n delay: z.number(),\n }).optional(),\n cache: z.object({\n enabled: z.boolean(),\n ttl: z.number(),\n }).optional(),\n});\n\nexport type MoreApartmentsConfig = z.infer<typeof MoreApartmentsConfigSchema>;","import { z } from 'zod';\nimport type {\n MoreApartmentsConfig,\n Property,\n PaginatedResponse,\n Page,\n Post,\n Category,\n CategorySegment,\n MainSettings,\n ThemeSettings,\n PropertySettings,\n BookingSettings,\n Availability,\n BookingResponse,\n PropertySearchParams,\n PropertySearchResult,\n BookingDraftRequest,\n BookingDraftResponse,\n PersonalInfoRequest,\n BookingDetailsRequest,\n ReviewRequest,\n BookingConfirmResponse,\n BookingPricingResponse,\n PaymentMethod,\n} from './types';\nimport {\n PropertySchema,\n PaginatedResponseSchema,\n PageSchema,\n PostSchema,\n CategorySchema,\n CategorySegmentSchema,\n MainSettingsSchema,\n ThemeSettingsSchema,\n PropertySettingsSchema,\n BookingSettingsSchema,\n AvailabilitySchema,\n BookingResponseSchema,\n ApiErrorSchema,\n PropertySearchParamsSchema,\n PropertySearchResultSchema,\n BookingDraftResponseSchema,\n BookingConfirmResponseSchema,\n BookingPricingResponseSchema,\n} from './types';\n\nexport class MoreApartmentsClient {\n private config: Required<MoreApartmentsConfig>;\n private cache: Map<string, { data: any; timestamp: number }> = new Map();\n\n /**\n * Clear all cached data\n */\n clearCache(): void {\n this.cache.clear();\n }\n\n /**\n * Get cache statistics\n */\n getCacheStats(): { entries: number; size: number } {\n return {\n entries: this.cache.size,\n size: Array.from(this.cache.values()).reduce((total, entry) => {\n return total + JSON.stringify(entry.data).length;\n }, 0),\n };\n }\n\n constructor(config: MoreApartmentsConfig) {\n this.config = {\n baseUrl: config.baseUrl?.replace(/\\/$/, '') || '',\n apiKey: config.apiKey || '',\n instance: config.instance || '',\n timeout: config.timeout || 30000,\n retry: {\n attempts: config.retry?.attempts || 3,\n delay: config.retry?.delay || 1000,\n },\n cache: {\n enabled: config.cache?.enabled ?? true,\n ttl: config.cache?.ttl || 300000, // 5 minutes default\n },\n };\n }\n\n private async fetchWithRetry<T>(\n url: string,\n options: RequestInit = {},\n schema?: any\n ): Promise<T> {\n const cacheKey = `${options.method || 'GET'}:${url}`;\n\n // Check cache for GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n const cached = this.cache.get(cacheKey);\n if (cached && this.config.cache?.ttl && Date.now() - cached.timestamp < this.config.cache.ttl) {\n return cached.data as T;\n }\n }\n\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n ...(this.config.apiKey && { 'Authorization': `Bearer ${this.config.apiKey}` }),\n ...options.headers,\n };\n\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt < (this.config.retry?.attempts ?? 3); attempt++) {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => {\n controller.abort();\n }, this.config.timeout);\n\n const response = await fetch(url, {\n ...options,\n headers,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n const error = await response.json().catch(() => ({ message: response.statusText }));\n throw new Error(error.message || `HTTP ${response.status}: ${response.statusText}`);\n }\n\n const data = await response.json();\n\n // Validate with schema if provided\n if (schema) {\n const result = schema.safeParse(data);\n if (!result.success) {\n throw new Error(`Invalid response format: ${result.error.message}`);\n }\n const validatedData = result.data as T;\n\n // Cache successful GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n this.cache.set(cacheKey, { data: validatedData, timestamp: Date.now() });\n }\n\n return validatedData;\n }\n\n // Cache successful GET requests\n if (this.config.cache?.enabled && (!options.method || options.method === 'GET')) {\n this.cache.set(cacheKey, { data, timestamp: Date.now() });\n }\n\n return data as T;\n } catch (error) {\n lastError = error as Error;\n\n if (attempt < (this.config.retry?.attempts ?? 3) - 1) {\n await new Promise(resolve => setTimeout(resolve, (this.config.retry?.delay ?? 1000) * (attempt + 1)));\n }\n }\n }\n\n throw lastError || new Error('Request failed');\n }\n\n // Property endpoints\n async getProperties(params?: {\n page?: number;\n per_page?: number;\n }): Promise<PaginatedResponse<Property>> {\n const queryParams = new URLSearchParams();\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.per_page) queryParams.append('per_page', params.per_page.toString());\n\n const url = `${this.config.baseUrl}/api/v1/properties${queryParams.toString() ? '?' + queryParams.toString() : ''}`;\n return this.fetchWithRetry(url, {}, PaginatedResponseSchema(PropertySchema));\n }\n\n async getProperty(propertyIdOrSlug: number | string): Promise<Property> {\n const url = `${this.config.baseUrl}/api/v1/properties/${propertyIdOrSlug}`;\n const response = await this.fetchWithRetry<{ data: Property }>(url, {}, z.object({ data: PropertySchema }));\n return response.data;\n }\n\n // Availability endpoints\n async getAvailability(\n propertySlug: string,\n startDate: string,\n endDate: string\n ): Promise<Availability> {\n const queryParams = new URLSearchParams({\n start_date: startDate,\n end_date: endDate,\n });\n const url = `${this.config.baseUrl}/api/v1/properties/${propertySlug}/availability?${queryParams}`;\n const response = await this.fetchWithRetry<{ data: Availability }>(url, {}, z.object({ data: AvailabilitySchema }));\n return response.data;\n }\n\n /**\n * Get property calendar with pricing information (legacy endpoint)\n * Returns daily rates and availability for the specified date range\n */\n async getPropertyCalendar(\n propertySlug: string,\n fromDate: string,\n toDate: string\n ): Promise<Array<{\n date: string;\n available: boolean;\n season: string;\n final_rate: number;\n stay_minimum: number;\n }>> {\n const queryParams = new URLSearchParams({\n from: fromDate,\n to: toDate,\n });\n const url = `${this.config.baseUrl}/api/properties/${propertySlug}/calendars?${queryParams}`;\n const response = await this.fetchWithRetry<{ data: Array<{\n date: string;\n available: boolean;\n season: string;\n final_rate: number;\n stay_minimum: number;\n }> }>(url);\n return response.data;\n }\n\n // Content endpoints\n async getPages(): Promise<Page[]> {\n const url = `${this.config.baseUrl}/api/v1/pages`;\n const response = await this.fetchWithRetry<{ data: Page[] }>(url, {}, z.object({ data: z.array(PageSchema) }));\n return response.data;\n }\n\n async getPage(slug: string): Promise<Page> {\n const url = `${this.config.baseUrl}/api/v1/pages/${slug}`;\n const response = await this.fetchWithRetry<{ data: Page }>(url, {}, z.object({ data: PageSchema }));\n return response.data;\n }\n\n async getPosts(params?: {\n page?: number;\n per_page?: number;\n tag?: string;\n }): Promise<Post[]> {\n const queryParams = new URLSearchParams();\n if (params?.page) queryParams.append('page', params.page.toString());\n if (params?.per_page) queryParams.append('per_page', params.per_page.toString());\n if (params?.tag) queryParams.append('tag', params.tag);\n\n const url = `${this.config.baseUrl}/api/v1/posts${queryParams.toString() ? '?' + queryParams.toString() : ''}`;\n const response = await this.fetchWithRetry<{ data: Post[] }>(url, {}, z.object({ data: z.array(PostSchema) }));\n return response.data;\n }\n\n async getPost(slug: string): Promise<Post> {\n const url = `${this.config.baseUrl}/api/v1/posts/${slug}`;\n const response = await this.fetchWithRetry<{ data: Post }>(url, {}, z.object({ data: PostSchema }));\n return response.data;\n }\n\n async getLocations(): Promise<any> {\n const url = `${this.config.baseUrl}/api/v1/locations`;\n const response = await this.fetchWithRetry<{ data: string[] }>(url, {}, z.object({ data: z.array(z.string()) }));\n return response.data;\n }\n\n async getCategories(): Promise<Category[]> {\n const url = `${this.config.baseUrl}/api/v1/categories`;\n const response = await this.fetchWithRetry<{ data: Category[] }>(url, {}, z.object({ data: z.array(CategorySchema) }));\n return response.data;\n }\n\n async getCategory(slug: string): Promise<Category> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}`;\n const response = await this.fetchWithRetry<{ data: Category }>(url, {}, z.object({ data: CategorySchema }));\n return response.data;\n }\n\n async getCategorySegments(slug: string): Promise<CategorySegment[]> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}/segments`;\n const response = await this.fetchWithRetry<{ data: CategorySegment[] }>(url, {}, z.object({ data: z.array(CategorySegmentSchema) }));\n return response.data;\n }\n\n async getCategorySegment(slug: string, segment: string): Promise<CategorySegment> {\n const url = `${this.config.baseUrl}/api/v1/categories/${slug}/segments/${segment}`;\n const response = await this.fetchWithRetry<{ data: CategorySegment }>(url, {}, z.object({ data: CategorySegmentSchema }));\n return response.data;\n }\n\n // Settings endpoints\n async getMainSettings(): Promise<MainSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/main`;\n const response = await this.fetchWithRetry<{ data: MainSettings }>(url, {}, z.object({ data: MainSettingsSchema }));\n return response.data;\n }\n\n async getThemeSettings(): Promise<ThemeSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/theme`;\n const response = await this.fetchWithRetry<{ data: ThemeSettings }>(url, {}, z.object({ data: ThemeSettingsSchema }));\n return response.data;\n }\n\n async getPropertySettings(): Promise<PropertySettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/properties`;\n const response = await this.fetchWithRetry<{ data: PropertySettings }>(url, {}, z.object({ data: PropertySettingsSchema }));\n return response.data;\n }\n\n async getBookingSettings(): Promise<BookingSettings> {\n const url = `${this.config.baseUrl}/api/v1/settings/booking`;\n const response = await this.fetchWithRetry<{ data: BookingSettings }>(url, {}, z.object({ data: BookingSettingsSchema }));\n return response.data;\n }\n\n // Booking endpoints - 3-step wizard flow\n\n /**\n * Create a booking draft with property and dates\n * @param data Draft booking data (property, dates, guests)\n * @returns BookingDraftResponse with UUID and status\n */\n async createBookingDraft(data: BookingDraftRequest): Promise<BookingDraftResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/draft`;\n const response = await this.fetchWithRetry<BookingDraftResponse>(\n url,\n {\n method: 'POST',\n body: JSON.stringify(data),\n },\n BookingDraftResponseSchema\n );\n return response;\n }\n\n /**\n * Update booking with personal information (Step 1)\n * @param uuid Booking UUID\n * @param data Personal info (name, email, phone, address)\n * @returns Updated BookingResponse\n */\n async updateBookingStep1(\n uuid: string,\n data: PersonalInfoRequest\n ): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${uuid}/step-1`;\n const response = await this.fetchWithRetry<BookingResponse>(\n url,\n {\n method: 'PATCH',\n body: JSON.stringify(data),\n },\n BookingResponseSchema\n );\n return response;\n }\n\n /**\n * Update booking with arrival details (Step 2)\n * @param uuid Booking UUID\n * @param data Arrival time, flight, notes\n * @returns Updated BookingResponse\n */\n async updateBookingStep2(\n uuid: string,\n data: BookingDetailsRequest\n ): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${uuid}/step-2`;\n const response = await this.fetchWithRetry<BookingResponse>(\n url,\n {\n method: 'PATCH',\n body: JSON.stringify(data),\n },\n BookingResponseSchema\n );\n return response;\n }\n\n /**\n * Update booking with review data (Step 3)\n * @param uuid Booking UUID\n * @param data Terms acceptance, marketing consent\n * @returns Updated BookingResponse with price breakdown\n */\n async updateBookingStep3(\n uuid: string,\n data: ReviewRequest\n ): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${uuid}/step-3`;\n const response = await this.fetchWithRetry<BookingResponse>(\n url,\n {\n method: 'PATCH',\n body: JSON.stringify(data),\n },\n BookingResponseSchema\n );\n return response;\n }\n\n /**\n * Confirm booking and get payment URL\n * @param uuid Booking UUID\n * @param paymentMethod Payment method (stripe, bank_transfer, cash)\n * @returns Confirmation response with payment URL\n */\n async confirmBooking(\n uuid: string,\n paymentMethod: PaymentMethod = 'stripe'\n ): Promise<BookingConfirmResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${uuid}/confirm`;\n const response = await this.fetchWithRetry<BookingConfirmResponse>(\n url,\n {\n method: 'POST',\n body: JSON.stringify({ payment_method: paymentMethod }),\n },\n BookingConfirmResponseSchema\n );\n return response;\n }\n\n /**\n * Get current booking state\n * @param uuid Booking UUID\n * @returns Full BookingResponse with all data\n */\n async getBookingState(uuid: string): Promise<BookingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${uuid}`;\n const response = await this.fetchWithRetry<BookingResponse>(\n url,\n { method: 'GET' },\n BookingResponseSchema\n );\n return response;\n }\n\n /**\n * Get pricing details for a booking\n * @param uuid Booking UUID\n * @returns Pricing breakdown with total, per-night rate, and currency\n */\n async getPricing(uuid: string): Promise<BookingPricingResponse> {\n const url = `${this.config.baseUrl}/api/v1/bookings/${uuid}/pricing`;\n const response = await this.fetchWithRetry<BookingPricingResponse>(\n url,\n { method: 'GET' },\n BookingPricingResponseSchema\n );\n return response;\n }\n\n /**\n * Search properties with advanced filtering\n */\n async searchProperties(params: PropertySearchParams): Promise<Property[]> {\n const searchParams = new URLSearchParams();\n\n // Date filters\n if (params.arrival) searchParams.set('arrival', params.arrival);\n if (params.departure) searchParams.set('departure', params.departure);\n\n // Guest capacity\n if (params.guests) searchParams.set('guests', params.guests.toString());\n\n // General search (deprecated)\n if (params.destination) searchParams.set('destination', params.destination);\n if (params.segment) searchParams.set('segment', params.segment);\n\n // Direct column filters (preferred for headless instances)\n if (params.city) searchParams.set('city', params.city);\n if (params.area) searchParams.set('area', params.area);\n if (params.street) searchParams.set('street', params.street);\n if (params.property_type) searchParams.set('property_type', params.property_type);\n if (params.bedrooms !== undefined && params.bedrooms !== null) searchParams.set('bedrooms', params.bedrooms.toString());\n if (params.bathrooms !== undefined && params.bathrooms !== null) searchParams.set('bathrooms', params.bathrooms.toString());\n if (params.max_persons !== undefined && params.max_persons !== null) searchParams.set('max_persons', params.max_persons.toString());\n if (params.elevator !== undefined) searchParams.set('elevator', params.elevator ? '1' : '0');\n if (params.parking !== undefined) searchParams.set('parking', params.parking ? '1' : '0');\n if (params.balcony !== undefined) searchParams.set('balcony', params.balcony ? '1' : '0');\n\n const url = `${this.config.baseUrl}/api/v1/properties/search?${searchParams.toString()}`;\n const response = await this.fetchWithRetry<PropertySearchResult>(url, {}, PropertySearchResultSchema);\n return response.data;\n }\n\n}\n","import { inspect } from 'util';\n\nexport type OutputFormat = 'json' | 'table' | 'yaml';\n\nexport function formatOutput(data: any, format: OutputFormat = 'json'): void {\n switch (format) {\n case 'json':\n console.log(JSON.stringify(data, null, 2));\n break;\n\n case 'yaml':\n console.log(toYAML(data));\n break;\n\n case 'table':\n if (Array.isArray(data)) {\n console.table(data);\n } else {\n console.table([data]);\n }\n break;\n\n default:\n console.log(inspect(data, { depth: null, colors: true }));\n }\n}\n\nfunction toYAML(obj: any, indent: number = 0): string {\n const spaces = ' '.repeat(indent);\n\n if (obj === null || obj === undefined) {\n return 'null';\n }\n\n if (typeof obj === 'string') {\n return obj.includes('\\n') ? `|\\n${obj.split('\\n').map(line => `${spaces} ${line}`).join('\\n')}` : obj;\n }\n\n if (typeof obj === 'number' || typeof obj === 'boolean') {\n return String(obj);\n }\n\n if (Array.isArray(obj)) {\n if (obj.length === 0) return '[]';\n return '\\n' + obj.map(item => `${spaces}- ${toYAML(item, indent + 1)}`).join('\\n');\n }\n\n if (typeof obj === 'object') {\n const entries = Object.entries(obj);\n if (entries.length === 0) return '{}';\n\n return '\\n' + entries.map(([key, value]) => {\n const formattedValue = toYAML(value, indent + 1);\n if (formattedValue.startsWith('\\n')) {\n return `${spaces}${key}:${formattedValue}`;\n }\n return `${spaces}${key}: ${formattedValue}`;\n }).join('\\n');\n }\n\n return String(obj);\n}\n\nexport function handleError(error: any): void {\n if (error.message) {\n console.error(`Error: ${error.message}`);\n } else {\n console.error('An unexpected error occurred:', error);\n }\n process.exit(1);\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function propertiesCommand(program: Command): void {\n const properties = program\n .command('properties')\n .alias('props')\n .description('Manage properties');\n\n properties\n .command('list')\n .description('List all properties')\n .option('-p, --page <number>', 'Page number', '1')\n .option('-l, --limit <number>', 'Items per page', '10')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getProperties({\n page: parseInt(options.page),\n per_page: parseInt(options.limit),\n });\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('show <id>')\n .description('Show property details by ID or slug')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const property = await client.getProperty(id);\n\n formatOutput(property, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('search')\n .description('Search properties with filters')\n .option('-d, --destination <destination>', 'Destination (general search)')\n .option('-c, --city <city>', 'City name')\n .option('-a, --area <area>', 'Area/neighborhood')\n .option('--arrival <date>', 'Arrival date (YYYY-MM-DD)')\n .option('--departure <date>', 'Departure date (YYYY-MM-DD)')\n .option('-g, --guests <number>', 'Number of guests')\n .option('-b, --bedrooms <number>', 'Number of bedrooms')\n .option('--bathrooms <number>', 'Number of bathrooms')\n .option('--max-persons <number>', 'Maximum persons')\n .option('--property-type <type>', 'Property type')\n .option('--elevator', 'Has elevator')\n .option('--parking', 'Has parking')\n .option('--balcony', 'Has balcony')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const searchParams: any = {};\n\n if (options.destination) searchParams.destination = options.destination;\n if (options.city) searchParams.city = options.city;\n if (options.area) searchParams.area = options.area;\n if (options.arrival) searchParams.arrival = options.arrival;\n if (options.departure) searchParams.departure = options.departure;\n if (options.guests) searchParams.guests = parseInt(options.guests);\n if (options.bedrooms) searchParams.bedrooms = parseInt(options.bedrooms);\n if (options.bathrooms) searchParams.bathrooms = parseInt(options.bathrooms);\n if (options.maxPersons) searchParams.maxPersons = parseInt(options.maxPersons);\n if (options.propertyType) searchParams.propertyType = options.propertyType;\n if (options.elevator) searchParams.elevator = true;\n if (options.parking) searchParams.parking = true;\n if (options.balcony) searchParams.balcony = true;\n\n const results = await client.searchProperties(searchParams);\n\n formatOutput(results, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n properties\n .command('availability <id>')\n .description('Get property availability')\n .requiredOption('-s, --start <date>', 'Start date (YYYY-MM-DD)')\n .requiredOption('-e, --end <date>', 'End date (YYYY-MM-DD)')\n .action(async (id, options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const availability = await client.getAvailability(id, options.start, options.end);\n\n formatOutput(availability, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function contentCommand(program: Command): void {\n const content = program\n .command('content')\n .description('Manage content (pages, posts, categories)');\n\n // Pages subcommands\n const pages = content\n .command('pages')\n .description('Manage pages');\n\n pages\n .command('list')\n .description('List all pages')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getPages();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n pages\n .command('show <slug>')\n .description('Show page details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const page = await client.getPage(slug);\n\n formatOutput(page, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Posts subcommands\n const posts = content\n .command('posts')\n .description('Manage posts');\n\n posts\n .command('list')\n .description('List all posts')\n .option('-p, --page <number>', 'Page number', '1')\n .option('-l, --limit <number>', 'Items per page', '10')\n .option('-t, --tag <tag>', 'Filter by tag')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const params: any = {\n page: parseInt(options.page),\n per_page: parseInt(options.limit),\n };\n\n if (options.tag) params.tag = options.tag;\n\n const result = await client.getPosts(params);\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n posts\n .command('show <slug>')\n .description('Show post details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const post = await client.getPost(slug);\n\n formatOutput(post, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Categories subcommands\n const categories = content\n .command('categories')\n .alias('cats')\n .description('Manage categories');\n\n categories\n .command('list')\n .description('List all categories')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getCategories();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('show <slug>')\n .description('Show category details by slug')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const category = await client.getCategory(slug);\n\n formatOutput(category, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('segments <slug>')\n .description('List segments for a category')\n .action(async (slug, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const segments = await client.getCategorySegments(slug);\n\n formatOutput(segments, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n categories\n .command('segment <category> <segment>')\n .description('Show specific segment details')\n .action(async (category, segment, options, command) => {\n try {\n const client = command.parent.parent.parent.client;\n const format = command.parent.parent.parent.format;\n\n const result = await client.getCategorySegment(category, segment);\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n // Locations subcommand\n content\n .command('locations')\n .description('List all locations')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const locations = await client.getLocations();\n\n formatOutput(locations, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import type { Command } from 'commander';\nimport { formatOutput, handleError } from '../utils/format';\n\nexport function settingsCommand(program: Command): void {\n const settings = program\n .command('settings')\n .description('Manage settings');\n\n settings\n .command('main')\n .description('Get main site settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getMainSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('theme')\n .description('Get theme settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getThemeSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('properties')\n .alias('props')\n .description('Get property settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getPropertySettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('booking')\n .description('Get booking settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const result = await client.getBookingSettings();\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n\n settings\n .command('all')\n .description('Get all settings')\n .action(async (options, command) => {\n try {\n const client = command.parent.parent.client;\n const format = command.parent.parent.format;\n\n const [main, theme, properties, booking] = await Promise.all([\n client.getMainSettings(),\n client.getThemeSettings(),\n client.getPropertySettings(),\n client.getBookingSettings(),\n ]);\n\n const result = {\n main,\n theme,\n properties,\n booking,\n };\n\n formatOutput(result, format);\n } catch (error) {\n handleError(error);\n }\n });\n}\n","import { Command } from 'commander';\nimport { config } from 'dotenv';\nimport { resolve } from 'path';\nimport { MoreApartmentsClient } from '../client';\nimport type { MoreApartmentsConfig } from '../types';\nimport { propertiesCommand } from './commands/properties';\nimport { contentCommand } from './commands/content';\nimport { settingsCommand } from './commands/settings';\n\n// Load .env from current working directory\nconfig({ path: resolve(process.cwd(), '.env') });\n\nconst program = new Command();\n\nprogram\n .name('more-apartments')\n .description('CLI to interact with More Apartments REST API')\n .version('1.0.1')\n .option('-u, --base-url <url>', 'API base URL', process.env.MORE_APARTMENTS_BASE_URL)\n .option('-k, --api-key <key>', 'API key', process.env.MORE_APARTMENTS_API_KEY)\n .option('-i, --instance <instance>', 'Instance name', process.env.MORE_APARTMENTS_INSTANCE)\n .option('-t, --timeout <ms>', 'Request timeout in ms', '30000')\n .option('-f, --format <format>', 'Output format (json, table, yaml)', 'json')\n .hook('preAction', (thisCommand) => {\n const opts = thisCommand.opts();\n\n // Validate required options\n if (!opts.baseUrl) {\n console.error('Error: --base-url is required (or set MORE_APARTMENTS_BASE_URL env var)');\n process.exit(1);\n }\n\n if (!opts.apiKey) {\n console.error('Error: --api-key is required (or set MORE_APARTMENTS_API_KEY env var)');\n process.exit(1);\n }\n\n if (!opts.instance) {\n console.error('Error: --instance is required (or set MORE_APARTMENTS_INSTANCE env var)');\n process.exit(1);\n }\n\n // Create client and attach to command\n const clientConfig: MoreApartmentsConfig = {\n baseUrl: opts.baseUrl,\n apiKey: opts.apiKey,\n instance: opts.instance,\n timeout: parseInt(opts.timeout),\n cache: { enabled: false, ttl: 0 },\n };\n\n thisCommand.client = new MoreApartmentsClient(clientConfig);\n thisCommand.format = opts.format;\n });\n\n// Register command groups\npropertiesCommand(program);\ncontentCommand(program);\nsettingsCommand(program);\n\nprogram.parse();\n"]}
|