@zmdb/cli 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +19 -0
- package/dist/__fixtures__/http-client/src/contract.d.ts +38 -0
- package/dist/__fixtures__/http-client/src/contract.d.ts.map +1 -0
- package/dist/__fixtures__/http-client/src/contract.js +121 -0
- package/dist/__fixtures__/http-client/src/contract.js.map +1 -0
- package/dist/__fixtures__/http-client/src/models.d.ts +11 -0
- package/dist/__fixtures__/http-client/src/models.d.ts.map +1 -0
- package/dist/__fixtures__/http-client/src/models.js +2 -0
- package/dist/__fixtures__/http-client/src/models.js.map +1 -0
- package/dist/__fixtures__/http-client/src/schema.d.ts +4 -0
- package/dist/__fixtures__/http-client/src/schema.d.ts.map +1 -0
- package/dist/__fixtures__/http-client/src/schema.js +2 -0
- package/dist/__fixtures__/http-client/src/schema.js.map +1 -0
- package/dist/__fixtures__/http-client/src/unrelated.d.ts +2 -0
- package/dist/__fixtures__/http-client/src/unrelated.d.ts.map +1 -0
- package/dist/__fixtures__/http-client/src/unrelated.js +2 -0
- package/dist/__fixtures__/http-client/src/unrelated.js.map +1 -0
- package/dist/__fixtures__/http-client/zmdb.config.d.ts +16 -0
- package/dist/__fixtures__/http-client/zmdb.config.d.ts.map +1 -0
- package/dist/__fixtures__/http-client/zmdb.config.js +12 -0
- package/dist/__fixtures__/http-client/zmdb.config.js.map +1 -0
- package/dist/__fixtures__/project/src/schema.d.ts +6 -0
- package/dist/__fixtures__/project/src/schema.d.ts.map +1 -0
- package/dist/__fixtures__/project/src/schema.js +2 -0
- package/dist/__fixtures__/project/src/schema.js.map +1 -0
- package/dist/__fixtures__/project/zmdb.config.d.ts +22 -0
- package/dist/__fixtures__/project/zmdb.config.d.ts.map +1 -0
- package/dist/__fixtures__/project/zmdb.config.js +55 -0
- package/dist/__fixtures__/project/zmdb.config.js.map +1 -0
- package/dist/application-loader.d.ts +4 -0
- package/dist/application-loader.d.ts.map +1 -0
- package/dist/application-loader.js +102 -0
- package/dist/application-loader.js.map +1 -0
- package/dist/args.d.ts +23 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +353 -0
- package/dist/args.js.map +1 -0
- package/dist/atomic.d.ts +13 -0
- package/dist/atomic.d.ts.map +1 -0
- package/dist/atomic.js +28 -0
- package/dist/atomic.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +4 -0
- package/dist/bin.js.map +1 -0
- package/dist/commands/check.d.ts +5 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +7 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/client.d.ts +38 -0
- package/dist/commands/client.d.ts.map +1 -0
- package/dist/commands/client.js +347 -0
- package/dist/commands/client.js.map +1 -0
- package/dist/commands/codegen.d.ts +9 -0
- package/dist/commands/codegen.d.ts.map +1 -0
- package/dist/commands/codegen.js +56 -0
- package/dist/commands/codegen.js.map +1 -0
- package/dist/commands/embed.d.ts +8 -0
- package/dist/commands/embed.d.ts.map +1 -0
- package/dist/commands/embed.js +17 -0
- package/dist/commands/embed.js.map +1 -0
- package/dist/commands/export.d.ts +5 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +6 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/generate.d.ts +5 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +6 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/migrate.d.ts +9 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +18 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/new.d.ts +4 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +35 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/pull.d.ts +5 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +14 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +6 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +11 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/studio.d.ts +31 -0
- package/dist/commands/studio.d.ts.map +1 -0
- package/dist/commands/studio.js +154 -0
- package/dist/commands/studio.js.map +1 -0
- package/dist/commands/upgrade.d.ts +5 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +11 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/database.d.ts +4 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +8 -0
- package/dist/database.js.map +1 -0
- package/dist/errors.d.ts +7 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +20 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +626 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle.d.ts +6 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +75 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/migration-project.d.ts +14 -0
- package/dist/migration-project.d.ts.map +1 -0
- package/dist/migration-project.js +74 -0
- package/dist/migration-project.js.map +1 -0
- package/dist/output.d.ts +27 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +60 -0
- package/dist/output.js.map +1 -0
- package/dist/repl.d.ts +48 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +265 -0
- package/dist/repl.js.map +1 -0
- package/dist/scaffold.d.ts +28 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +414 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/studio/index.d.ts +20 -0
- package/dist/studio/index.d.ts.map +1 -0
- package/dist/studio/index.js +607 -0
- package/dist/studio/index.js.map +1 -0
- package/dist/templates/command.d.ts +3 -0
- package/dist/templates/command.d.ts.map +1 -0
- package/dist/templates/command.js +65 -0
- package/dist/templates/command.js.map +1 -0
- package/dist/templates/controller.d.ts +3 -0
- package/dist/templates/controller.d.ts.map +1 -0
- package/dist/templates/controller.js +41 -0
- package/dist/templates/controller.js.map +1 -0
- package/dist/templates/index.d.ts +4 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +18 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/module.d.ts +3 -0
- package/dist/templates/module.d.ts.map +1 -0
- package/dist/templates/module.js +41 -0
- package/dist/templates/module.js.map +1 -0
- package/dist/templates/project.d.ts +3 -0
- package/dist/templates/project.d.ts.map +1 -0
- package/dist/templates/project.js +280 -0
- package/dist/templates/project.js.map +1 -0
- package/dist/templates/repository.d.ts +3 -0
- package/dist/templates/repository.d.ts.map +1 -0
- package/dist/templates/repository.js +66 -0
- package/dist/templates/repository.js.map +1 -0
- package/dist/templates/schema.d.ts +3 -0
- package/dist/templates/schema.d.ts.map +1 -0
- package/dist/templates/schema.js +36 -0
- package/dist/templates/schema.js.map +1 -0
- package/dist/templates/types.d.ts +25 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +17 -0
- package/dist/templates/types.js.map +1 -0
- package/package.json +72 -0
- package/src/__fixtures__/http-client/package.json +5 -0
- package/src/__fixtures__/http-client/src/contract.ts +85 -0
- package/src/__fixtures__/http-client/src/models.ts +12 -0
- package/src/__fixtures__/http-client/src/schema.ts +3 -0
- package/src/__fixtures__/http-client/src/unrelated.ts +1 -0
- package/src/__fixtures__/http-client/tsconfig.json +17 -0
- package/src/__fixtures__/http-client/zmdb.config.ts +12 -0
- package/src/__fixtures__/project/package.json +5 -0
- package/src/__fixtures__/project/src/schema.ts +6 -0
- package/src/__fixtures__/project/tsconfig.json +24 -0
- package/src/__fixtures__/project/zmdb.config.ts +57 -0
- package/src/application-loader.ts +108 -0
- package/src/args.ts +391 -0
- package/src/atomic.ts +43 -0
- package/src/bin.ts +5 -0
- package/src/commands/check.ts +11 -0
- package/src/commands/client.ts +415 -0
- package/src/commands/codegen.ts +73 -0
- package/src/commands/embed.ts +36 -0
- package/src/commands/export.ts +10 -0
- package/src/commands/generate.ts +14 -0
- package/src/commands/migrate.ts +38 -0
- package/src/commands/new.ts +48 -0
- package/src/commands/pull.ts +32 -0
- package/src/commands/push.ts +21 -0
- package/src/commands/studio.ts +200 -0
- package/src/commands/upgrade.ts +14 -0
- package/src/database.ts +9 -0
- package/src/errors.ts +19 -0
- package/src/index.ts +710 -0
- package/src/lifecycle.ts +73 -0
- package/src/migration-project.ts +91 -0
- package/src/output.ts +77 -0
- package/src/repl.ts +328 -0
- package/src/scaffold.ts +485 -0
- package/src/studio/index.ts +674 -0
- package/src/templates/command.ts +66 -0
- package/src/templates/controller.ts +42 -0
- package/src/templates/index.ts +29 -0
- package/src/templates/module.ts +42 -0
- package/src/templates/project.ts +281 -0
- package/src/templates/repository.ts +67 -0
- package/src/templates/schema.ts +37 -0
- package/src/templates/types.ts +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,sEAAsE;AACtE,0EAA0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAsB,MAAM,WAAW,CAAC;AActF,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AAExD,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAsB,EAAE,OAAO,GAAiB,EAAE;IACtF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,+EAA+E;IAC/E,mDAAmD;IACnD,MAAM,OAAO,GAA0D,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAC9G,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,OAAO,GAAoB,EAAE;IAE7B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAsB,EAAE,OAAO,GAAgB,EAAE;IACtF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACnD,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3F,CAAC;AAuBD,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,OAAO,GAAiC,EAAE;IAE1C,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,OAAO,GAA8B,EAAE;IAEvC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAoCD,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAC5D,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAE7C,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAuB,EAAE,WAAW,GAAmB,EAAE;IACpF,MAAM,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAEvD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7C,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAC/E,EAAE,OAAO,EAAE,eAAe,EAAE,EAC5B,QAAQ,eAAe,IAAI,CAC5B,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAI,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CACzD,mEAAmE,CACpE,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAClE,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC/C,EAAE,CAAC,MAAM,CAAC,SAAS,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,QAAQ,eAAe,IAAI,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,OAAO,CACnB,oGAAoG,EACpG,CAAC,CACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM;gBAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC7D,OAAO,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAChE,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAqB,EAAE,EAAsB;IAC3E,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,aAAa,CAAC,OAAO,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACjE,OAAO,aAAa,CAAC,OAAO,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,aAAa,CAAC,OAAO,CAAC,wEAAwE,EAAE,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,CACxB,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBACjC,KAAK;gBACL,GAAG,EAAE,UAAU,CAAC,EAAE;oBAChB,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;gBACzE,CAAC;aACF,CAAC,CACH,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAqB,EAAE,EAAsB;IAC3E,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,aAAa,CAAC,OAAO,CAAC,yEAAyE,EAAE,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACrC,MAAM,IAAI,GACR,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;YACnE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACnB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC;QACzD,OAAO,aAAa,CAAC,OAAO,CAAC,6DAA6D,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,kEAAkE,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,cAAc;SAC9B,CAAC,CAAC;QACH,OAAO,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YACvD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;YACvF,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACrG,OAAO,SAAS,CACd,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAC5C;gBACE,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;gBACxC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;aACzC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAAqB,EAAE,EAAsB;IAC7E,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpF,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAC,YAAY,EAAC,EAAE;YACtE,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE;oBACjD,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;oBACrC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC,CAAC;gBACH,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CACX,MAAM,EACN,GAAG,YAAY,CAAC,UAAU,WAAW,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CACtG,CAAC;YACN,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrF,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBACpG,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzF,MAAM,KAAK,GACT,MAAM,IAAI,MAAM;oBACd,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,WAAW,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB;oBAChG,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,sCAAsC,CAAC;gBACvE,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBACjF,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBACxF,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,YAAY,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,MAAM,CAAC,uBAAuB,CAAC,CACtC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrE,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CACX,MAAM,EACN,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBACzB,CAAC,CAAC,0CAA0C;oBAC5C,CAAC,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC/E,CAAC;YACN,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,MAAM,CAAC,uBAAuB,CAAC,CACtC,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9E,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CACX,MAAM,EACN,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAC1B,CAAC,CAAC,wBAAwB;oBAC1B,CAAC,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACjF,CAAC;YACN,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU;qBAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;qBACnF,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC/E,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU;oBAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC;gBAC5E,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBAChE,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/G,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjG,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,0EAA0E,EAAE,CAAC,CAAC,CAAC;gBAC7G,CAAC;gBACD,IACE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI;oBAC1B,CAAC,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EACjD,CAAC;oBACD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,MAAM,CAAC,oBAAoB,CAAC,CACnC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,OAAO,IAAI,CAAC,CAAC,CAAC;gBACvE,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CACX,MAAM,EACN,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAC7F,CAAC;YACN,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;gBAC5G,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnF,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC;gBACxC,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAC3F,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CACX,MAAM,EACN,MAAM,CAAC,OAAO;oBACZ,CAAC,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI;oBACrG,CAAC,CAAC,kCAAkC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAC5D,CAAC;YACN,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC9B,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACtC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gEAAgE,EAAE,CAAC,CAAC,CAAC;gBACnG,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,CACtB,MAAM,MAAM,CAAC,oBAAoB,CAAC,CACnC,CAAC,gBAAgB,CAAC,YAAY,EAAE;oBAC/B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAChB,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ;wBAAE,MAAM,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClG,CAAC;gBACD,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxG,CAAC;YACD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,OAAO,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,kBAAkB,CAAC,qDAAqD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,kBAAkB,CAAC,0BAA0B,KAAK,wBAAwB,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAsB,EAAE,gBAAwB;IACzE,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAClC,SAAS,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CACtG,CAAC;QACF,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAAqB,EAAE,GAAW;IACjE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAC9B,GAAG;QACH,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAChD,OAAO,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB,EAAE,OAAe;IAC3D,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO;QACP,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oBAC3F,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;oBACxC,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;iBACvC;aACF,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAkB,EAAE,UAAkC,EAAE,KAAK,GAAG,KAAK;IACnG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,GAAG,UAAU,uCAAuC,CAAC;IAC5F,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;IAC5F,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAqB,EAAE,EAAsB;IACrE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,OAAO,IAAI,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,oDAAoD,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAE9D,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE3D,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAqB,EAAE,GAAW;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,KAAK,EAAE,iFAAiF,mBAAmB,EAAE;SAC9G,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QACjF,OAAO,EAAE,KAAK,EAAE,2CAA2C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IACtF,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,mDAAmD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAC7F,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,MAAM,GAAgB;QAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC3D,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC;IACF,OAAO;QACL,UAAU,EAAE,UAAU,IAAI,mBAAmB;QAC7C,MAAM,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QAC9C,cAAc,EAAE,WAAW,KAAK,SAAS;QACzC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,MAAqB,EAAE,EAAsB;IAClE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,OAAO,CAAC,+EAA+E,EAAE,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,mEAAmE,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,OAAO,IAAI,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAEhE,IAAI,IAAiB,CAAC;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,WAAW,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;;;gBAC9B,MAAY,OAAO,kCAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE;oBAClD,UAAU,EAAE,MAAM,CAAC,MAAM;oBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,GAAG,EAAE,EAAE,CAAC,GAAG;oBACX,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;oBACxC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;oBACvF,QAAQ,EAAE,EAAE,CAAC,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;iBAClD,CAAC,OAAA,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;;;;;;;;;;;QAC9C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,MAAqB,EAAE,GAAW;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,KAAK,EAAE,iFAAiF,mBAAmB,EAAE;SAC9G,CAAC;IACJ,CAAC;IACD,OAAO;QACL,UAAU,EAAE,UAAU,IAAI,mBAAmB;QAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,WAA2B;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IACpD,OAAO;QACL,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;QACrC,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;QAClE,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;QACzC,MAAM;QACN,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG;QACnD,aAAa,EAAE,WAAW,CAAC,aAAa,IAAI,OAAO,EAAE;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAA6B;IAChD,OAAO,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACzF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACpE,MAAM,UAAU,GAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAClC,YAAY,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CACjF,CAAC;IACF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACxE,MAAM,OAAO,GAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1D,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,SAAwB,EAAE,UAAkB;IAC9D,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxF,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;YAC5F,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAI1B;IACC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IACpG,OAAO,WAAW,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ResolvedConfig } from '@zmdb/compiler/config';
|
|
2
|
+
/** Own only the driver requested during this invocation, including non-enumerable disposal methods. */
|
|
3
|
+
export declare function withConfiguredDriver<T>(config: ResolvedConfig, run: (config: ResolvedConfig) => Promise<T>): Promise<T>;
|
|
4
|
+
/** Translate process termination into the command's existing cancellable lifetime. */
|
|
5
|
+
export declare function withSignals<T>(run: (until: Promise<void>) => Promise<T>): Promise<T | undefined>;
|
|
6
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,uGAAuG;AACvG,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC,CAsCZ;AAED,sFAAsF;AACtF,wBAAsB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAyBtG"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/** Own only the driver requested during this invocation, including non-enumerable disposal methods. */
|
|
2
|
+
export async function withConfiguredDriver(config, run) {
|
|
3
|
+
const create = config.driver;
|
|
4
|
+
if (create === undefined)
|
|
5
|
+
return run(config);
|
|
6
|
+
let opened;
|
|
7
|
+
let pending;
|
|
8
|
+
let outcome;
|
|
9
|
+
try {
|
|
10
|
+
outcome = {
|
|
11
|
+
ok: true,
|
|
12
|
+
value: await run({
|
|
13
|
+
...config,
|
|
14
|
+
driver() {
|
|
15
|
+
pending ??= Promise.resolve()
|
|
16
|
+
.then(create)
|
|
17
|
+
.then(driver => {
|
|
18
|
+
opened = driver;
|
|
19
|
+
return driver;
|
|
20
|
+
});
|
|
21
|
+
return pending;
|
|
22
|
+
},
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
outcome = { ok: false, error };
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
if (opened !== undefined) {
|
|
31
|
+
const disposeAsync = Reflect.get(opened, Symbol.asyncDispose);
|
|
32
|
+
const dispose = Reflect.get(opened, Symbol.dispose);
|
|
33
|
+
if (typeof disposeAsync === 'function')
|
|
34
|
+
await disposeAsync.call(opened);
|
|
35
|
+
else if (typeof dispose === 'function')
|
|
36
|
+
dispose.call(opened);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (cleanupError) {
|
|
40
|
+
if (!outcome.ok)
|
|
41
|
+
throw new SuppressedError(cleanupError, outcome.error, 'command and driver cleanup failed');
|
|
42
|
+
throw cleanupError;
|
|
43
|
+
}
|
|
44
|
+
if (!outcome.ok)
|
|
45
|
+
throw outcome.error;
|
|
46
|
+
return outcome.value;
|
|
47
|
+
}
|
|
48
|
+
/** Translate process termination into the command's existing cancellable lifetime. */
|
|
49
|
+
export async function withSignals(run) {
|
|
50
|
+
const until = Promise.withResolvers();
|
|
51
|
+
let interrupted = false;
|
|
52
|
+
const stop = () => {
|
|
53
|
+
interrupted = true;
|
|
54
|
+
until.resolve();
|
|
55
|
+
};
|
|
56
|
+
process.once('SIGINT', stop);
|
|
57
|
+
process.once('SIGTERM', stop);
|
|
58
|
+
try {
|
|
59
|
+
return await run(until.promise);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
// A terminal signal also terminates the TypeScript child in the same process group.
|
|
63
|
+
// The watch has already run its cleanup before this closed-channel error arrives.
|
|
64
|
+
if (interrupted &&
|
|
65
|
+
error instanceof Error &&
|
|
66
|
+
error.message.startsWith('Unexpected EOF while reading from child process'))
|
|
67
|
+
return undefined;
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
process.off('SIGINT', stop);
|
|
72
|
+
process.off('SIGTERM', stop);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ResolvedConfig } from '@zmdb/compiler/config';
|
|
2
|
+
import type { MigrationDriver, MigrationProject, SnapshotableSchema } from '@zmdb/migrations';
|
|
3
|
+
import { type Introspector } from '@zmdb/sql';
|
|
4
|
+
interface MigrationProjectOptions {
|
|
5
|
+
readonly schemas?: readonly SnapshotableSchema[];
|
|
6
|
+
readonly driver?: MigrationDriver;
|
|
7
|
+
readonly introspector?: Introspector;
|
|
8
|
+
}
|
|
9
|
+
export declare function migrationProject(config: ResolvedConfig, options?: MigrationProjectOptions): MigrationProject;
|
|
10
|
+
export declare function reflectedMigrationProject(config: ResolvedConfig, driver?: MigrationDriver): MigrationProject;
|
|
11
|
+
export declare function configuredMigrationDriver(config: ResolvedConfig): Promise<MigrationDriver>;
|
|
12
|
+
export declare function rethrowProjectError(error: unknown): never;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=migration-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-project.d.ts","sourceRoot":"","sources":["../src/migration-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9F,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAuB3D,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,uBAA4B,GAAG,gBAAgB,CAahH;AAWD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAU5G;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAchG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAKzD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { schemasFromFiles } from '@zmdb/compiler/testing';
|
|
2
|
+
import { emitDeclarations } from '@zmdb/migrations/declarations';
|
|
3
|
+
import { dialectName } from '@zmdb/sql';
|
|
4
|
+
import { configuredIntrospector } from './database.js';
|
|
5
|
+
import { CliInvocationError } from './errors.js';
|
|
6
|
+
const FORMAT_OPTIONS = {
|
|
7
|
+
arrowParens: 'avoid',
|
|
8
|
+
bracketSpacing: true,
|
|
9
|
+
endOfLine: 'lf',
|
|
10
|
+
insertFinalNewline: true,
|
|
11
|
+
objectWrap: 'preserve',
|
|
12
|
+
printWidth: 120,
|
|
13
|
+
quoteProps: 'as-needed',
|
|
14
|
+
semi: true,
|
|
15
|
+
singleQuote: true,
|
|
16
|
+
sortImports: true,
|
|
17
|
+
sortPackageJson: true,
|
|
18
|
+
tabWidth: 2,
|
|
19
|
+
trailingComma: 'all',
|
|
20
|
+
useTabs: false,
|
|
21
|
+
};
|
|
22
|
+
export function migrationProject(config, options = {}) {
|
|
23
|
+
return {
|
|
24
|
+
configPath: config.configPath,
|
|
25
|
+
outDir: config.outDir,
|
|
26
|
+
dialect: config.dialect,
|
|
27
|
+
schemas: options.schemas ?? [],
|
|
28
|
+
emitDeclarations,
|
|
29
|
+
formatSource,
|
|
30
|
+
...(config.migrations === undefined ? {} : { migrations: config.migrations }),
|
|
31
|
+
...(config.introspect === undefined ? {} : { introspect: config.introspect }),
|
|
32
|
+
...(options.driver === undefined ? {} : { driver: options.driver }),
|
|
33
|
+
...(options.introspector === undefined ? {} : { introspector: options.introspector }),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async function formatSource(path, source) {
|
|
37
|
+
const { format } = await import('oxfmt');
|
|
38
|
+
const result = await format(path, source, FORMAT_OPTIONS);
|
|
39
|
+
if (result.errors.length > 0) {
|
|
40
|
+
throw new TypeError(`oxfmt could not format generated ${path}: ${JSON.stringify(result.errors)}`);
|
|
41
|
+
}
|
|
42
|
+
return result.code;
|
|
43
|
+
}
|
|
44
|
+
export function reflectedMigrationProject(config, driver) {
|
|
45
|
+
const schemas = schemasFromFiles(config.schemaFiles, {
|
|
46
|
+
project: config.project,
|
|
47
|
+
naming: config.resolvedNaming,
|
|
48
|
+
});
|
|
49
|
+
return migrationProject(config, {
|
|
50
|
+
schemas,
|
|
51
|
+
...(driver === undefined ? {} : { driver }),
|
|
52
|
+
...(driver === undefined ? {} : { introspector: configuredIntrospector(driver.dialect) }),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export async function configuredMigrationDriver(config) {
|
|
56
|
+
if (config.driver === undefined) {
|
|
57
|
+
throw new CliInvocationError(`config ${config.configPath} needs a driver for this command`);
|
|
58
|
+
}
|
|
59
|
+
const driver = await config.driver();
|
|
60
|
+
if (driver.dialect === undefined) {
|
|
61
|
+
throw new CliInvocationError(`config ${config.configPath} driver needs an explicit database dialect object`);
|
|
62
|
+
}
|
|
63
|
+
if (dialectName(driver.dialect) !== dialectName(config.dialect)) {
|
|
64
|
+
throw new CliInvocationError(`config ${config.configPath} declares ${dialectName(config.dialect)} but its driver declares ${dialectName(driver.dialect)}`);
|
|
65
|
+
}
|
|
66
|
+
return { ...driver, dialect: driver.dialect };
|
|
67
|
+
}
|
|
68
|
+
export function rethrowProjectError(error) {
|
|
69
|
+
if (error instanceof Error && error.name === 'MigrationProjectError') {
|
|
70
|
+
throw new CliInvocationError(error.message);
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=migration-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-project.js","sourceRoot":"","sources":["../src/migration-project.ts"],"names":[],"mappings":"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"}
|
package/dist/output.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CliResult<T> {
|
|
2
|
+
readonly ok: boolean;
|
|
3
|
+
readonly command: string;
|
|
4
|
+
readonly config: string;
|
|
5
|
+
readonly result?: T;
|
|
6
|
+
readonly errors?: readonly {
|
|
7
|
+
readonly message: string;
|
|
8
|
+
readonly path?: string;
|
|
9
|
+
}[];
|
|
10
|
+
}
|
|
11
|
+
export interface OutputStreams {
|
|
12
|
+
readonly stdout: (text: string) => void;
|
|
13
|
+
readonly stderr: (text: string) => void;
|
|
14
|
+
}
|
|
15
|
+
/** The only place a non-interactive command decides which stream receives text. */
|
|
16
|
+
export declare class CliOutput {
|
|
17
|
+
#private;
|
|
18
|
+
constructor(command: string, config: string, json: boolean, streams: OutputStreams);
|
|
19
|
+
withConfig(config: string): CliOutput;
|
|
20
|
+
help(text: string): number;
|
|
21
|
+
writeStdout(text: string): void;
|
|
22
|
+
writeStderr(text: string): void;
|
|
23
|
+
progress(text: string): void;
|
|
24
|
+
result<T>(value: T, human: string, exitCode?: number): number;
|
|
25
|
+
failure(message: string, exitCode: 1 | 2, path?: string): number;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,mFAAmF;AACnF,qBAAa,SAAS;;IAMpB,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAKjF;IAED,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzB;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9B;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9B;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG3B;IAED,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAavD;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAY/D;CACF"}
|
package/dist/output.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** The only place a non-interactive command decides which stream receives text. */
|
|
2
|
+
export class CliOutput {
|
|
3
|
+
#command;
|
|
4
|
+
#config;
|
|
5
|
+
#json;
|
|
6
|
+
#streams;
|
|
7
|
+
constructor(command, config, json, streams) {
|
|
8
|
+
this.#command = command;
|
|
9
|
+
this.#config = config;
|
|
10
|
+
this.#json = json;
|
|
11
|
+
this.#streams = streams;
|
|
12
|
+
}
|
|
13
|
+
withConfig(config) {
|
|
14
|
+
return new CliOutput(this.#command, config, this.#json, this.#streams);
|
|
15
|
+
}
|
|
16
|
+
help(text) {
|
|
17
|
+
return this.result({ help: text }, text);
|
|
18
|
+
}
|
|
19
|
+
writeStdout(text) {
|
|
20
|
+
this.#streams.stdout(text);
|
|
21
|
+
}
|
|
22
|
+
writeStderr(text) {
|
|
23
|
+
this.#streams.stderr(text);
|
|
24
|
+
}
|
|
25
|
+
progress(text) {
|
|
26
|
+
if (this.#json)
|
|
27
|
+
this.writeStderr(text);
|
|
28
|
+
else
|
|
29
|
+
this.writeStdout(text);
|
|
30
|
+
}
|
|
31
|
+
result(value, human, exitCode = 0) {
|
|
32
|
+
if (this.#json) {
|
|
33
|
+
const body = {
|
|
34
|
+
ok: exitCode === 0,
|
|
35
|
+
command: this.#command,
|
|
36
|
+
config: this.#config,
|
|
37
|
+
result: value,
|
|
38
|
+
};
|
|
39
|
+
this.writeStdout(`${JSON.stringify(body)}\n`);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.writeStdout(human);
|
|
43
|
+
}
|
|
44
|
+
return exitCode;
|
|
45
|
+
}
|
|
46
|
+
failure(message, exitCode, path) {
|
|
47
|
+
if (this.#json) {
|
|
48
|
+
const body = {
|
|
49
|
+
ok: false,
|
|
50
|
+
command: this.#command,
|
|
51
|
+
config: this.#config,
|
|
52
|
+
errors: [{ message, ...(path === undefined ? {} : { path }) }],
|
|
53
|
+
};
|
|
54
|
+
this.writeStdout(`${JSON.stringify(body)}\n`);
|
|
55
|
+
}
|
|
56
|
+
this.writeStderr(`zmdb ${this.#command}: ${message}\n`);
|
|
57
|
+
return exitCode;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAaA,mFAAmF;AACnF,MAAM,OAAO,SAAS;IACX,QAAQ,CAAS;IACjB,OAAO,CAAS;IAChB,KAAK,CAAU;IACf,QAAQ,CAAgB;IAEjC,YAAY,OAAe,EAAE,MAAc,EAAE,IAAa,EAAE,OAAsB;QAChF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;;YAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAI,KAAQ,EAAE,KAAa,EAAE,QAAQ,GAAG,CAAC;QAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAiB;gBACzB,EAAE,EAAE,QAAQ,KAAK,CAAC;gBAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,MAAM,EAAE,KAAK;aACd,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,QAAe,EAAE,IAAa;QACrD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAqB;gBAC7B,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;aAC/D,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
package/dist/repl.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type REPLServer } from 'node:repl';
|
|
2
|
+
import type { Token } from '@zmdb/app/di';
|
|
3
|
+
import { type ModuleClass } from '@zmdb/app/modules';
|
|
4
|
+
import { type WebApplication } from '@zmdb/web/app';
|
|
5
|
+
import { type GraphDescription } from '@zmdb/web/devtools';
|
|
6
|
+
import type { WebRequest, WebResponse } from '@zmdb/web/pipeline';
|
|
7
|
+
export interface ReplGet {
|
|
8
|
+
<T>(token: Token<T>): T;
|
|
9
|
+
(description: string): unknown;
|
|
10
|
+
}
|
|
11
|
+
export interface ReplScope {
|
|
12
|
+
readonly app: WebApplication;
|
|
13
|
+
readonly container: WebApplication['container'];
|
|
14
|
+
readonly get: ReplGet;
|
|
15
|
+
readonly tokens: readonly string[];
|
|
16
|
+
readonly describe: () => string;
|
|
17
|
+
readonly request: (request: WebRequest | string) => Promise<WebResponse>;
|
|
18
|
+
readonly load: (name: string) => Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export interface ReplSessionOptions {
|
|
21
|
+
readonly configPath: string;
|
|
22
|
+
readonly moduleSpec: string;
|
|
23
|
+
readonly cwd?: string;
|
|
24
|
+
readonly input?: NodeJS.ReadableStream;
|
|
25
|
+
readonly output?: NodeJS.WritableStream;
|
|
26
|
+
readonly stderr?: (text: string) => void;
|
|
27
|
+
readonly historyPath?: string | null;
|
|
28
|
+
readonly terminal?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface ReplSession extends AsyncDisposable {
|
|
31
|
+
readonly app: WebApplication;
|
|
32
|
+
readonly graph: GraphDescription;
|
|
33
|
+
readonly scope: ReplScope;
|
|
34
|
+
readonly server: REPLServer;
|
|
35
|
+
readonly closed: Promise<void>;
|
|
36
|
+
evaluate(source: string): Promise<unknown>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Boot the real application and start a local, stream-only Node REPL.
|
|
40
|
+
*
|
|
41
|
+
* No socket or adapter is created. The caller owns the returned async resource;
|
|
42
|
+
* disposing it closes the prompt and runs the application's normal shutdown
|
|
43
|
+
* lifecycle.
|
|
44
|
+
*/
|
|
45
|
+
export declare function createReplSession(rootModule: ModuleClass, options: ReplSessionOptions): Promise<ReplSession>;
|
|
46
|
+
/** Resolve the default history path without ever making it relative to the project. */
|
|
47
|
+
export declare function replHistoryPath(environment?: Readonly<Record<string, string | undefined>>, homeDirectory?: string): string;
|
|
48
|
+
//# sourceMappingURL=repl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,WAAW,OAAO;IACtB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAOD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAoHlH;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAC7B,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,EACvE,aAAa,GAAE,MAAkB,GAChC,MAAM,CAMR"}
|