neoorm 0.8.1 → 0.8.2
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/README.md +10 -5
- package/dist/bin/neoorm.d.ts +1 -1
- package/dist/bin/neoorm.d.ts.map +1 -1
- package/dist/bin/neoorm.js +131 -57
- package/dist/bin/neoorm.js.map +1 -1
- package/dist/codegen/diff-manifest.d.ts.map +1 -1
- package/dist/codegen/diff-manifest.js +106 -4
- package/dist/codegen/diff-manifest.js.map +1 -1
- package/dist/codegen/generate-summary.d.ts +1 -0
- package/dist/codegen/generate-summary.d.ts.map +1 -1
- package/dist/codegen/generate-summary.js +3 -0
- package/dist/codegen/generate-summary.js.map +1 -1
- package/dist/codegen/generate.d.ts +7 -1
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/generate.js +53 -20
- package/dist/codegen/generate.js.map +1 -1
- package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
- package/dist/codegen/schema-to-manifest.js +302 -22
- package/dist/codegen/schema-to-manifest.js.map +1 -1
- package/dist/codegen/validation/emit-elysia.d.ts +4 -0
- package/dist/codegen/validation/emit-elysia.d.ts.map +1 -0
- package/dist/codegen/validation/emit-elysia.js +304 -0
- package/dist/codegen/validation/emit-elysia.js.map +1 -0
- package/dist/codegen/validation/types.d.ts +1 -1
- package/dist/codegen/validation/types.js +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/datasource-provider.d.ts +5 -1
- package/dist/datasource-provider.d.ts.map +1 -1
- package/dist/datasource-provider.js +21 -2
- package/dist/datasource-provider.js.map +1 -1
- package/dist/dialect/column-kind-support.d.ts +9 -0
- package/dist/dialect/column-kind-support.d.ts.map +1 -0
- package/dist/dialect/column-kind-support.js +25 -0
- package/dist/dialect/column-kind-support.js.map +1 -0
- package/dist/dialect/fk.d.ts +30 -1
- package/dist/dialect/fk.d.ts.map +1 -1
- package/dist/dialect/fk.js +113 -0
- package/dist/dialect/fk.js.map +1 -1
- package/dist/dialect/index.d.ts +5 -1
- package/dist/dialect/index.d.ts.map +1 -1
- package/dist/dialect/index.js +4 -0
- package/dist/dialect/index.js.map +1 -1
- package/dist/dialect/mariadb.d.ts +4 -0
- package/dist/dialect/mariadb.d.ts.map +1 -0
- package/dist/dialect/mariadb.js +15 -0
- package/dist/dialect/mariadb.js.map +1 -0
- package/dist/dialect/mariadb.test.d.ts +2 -0
- package/dist/dialect/mariadb.test.d.ts.map +1 -0
- package/dist/dialect/mariadb.test.js +151 -0
- package/dist/dialect/mariadb.test.js.map +1 -0
- package/dist/dialect/mysql-family.d.ts +14 -0
- package/dist/dialect/mysql-family.d.ts.map +1 -0
- package/dist/dialect/mysql-family.js +453 -0
- package/dist/dialect/mysql-family.js.map +1 -0
- package/dist/dialect/mysql.d.ts +6 -0
- package/dist/dialect/mysql.d.ts.map +1 -0
- package/dist/dialect/mysql.js +16 -0
- package/dist/dialect/mysql.js.map +1 -0
- package/dist/dialect/mysql.test.d.ts +2 -0
- package/dist/dialect/mysql.test.d.ts.map +1 -0
- package/dist/dialect/mysql.test.js +211 -0
- package/dist/dialect/mysql.test.js.map +1 -0
- package/dist/dialect/placeholders.d.ts +7 -0
- package/dist/dialect/placeholders.d.ts.map +1 -0
- package/dist/dialect/placeholders.js +18 -0
- package/dist/dialect/placeholders.js.map +1 -0
- package/dist/dialect/postgres.d.ts.map +1 -1
- package/dist/dialect/postgres.js +55 -27
- package/dist/dialect/postgres.js.map +1 -1
- package/dist/dialect/resolve.d.ts +13 -0
- package/dist/dialect/resolve.d.ts.map +1 -0
- package/dist/dialect/resolve.js +66 -0
- package/dist/dialect/resolve.js.map +1 -0
- package/dist/dialect/shared.d.ts +8 -1
- package/dist/dialect/shared.d.ts.map +1 -1
- package/dist/dialect/shared.js +37 -0
- package/dist/dialect/shared.js.map +1 -1
- package/dist/dialect/sqlite.d.ts.map +1 -1
- package/dist/dialect/sqlite.js +50 -18
- package/dist/dialect/sqlite.js.map +1 -1
- package/dist/dialect/sqlite.test.js +43 -1
- package/dist/dialect/sqlite.test.js.map +1 -1
- package/dist/dialect/types.d.ts +46 -3
- package/dist/dialect/types.d.ts.map +1 -1
- package/dist/docs/pages.d.ts.map +1 -1
- package/dist/docs/pages.js +3 -0
- package/dist/docs/pages.js.map +1 -1
- package/dist/docs/render.js +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/init/scaffold.d.ts +2 -1
- package/dist/init/scaffold.d.ts.map +1 -1
- package/dist/init/scaffold.js.map +1 -1
- package/dist/init/templates.d.ts +3 -2
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +19 -10
- package/dist/init/templates.js.map +1 -1
- package/dist/introspect/group-fks.d.ts +24 -0
- package/dist/introspect/group-fks.d.ts.map +1 -0
- package/dist/introspect/group-fks.js +48 -0
- package/dist/introspect/group-fks.js.map +1 -0
- package/dist/introspect/mysql/to-manifest.d.ts +4 -0
- package/dist/introspect/mysql/to-manifest.d.ts.map +1 -0
- package/dist/introspect/mysql/to-manifest.js +317 -0
- package/dist/introspect/mysql/to-manifest.js.map +1 -0
- package/dist/introspect/pull.d.ts +1 -0
- package/dist/introspect/pull.d.ts.map +1 -1
- package/dist/introspect/pull.js +179 -6
- package/dist/introspect/pull.js.map +1 -1
- package/dist/introspect/queries.d.ts +10 -1
- package/dist/introspect/queries.d.ts.map +1 -1
- package/dist/introspect/queries.js +41 -11
- package/dist/introspect/queries.js.map +1 -1
- package/dist/introspect/sqlite/to-manifest.d.ts.map +1 -1
- package/dist/introspect/sqlite/to-manifest.js +99 -26
- package/dist/introspect/sqlite/to-manifest.js.map +1 -1
- package/dist/introspect/to-manifest.d.ts.map +1 -1
- package/dist/introspect/to-manifest.js +145 -26
- package/dist/introspect/to-manifest.js.map +1 -1
- package/dist/migrate/dev-lock.d.ts +15 -0
- package/dist/migrate/dev-lock.d.ts.map +1 -0
- package/dist/migrate/dev-lock.js +101 -0
- package/dist/migrate/dev-lock.js.map +1 -0
- package/dist/migrate/runner.d.ts.map +1 -1
- package/dist/migrate/runner.js +143 -51
- package/dist/migrate/runner.js.map +1 -1
- package/dist/plugins/builtin.d.ts +42 -0
- package/dist/plugins/builtin.d.ts.map +1 -1
- package/dist/plugins/builtin.js +276 -8
- package/dist/plugins/builtin.js.map +1 -1
- package/dist/plugins/json/operators.d.ts.map +1 -1
- package/dist/plugins/json/operators.js +69 -3
- package/dist/plugins/json/operators.js.map +1 -1
- package/dist/plugins/postgis/operators.d.ts.map +1 -1
- package/dist/plugins/postgis/operators.js +15 -3
- package/dist/plugins/postgis/operators.js.map +1 -1
- package/dist/runtime/client.d.ts +31 -4
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +129 -4
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/driver.d.ts +2 -0
- package/dist/runtime/driver.d.ts.map +1 -1
- package/dist/runtime/driver.js +12 -0
- package/dist/runtime/driver.js.map +1 -1
- package/dist/runtime/executor.d.ts +1 -0
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +7 -1
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/mariadb-driver.d.ts +25 -0
- package/dist/runtime/mariadb-driver.d.ts.map +1 -0
- package/dist/runtime/mariadb-driver.js +103 -0
- package/dist/runtime/mariadb-driver.js.map +1 -0
- package/dist/runtime/mysql-driver.d.ts +25 -0
- package/dist/runtime/mysql-driver.d.ts.map +1 -0
- package/dist/runtime/mysql-driver.js +101 -0
- package/dist/runtime/mysql-driver.js.map +1 -0
- package/dist/runtime/mysql-error.d.ts +15 -0
- package/dist/runtime/mysql-error.d.ts.map +1 -0
- package/dist/runtime/mysql-error.js +119 -0
- package/dist/runtime/mysql-error.js.map +1 -0
- package/dist/runtime/mysql-family-pool.d.ts +50 -0
- package/dist/runtime/mysql-family-pool.d.ts.map +1 -0
- package/dist/runtime/mysql-family-pool.js +52 -0
- package/dist/runtime/mysql-family-pool.js.map +1 -0
- package/dist/runtime/mysql-family-pool.test.d.ts +2 -0
- package/dist/runtime/mysql-family-pool.test.d.ts.map +1 -0
- package/dist/runtime/mysql-family-pool.test.js +169 -0
- package/dist/runtime/mysql-family-pool.test.js.map +1 -0
- package/dist/runtime/mysql-placeholders.d.ts +18 -0
- package/dist/runtime/mysql-placeholders.d.ts.map +1 -0
- package/dist/runtime/mysql-placeholders.js +133 -0
- package/dist/runtime/mysql-placeholders.js.map +1 -0
- package/dist/runtime/mysql-placeholders.test.d.ts +2 -0
- package/dist/runtime/mysql-placeholders.test.d.ts.map +1 -0
- package/dist/runtime/mysql-placeholders.test.js +33 -0
- package/dist/runtime/mysql-placeholders.test.js.map +1 -0
- package/dist/runtime/query/compile-aggregate.d.ts +1 -1
- package/dist/runtime/query/compile-aggregate.d.ts.map +1 -1
- package/dist/runtime/query/compile-aggregate.js +25 -22
- package/dist/runtime/query/compile-aggregate.js.map +1 -1
- package/dist/runtime/query/compile-where.d.ts +9 -9
- package/dist/runtime/query/compile-where.d.ts.map +1 -1
- package/dist/runtime/query/compile-where.js +87 -66
- package/dist/runtime/query/compile-where.js.map +1 -1
- package/dist/runtime/query/compile-write.d.ts +9 -9
- package/dist/runtime/query/compile-write.d.ts.map +1 -1
- package/dist/runtime/query/compile-write.js +77 -63
- package/dist/runtime/query/compile-write.js.map +1 -1
- package/dist/runtime/query/count.d.ts.map +1 -1
- package/dist/runtime/query/count.js +4 -1
- package/dist/runtime/query/count.js.map +1 -1
- package/dist/runtime/query/create.d.ts.map +1 -1
- package/dist/runtime/query/create.js +38 -12
- package/dist/runtime/query/create.js.map +1 -1
- package/dist/runtime/query/cursor.d.ts +1 -1
- package/dist/runtime/query/cursor.d.ts.map +1 -1
- package/dist/runtime/query/cursor.js +6 -7
- package/dist/runtime/query/cursor.js.map +1 -1
- package/dist/runtime/query/delete.d.ts.map +1 -1
- package/dist/runtime/query/delete.js +41 -15
- package/dist/runtime/query/delete.js.map +1 -1
- package/dist/runtime/query/execute.d.ts +1 -0
- package/dist/runtime/query/execute.d.ts.map +1 -1
- package/dist/runtime/query/execute.js +23 -8
- package/dist/runtime/query/execute.js.map +1 -1
- package/dist/runtime/query/find-or-create.d.ts +1 -1
- package/dist/runtime/query/find-or-create.d.ts.map +1 -1
- package/dist/runtime/query/find-or-create.js +16 -8
- package/dist/runtime/query/find-or-create.js.map +1 -1
- package/dist/runtime/query/find.d.ts +2 -0
- package/dist/runtime/query/find.d.ts.map +1 -1
- package/dist/runtime/query/find.js +108 -62
- package/dist/runtime/query/find.js.map +1 -1
- package/dist/runtime/query/mutation-returning.d.ts +10 -0
- package/dist/runtime/query/mutation-returning.d.ts.map +1 -0
- package/dist/runtime/query/mutation-returning.js +85 -0
- package/dist/runtime/query/mutation-returning.js.map +1 -0
- package/dist/runtime/query/paginate.d.ts.map +1 -1
- package/dist/runtime/query/paginate.js +3 -3
- package/dist/runtime/query/paginate.js.map +1 -1
- package/dist/runtime/query/relation-join.d.ts +5 -0
- package/dist/runtime/query/relation-join.d.ts.map +1 -0
- package/dist/runtime/query/relation-join.js +26 -0
- package/dist/runtime/query/relation-join.js.map +1 -0
- package/dist/runtime/query/relation-planner.d.ts +1 -1
- package/dist/runtime/query/relation-planner.d.ts.map +1 -1
- package/dist/runtime/query/relation-planner.js +69 -55
- package/dist/runtime/query/relation-planner.js.map +1 -1
- package/dist/runtime/query/relation-writes.d.ts +2 -2
- package/dist/runtime/query/relation-writes.d.ts.map +1 -1
- package/dist/runtime/query/relation-writes.js +257 -98
- package/dist/runtime/query/relation-writes.js.map +1 -1
- package/dist/runtime/query/table-index.d.ts.map +1 -1
- package/dist/runtime/query/table-index.js +16 -9
- package/dist/runtime/query/table-index.js.map +1 -1
- package/dist/runtime/query/unique.d.ts +3 -0
- package/dist/runtime/query/unique.d.ts.map +1 -1
- package/dist/runtime/query/unique.js +26 -6
- package/dist/runtime/query/unique.js.map +1 -1
- package/dist/runtime/query/unique.test.js +110 -7
- package/dist/runtime/query/unique.test.js.map +1 -1
- package/dist/runtime/query/update.d.ts.map +1 -1
- package/dist/runtime/query/update.js +89 -23
- package/dist/runtime/query/update.js.map +1 -1
- package/dist/runtime/query/updated-at.js +2 -2
- package/dist/runtime/query/updated-at.js.map +1 -1
- package/dist/runtime/query/upsert.d.ts.map +1 -1
- package/dist/runtime/query/upsert.js +29 -5
- package/dist/runtime/query/upsert.js.map +1 -1
- package/dist/runtime/transaction.d.ts +1 -0
- package/dist/runtime/transaction.d.ts.map +1 -1
- package/dist/runtime/transaction.js +8 -0
- package/dist/runtime/transaction.js.map +1 -1
- package/dist/runtime/types.d.ts +10 -2
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schema/column-constraints.d.ts +1 -1
- package/dist/schema/column-constraints.d.ts.map +1 -1
- package/dist/schema/column-constraints.js +6 -3
- package/dist/schema/column-constraints.js.map +1 -1
- package/dist/schema/column.d.ts +2 -2
- package/dist/schema/column.d.ts.map +1 -1
- package/dist/schema/column.js +1 -1
- package/dist/schema/column.js.map +1 -1
- package/dist/schema/index.d.ts +4 -4
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +2 -2
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/nested-relation-types.d.ts +10 -9
- package/dist/schema/nested-relation-types.d.ts.map +1 -1
- package/dist/schema/relation-types.d.ts +73 -12
- package/dist/schema/relation-types.d.ts.map +1 -1
- package/dist/schema/relation.d.ts +11 -1
- package/dist/schema/relation.d.ts.map +1 -1
- package/dist/schema/relation.js +6 -0
- package/dist/schema/relation.js.map +1 -1
- package/dist/schema/table.d.ts +74 -11
- package/dist/schema/table.d.ts.map +1 -1
- package/dist/schema/table.js +93 -7
- package/dist/schema/table.js.map +1 -1
- package/dist/schema/types.d.ts +1 -1
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/sql/builder.d.ts +13 -3
- package/dist/sql/builder.d.ts.map +1 -1
- package/dist/sql/builder.js +155 -5
- package/dist/sql/builder.js.map +1 -1
- package/dist/sql/index.d.ts +1 -0
- package/dist/sql/index.d.ts.map +1 -1
- package/dist/sql/index.js.map +1 -1
- package/dist/sql/qualify-tables.d.ts +15 -0
- package/dist/sql/qualify-tables.d.ts.map +1 -0
- package/dist/sql/qualify-tables.js +206 -0
- package/dist/sql/qualify-tables.js.map +1 -0
- package/dist/sql/template.d.ts +5 -0
- package/dist/sql/template.d.ts.map +1 -1
- package/dist/sql/template.js +23 -3
- package/dist/sql/template.js.map +1 -1
- package/docs/cli.md +4 -4
- package/docs/configuration.md +7 -6
- package/docs/elysia.md +131 -0
- package/docs/errors.md +1 -1
- package/docs/examples.md +4 -2
- package/docs/getting-started.md +6 -4
- package/docs/mariadb.md +149 -0
- package/docs/migrations.md +5 -3
- package/docs/mysql.md +134 -0
- package/docs/plugins.md +1 -1
- package/docs/queries.md +14 -11
- package/docs/relations.md +19 -4
- package/docs/schema.md +73 -10
- package/docs/sqlite.md +6 -2
- package/docs/typebox.md +4 -4
- package/docs/zod.md +2 -2
- package/package.json +18 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAEN,gBAAgB,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,mBAAmB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAEN,wBAAwB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AAErF,SAAS,kBAAkB,CAAC,QAAsC;IACjE,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GACpC,sEAAsE,CAAC;AAExE,MAAM,CAAC,MAAM,4BAA4B,GACxC,kFAAkF,CAAC;AAEpF,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,OAAe;IAC7C,IAAI,CAAC;QACJ,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,wBAAwB,CAAC;IACjC,CAAC;AACF,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAC,OAAe;IACjD,IAAI,CAAC;QACJ,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,4BAA4B,CAAC;IACrC,CAAC;AACF,CAAC;AAED,KAAK,UAAU,qBAAqB;IACnC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CACzD,IAAI,CAAC,UAAU,EAAE,+BAA+B,CAAC,CACjD,CAAC;QACF,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACrB,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,2EAA2E;IAC5E,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,WAAW,CACnB,KAAc;IAEd,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAA4C,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IAIxD,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAC3D,qBAAqB,CACrB,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,WAAW,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,WAAW,CAChB,uBAAuB,EACvB,gFAAgF,EAChF,EAAE,UAAU,EAAE,EACd;YACC,uEAAuE;YACvE,4CAA4C;SAC5C,CACD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAE9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC9C,OAAO,UAAU,CAAC,QAAQ,CAAC;SACzB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAChC,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAS3C;IACA,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,IAAI,WAAW,CAAC;IAEhE,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,IAAI,mBAAmB,CAAC;QAChE,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAS;YAEtD,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC/D,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CACZ,GAAG,QAAQ,IAAI,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,0BAA0B,YAAY,wEAAwE,CAC7J,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAChD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAa,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAc,EACd,QAAkB;IAElB,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,SAAS,CACd,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EACjC,OAAO,CACP,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,QAAkB,EAClB,iBAAyB;IAEzB,OAAO;iCACyB,iBAAiB;;0BAExB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;CAC1D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,gBAAwB,EACxB,iBAAyB,EACzB,OAA8C;IAE9C,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAC3B,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;QAC5B,iBAAiB;YAChB,yEAAyE,CAAC;IAC5E,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACpB,iBAAiB,GAAG,+BAA+B,CAAC;IACrD,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACxB,iBAAiB,GAAG,mCAAmC,CAAC;IACzD,CAAC;IACD,OAAO;sCAC8B,iBAAiB;0CACb,iBAAiB;;0BAEjC,gBAAgB;;;;;;;;;;;;;;;;EAgBxC,iBAAiB,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc;IACpD,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,UAAU,GAAG,KAAK,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,UAAkB;IAC3D,OAAO,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEhC,OAAO,EACN,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,qBAAqB,EACrB,wBAAwB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,SAAS,qBAAqB,CAAC,IAAY;IAC1C,MAAM,OAAO,GAAG,IAAI;SAClB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,MAAc,EACd,GAAa,EACb,OAKC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE;SAC1B,WAAW,EAAE;SACb,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,MAAM,aAAa,GAAG,OAAO,EAAE,IAAI;QAClC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,CAAC,CAAC,GAAG,SAAS,YAAY,CAAC;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,CACd,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,EACnC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAChB,OAAO,CACP,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAClC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,SAAS,CACd,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EACpB,OAAO,CACP,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,IAAI,aAAa,EAAE,CAAC;QAC/C,MAAM,SAAS,CACd,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,EAC1C,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EACvC,OAAO,CACP,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,mBAAmB,CACjC,MAAc,EACd,QAAgB;IAEhB,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,MAAc,EACd,QAAkB,EAClB,YAAsB,EACtB,UAAkB,EAClB,IAAqB,EACrB,OAAiB,EACjB,OAAwE;IAExE,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,SAAS,CACd,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAC3B,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,EACxC,OAAO,CACP,CAAC;IACF,MAAM,SAAS,CACd,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAC3B,cAAc,CAAC,QAAQ,CAAC,EACxB,OAAO,CACP,CAAC;IACF,MAAM,SAAS,CACd,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EACzB,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,EACtC,OAAO,CACP,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,WAAW,GAAG,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACP,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,SAAS,CACd,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1B,aAAa,CAAC,EAAE,CAAC,EACjB,OAAO,CACP,CAAC;QACH,CAAC;aAAM,CAAC;YACP,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;SAAM,CAAC;QACP,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,SAAS,CACd,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EACzB,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,EAAE;QAClE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC,EACF,OAAO,CACP,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC;IACvD,IAAI,cAAc,EAAE,CAAC;QACpB,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;QAChE,IAAI;QACJ,IAAI,EAAE,QAAQ;QACd,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/B,CAAC,CAAC;IAEH,OAAO,EAAE,aAAa,EAAE,CAAC;AAC1B,CAAC;AAwBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,UAAkB,EAClB,OAAO,GAAyB,EAAE;IAElC,IAAI,CAAC;QACJ,OAAO,MAAM,4BAA4B,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC;QACX,CAAC;QACD,MAAM,kBAAkB,CACvB,UAAU,EACV,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,GAAG,CACH,CAAC;IACH,CAAC;AACF,CAAC;AAED,KAAK,UAAU,4BAA4B,CAC1C,UAAkB,EAClB,OAA6B;IAE7B,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAC1D,yBAAyB,CACzB,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE;QACxD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,+BAA+B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACzD,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,WAAW,GAAG;YACnB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;SAC9D,CAAC;QACF,MAAM,kBAAkB,CACvB,UAAU,EACV,8BAA8B,MAAM,EAAE,EACtC,SAAS,EACT,WAAW,CACX,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,UAAkB,EAClB,MAAc,EACd,OAAO,GAAoB,EAAE;IAE7B,IAAI,CAAC;QACJ,OAAO,MAAM,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;YACtC,MAAM,GAAG,CAAC;QACX,CAAC;QACD,MAAM,kBAAkB,CACvB,UAAU,EACV,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,GAAG,CACH,CAAC;IACH,CAAC;AACF,CAAC;AAED,KAAK,UAAU,uBAAuB,CACrC,UAAkB,EAClB,MAAc,EACd,OAAO,GAAoB,EAAE;IAE7B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,uBAAuB,CAC3D,UAAU,EACV,OAAO,CACP,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,aAAa,GAClB,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAC3C,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,OAAO,CAAC,cAAc,IAAI,KAAK,EAC/B,OAAO,CACP,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,MAAM,gBAAgB,GACrB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEjD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,mBAAmB,CAClD,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,OAAO,EACP;QACC,cAAc,EAAE,CAAC,gBAAgB;QACjC,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CACD,CAAC;IAEF,MAAM,OAAO,GAAG,wBAAwB,CAAC;QACxC,IAAI;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,YAAY;QACjB,OAAO;QACP,aAAa;QACb,aAAa;KACb,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,WAAW,CAAC,IAAI,CACf,6GAA6G,CAC7G,CAAC;IACH,CAAC;IAED,OAAO;QACN,QAAQ;QACR,aAAa;QACb,aAAa;QACb,QAAQ,EAAE,WAAW;QACrB,kBAAkB,EAAE,gBAAgB;QACpC,OAAO;KACP,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-to-manifest.d.ts","sourceRoot":"","sources":["../../src/codegen/schema-to-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"schema-to-manifest.d.ts","sourceRoot":"","sources":["../../src/codegen/schema-to-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EAIrB,MAAM,2BAA2B,CAAC;AASnC,OAAO,KAAK,EACX,QAAQ,EAOR,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAexD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAO5D,OAAO,EASN,KAAK,QAAQ,EAEb,MAAM,oBAAoB,CAAC;AAI5B,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,uBAAuB,GAAG;IACrC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AA8yBF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,QAAQ,GAAE,SAAS,YAAY,EAAwB,EACvD,OAAO,GAAE,uBAA4B,GACnC,QAAQ,CA0aV;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,EAAE,CA6E5E"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { isSqliteProvider, } from "../datasource-provider.js";
|
|
1
|
+
import { isMariadbProvider, isMysqlFamilyProvider, isSqliteProvider, } from "../datasource-provider.js";
|
|
2
|
+
import { MYSQL_UNSUPPORTED_COLUMN_KINDS, mysqlUnsupportedColumnKindMessage, SQLITE_UNSUPPORTED_COLUMN_KINDS, sqliteUnsupportedColumnKindMessage, } from "../dialect/column-kind-support.js";
|
|
2
3
|
import { parseFkTarget } from "../dialect/fk.js";
|
|
3
4
|
import { resolveIndexSqlName } from "../dialect/postgres.js";
|
|
4
5
|
import { collectExtensionsForKinds, getColumnType, getPluginRegistry, } from "../plugins/registry.js";
|
|
5
6
|
import { schemaError } from "../runtime/error-builders.js";
|
|
6
7
|
import { formatCandidateList, listColumnTsNames, listTableAccessors, suggestSchemaColumn, suggestSchemaTableAccessor, } from "../runtime/error-hints.js";
|
|
7
8
|
import { resolveFkTargetSqlColumn } from "../runtime/query/primary-key.js";
|
|
8
|
-
import { compileColumnCheckConstraints } from "../schema/column-constraints.js";
|
|
9
|
+
import { compileColumnCheckConstraints, quoteSqlColumn, } from "../schema/column-constraints.js";
|
|
9
10
|
import { fk, resolveFkAccessorTarget, } from "../schema/relation.js";
|
|
10
|
-
import { findPrimaryKeyColumn, } from "../schema/table.js";
|
|
11
|
+
import { findPrimaryKeyColumn, isIndexExpr, } from "../schema/table.js";
|
|
11
12
|
import { resolveSqlColumnName } from "../utils/case.js";
|
|
12
13
|
import { singularize } from "../utils/inflect.js";
|
|
13
|
-
|
|
14
|
+
const POSTGIS_COLUMN_KINDS = new Set(["geometry", "geography", "point"]);
|
|
15
|
+
function buildEnumCheckExpression(sqlName, values, provider) {
|
|
14
16
|
const quoted = values
|
|
15
17
|
.map((value) => `'${value.replace(/'/g, "''")}'`)
|
|
16
18
|
.join(", ");
|
|
17
|
-
return
|
|
19
|
+
return `${quoteSqlColumn(sqlName, provider)} IN (${quoted})`;
|
|
18
20
|
}
|
|
19
21
|
function resolveEnumTypeName(tableSqlName, columnSqlName, explicitName) {
|
|
20
22
|
return explicitName ?? `${tableSqlName}_${columnSqlName}`;
|
|
@@ -41,11 +43,11 @@ function _pluralize(word) {
|
|
|
41
43
|
function autoJunctionName(leftSql, rightSql) {
|
|
42
44
|
return [leftSql, rightSql].sort().join("_");
|
|
43
45
|
}
|
|
44
|
-
function finalizeEnumColumns(manifestTables, enumMode) {
|
|
46
|
+
function finalizeEnumColumns(manifestTables, enumMode, provider) {
|
|
45
47
|
const enumTypes = {};
|
|
46
48
|
for (const table of Object.values(manifestTables)) {
|
|
47
49
|
for (const col of table.columns) {
|
|
48
|
-
if (col.kind !== "enum") {
|
|
50
|
+
if (col.kind !== "enum" && col.kind !== "enumArray") {
|
|
49
51
|
continue;
|
|
50
52
|
}
|
|
51
53
|
const values = col.typeOptions?.values;
|
|
@@ -53,7 +55,10 @@ function finalizeEnumColumns(manifestTables, enumMode) {
|
|
|
53
55
|
continue;
|
|
54
56
|
}
|
|
55
57
|
if (enumMode === "check") {
|
|
56
|
-
|
|
58
|
+
if (col.kind === "enumArray") {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const enumCheck = buildEnumCheckExpression(col.sqlName, values, provider);
|
|
57
62
|
col.checkExpression = col.checkExpression
|
|
58
63
|
? `(${col.checkExpression}) AND (${enumCheck})`
|
|
59
64
|
: enumCheck;
|
|
@@ -118,12 +123,14 @@ function compileIndexWhere(where, columns, columnNaming, provider) {
|
|
|
118
123
|
for (const [tsName, value] of Object.entries(where)) {
|
|
119
124
|
const col = requireColumnDef(columns, tsName);
|
|
120
125
|
const sqlName = resolveSqlName(tsName, col, columnNaming);
|
|
121
|
-
const quoted =
|
|
126
|
+
const quoted = isMysqlFamilyProvider(provider)
|
|
127
|
+
? `\`${sqlName.replace(/`/g, "``")}\``
|
|
128
|
+
: `"${sqlName.replace(/"/g, '""')}"`;
|
|
122
129
|
if (value === null) {
|
|
123
130
|
parts.push(`${quoted} IS NULL`);
|
|
124
131
|
}
|
|
125
132
|
else if (typeof value === "boolean") {
|
|
126
|
-
parts.push(isSqliteProvider(provider)
|
|
133
|
+
parts.push(isSqliteProvider(provider) || isMysqlFamilyProvider(provider)
|
|
127
134
|
? `${quoted} = ${value ? 1 : 0}`
|
|
128
135
|
: `${quoted} = ${value}`);
|
|
129
136
|
}
|
|
@@ -163,6 +170,15 @@ function columnToManifest(tsName, col, columnNaming, tables, defaultColumnNaming
|
|
|
163
170
|
if (meta.onDelete !== undefined) {
|
|
164
171
|
result.onDelete = meta.onDelete;
|
|
165
172
|
}
|
|
173
|
+
if (meta.onUpdate !== undefined) {
|
|
174
|
+
result.onUpdate = meta.onUpdate;
|
|
175
|
+
}
|
|
176
|
+
if (meta.deferrable !== undefined) {
|
|
177
|
+
if (isMysqlFamilyProvider(provider)) {
|
|
178
|
+
throw schemaError("invalid_column", `${isMariadbProvider(provider) ? "MariaDB" : "MySQL"} does not support deferrable foreign keys`);
|
|
179
|
+
}
|
|
180
|
+
result.deferrable = meta.deferrable;
|
|
181
|
+
}
|
|
166
182
|
if (meta.hidden === true) {
|
|
167
183
|
result.hidden = true;
|
|
168
184
|
}
|
|
@@ -178,6 +194,18 @@ function columnToManifest(tsName, col, columnNaming, tables, defaultColumnNaming
|
|
|
178
194
|
if ("updatedAt" in meta && meta.updatedAt === true) {
|
|
179
195
|
validateUpdatedAtColumn(tsName, meta.kind);
|
|
180
196
|
}
|
|
197
|
+
if (isMysqlFamilyProvider(provider) &&
|
|
198
|
+
POSTGIS_COLUMN_KINDS.has(meta.kind)) {
|
|
199
|
+
throw schemaError("invalid_column", `PostGIS column kind "${meta.kind}" is not supported on ${isMariadbProvider(provider) ? "MariaDB" : "MySQL"}`);
|
|
200
|
+
}
|
|
201
|
+
if (isMysqlFamilyProvider(provider) &&
|
|
202
|
+
MYSQL_UNSUPPORTED_COLUMN_KINDS.has(meta.kind)) {
|
|
203
|
+
throw schemaError("invalid_column", mysqlUnsupportedColumnKindMessage(meta.kind, isMariadbProvider(provider) ? "MariaDB" : "MySQL"));
|
|
204
|
+
}
|
|
205
|
+
if (isSqliteProvider(provider) &&
|
|
206
|
+
SQLITE_UNSUPPORTED_COLUMN_KINDS.has(meta.kind)) {
|
|
207
|
+
throw schemaError("invalid_column", sqliteUnsupportedColumnKindMessage(meta.kind));
|
|
208
|
+
}
|
|
181
209
|
const result = {
|
|
182
210
|
tsName,
|
|
183
211
|
sqlName: resolveSqlName(tsName, col, columnNaming),
|
|
@@ -244,23 +272,91 @@ function copyStructuredConstraints(result, meta) {
|
|
|
244
272
|
result.validation = meta.validation;
|
|
245
273
|
}
|
|
246
274
|
}
|
|
275
|
+
function extraIndexUsing(extra) {
|
|
276
|
+
if (extra.kind !== "index")
|
|
277
|
+
return undefined;
|
|
278
|
+
if ("using" in extra && typeof extra.using === "string") {
|
|
279
|
+
return extra.using;
|
|
280
|
+
}
|
|
281
|
+
if ("_using" in extra && typeof extra._using === "string") {
|
|
282
|
+
return extra._using;
|
|
283
|
+
}
|
|
284
|
+
return undefined;
|
|
285
|
+
}
|
|
286
|
+
function extraIndexOpclass(extra) {
|
|
287
|
+
if (extra.kind !== "index")
|
|
288
|
+
return undefined;
|
|
289
|
+
if ("opclass" in extra && typeof extra.opclass === "string") {
|
|
290
|
+
return extra.opclass;
|
|
291
|
+
}
|
|
292
|
+
if ("_opclass" in extra && typeof extra._opclass === "string") {
|
|
293
|
+
return extra._opclass;
|
|
294
|
+
}
|
|
295
|
+
return undefined;
|
|
296
|
+
}
|
|
297
|
+
function extraIndexKeys(extra) {
|
|
298
|
+
if (extra.kind !== "index")
|
|
299
|
+
return [];
|
|
300
|
+
if ("keys" in extra && extra.keys)
|
|
301
|
+
return extra.keys;
|
|
302
|
+
return extra.columns;
|
|
303
|
+
}
|
|
304
|
+
function sanitizeIndexNamePart(sql) {
|
|
305
|
+
const token = sql
|
|
306
|
+
.replace(/[^A-Za-z0-9]+/g, "_")
|
|
307
|
+
.replace(/^_|_$/g, "")
|
|
308
|
+
.slice(0, 40);
|
|
309
|
+
return token.length > 0 ? token : "expr";
|
|
310
|
+
}
|
|
311
|
+
const NON_UNIQUE_INDEX_METHODS = new Set(["gin", "gist", "brin"]);
|
|
247
312
|
function extrasToManifest(extras, columns, tableSqlName, columnNaming, provider) {
|
|
248
313
|
const indexes = [];
|
|
249
314
|
let primaryKey = [];
|
|
315
|
+
const compositeFks = [];
|
|
250
316
|
for (const extra of extras) {
|
|
251
317
|
if (extra.kind === "index") {
|
|
318
|
+
const using = extraIndexUsing(extra);
|
|
319
|
+
const opclass = extraIndexOpclass(extra);
|
|
320
|
+
if (extra.unique && using && NON_UNIQUE_INDEX_METHODS.has(using)) {
|
|
321
|
+
throw schemaError("invalid_column", `UNIQUE indexes cannot use ${using}`);
|
|
322
|
+
}
|
|
323
|
+
if (using && using !== "btree") {
|
|
324
|
+
if (isSqliteProvider(provider)) {
|
|
325
|
+
throw schemaError("invalid_column", `SQLite does not support ${using} indexes`);
|
|
326
|
+
}
|
|
327
|
+
if (isMysqlFamilyProvider(provider) && using !== "hash") {
|
|
328
|
+
throw schemaError("invalid_column", `${isMariadbProvider(provider) ? "MariaDB" : "MySQL"} does not support ${using} indexes`);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
252
331
|
const wherePredicate = "where" in extra &&
|
|
253
332
|
extra.where !== undefined &&
|
|
254
333
|
typeof extra.where !== "function"
|
|
255
334
|
? extra.where
|
|
256
335
|
: undefined;
|
|
257
|
-
const
|
|
336
|
+
const keys = extraIndexKeys(extra).map((key) => {
|
|
337
|
+
if (isIndexExpr(key)) {
|
|
338
|
+
return { expr: key.sql };
|
|
339
|
+
}
|
|
340
|
+
return {
|
|
341
|
+
sqlName: resolveSqlName(key, requireColumnDef(columns, key), columnNaming),
|
|
342
|
+
};
|
|
343
|
+
});
|
|
344
|
+
const sqlColumns = keys
|
|
345
|
+
.map((key) => key.sqlName)
|
|
346
|
+
.filter((name) => name !== undefined);
|
|
347
|
+
const nameParts = keys.map((key) => key.sqlName ?? sanitizeIndexNamePart(key.expr ?? "expr"));
|
|
258
348
|
const index = {
|
|
259
|
-
name:
|
|
349
|
+
name: nameParts.join("_") || "expr",
|
|
260
350
|
columns: sqlColumns,
|
|
261
351
|
unique: extra.unique,
|
|
352
|
+
keys,
|
|
353
|
+
...(using && using !== "btree" ? { using } : {}),
|
|
354
|
+
...(opclass ? { opclass } : {}),
|
|
262
355
|
};
|
|
263
356
|
if (wherePredicate) {
|
|
357
|
+
if (isMysqlFamilyProvider(provider)) {
|
|
358
|
+
throw schemaError("invalid_column", `${isMariadbProvider(provider) ? "MariaDB" : "MySQL"} does not support partial indexes (index({ where }))`);
|
|
359
|
+
}
|
|
264
360
|
index.whereSql = compileIndexWhere(wherePredicate, columns, columnNaming, provider);
|
|
265
361
|
}
|
|
266
362
|
index.sqlName = resolveIndexSqlName(tableSqlName, index);
|
|
@@ -269,8 +365,89 @@ function extrasToManifest(extras, columns, tableSqlName, columnNaming, provider)
|
|
|
269
365
|
else if (extra.kind === "primaryKey") {
|
|
270
366
|
primaryKey = extra.columns.map((tsName) => resolveSqlName(tsName, requireColumnDef(columns, tsName), columnNaming));
|
|
271
367
|
}
|
|
368
|
+
else if (extra.kind === "foreignKey") {
|
|
369
|
+
compositeFks.push(extra);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return { indexes, primaryKey, compositeFks };
|
|
373
|
+
}
|
|
374
|
+
function rejectMysqlDeferrable(provider, deferrable) {
|
|
375
|
+
if (!deferrable)
|
|
376
|
+
return;
|
|
377
|
+
if (isMysqlFamilyProvider(provider)) {
|
|
378
|
+
throw schemaError("invalid_column", `${isMariadbProvider(provider) ? "MariaDB" : "MySQL"} does not support deferrable foreign keys`);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
function resolveCompositeForeignKeys(args) {
|
|
382
|
+
const result = [];
|
|
383
|
+
for (const extra of args.extras) {
|
|
384
|
+
if (!extra._as) {
|
|
385
|
+
throw schemaError("invalid_column", `foreignKey() on "${args.accessor}" requires .as("relationName")`);
|
|
386
|
+
}
|
|
387
|
+
if (!extra._inverse) {
|
|
388
|
+
throw schemaError("invalid_column", `foreignKey() on "${args.accessor}" requires .inverse("relationName")`);
|
|
389
|
+
}
|
|
390
|
+
if (!extra.targetTable) {
|
|
391
|
+
throw schemaError("invalid_column", `foreignKey() on "${args.accessor}" requires .references("table", ...)`);
|
|
392
|
+
}
|
|
393
|
+
if (extra.columns.length < 2) {
|
|
394
|
+
throw schemaError("invalid_column", `foreignKey() on "${args.accessor}" needs at least two local columns (use fk() for a single-column relation)`);
|
|
395
|
+
}
|
|
396
|
+
if (extra.columns.length !== extra.targetColumns.length) {
|
|
397
|
+
throw schemaError("invalid_column", `foreignKey() on "${args.accessor}" local and referenced column counts must match`);
|
|
398
|
+
}
|
|
399
|
+
rejectMysqlDeferrable(args.provider, extra._deferrable);
|
|
400
|
+
const targetDef = args.schemaTables[extra.targetTable];
|
|
401
|
+
if (!targetDef) {
|
|
402
|
+
throw schemaError("unknown_fk_target", `foreignKey() on "${args.accessor}" references unknown table accessor "${extra.targetTable}"`, { tableAccessor: args.accessor }, suggestSchemaTableAccessor(extra.targetTable, args.schemaTables));
|
|
403
|
+
}
|
|
404
|
+
const localSql = [];
|
|
405
|
+
for (const tsName of extra.columns) {
|
|
406
|
+
const def = requireColumnDef(args.localDefs, tsName, args.accessor);
|
|
407
|
+
if (isFkBuilder(def)) {
|
|
408
|
+
throw schemaError("invalid_column", `foreignKey() column "${tsName}" on "${args.accessor}" must not also be fk()`);
|
|
409
|
+
}
|
|
410
|
+
localSql.push(resolveSqlName(tsName, def, args.columnNaming));
|
|
411
|
+
}
|
|
412
|
+
const targetNaming = targetDef._columnNaming ?? args.columnNaming;
|
|
413
|
+
const targetSql = [];
|
|
414
|
+
for (const tsName of extra.targetColumns) {
|
|
415
|
+
const def = requireColumnDef(targetDef._columns, tsName, extra.targetTable);
|
|
416
|
+
targetSql.push(resolveSqlName(tsName, def, targetNaming));
|
|
417
|
+
}
|
|
418
|
+
const fk = {
|
|
419
|
+
name: extra.constraintName ??
|
|
420
|
+
`${args.tableSqlName}_${localSql.join("_")}_fkey`,
|
|
421
|
+
columns: localSql,
|
|
422
|
+
targetTable: targetDef._tableName,
|
|
423
|
+
targetColumns: targetSql,
|
|
424
|
+
};
|
|
425
|
+
if (extra._onDelete !== undefined)
|
|
426
|
+
fk.onDelete = extra._onDelete;
|
|
427
|
+
if (extra._onUpdate !== undefined)
|
|
428
|
+
fk.onUpdate = extra._onUpdate;
|
|
429
|
+
if (extra._deferrable !== undefined)
|
|
430
|
+
fk.deferrable = extra._deferrable;
|
|
431
|
+
result.push(fk);
|
|
272
432
|
}
|
|
273
|
-
return
|
|
433
|
+
return result;
|
|
434
|
+
}
|
|
435
|
+
function columnSetIsUnique(table, sqlNames) {
|
|
436
|
+
if (sqlNames.length === 0)
|
|
437
|
+
return false;
|
|
438
|
+
if (table.primaryKey.length === sqlNames.length &&
|
|
439
|
+
sqlNames.every((name) => table.primaryKey.includes(name))) {
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
if (sqlNames.length === 1) {
|
|
443
|
+
return isUniqueColumn(table, sqlNames[0] ?? "");
|
|
444
|
+
}
|
|
445
|
+
return table.indexes.some((idx) => idx.unique &&
|
|
446
|
+
!idx.whereSql &&
|
|
447
|
+
!(idx.using && idx.using !== "btree") &&
|
|
448
|
+
!(idx.keys?.some((key) => key.expr) ?? false) &&
|
|
449
|
+
idx.columns.length === sqlNames.length &&
|
|
450
|
+
sqlNames.every((name) => idx.columns.includes(name)));
|
|
274
451
|
}
|
|
275
452
|
function buildRelations(columns, sourceAccessor, sqlNameToAccessor, manifestTables) {
|
|
276
453
|
const relations = [];
|
|
@@ -297,6 +474,52 @@ function buildRelations(columns, sourceAccessor, sqlNameToAccessor, manifestTabl
|
|
|
297
474
|
if (col.onDelete !== undefined) {
|
|
298
475
|
rel.onDelete = col.onDelete;
|
|
299
476
|
}
|
|
477
|
+
if (col.onUpdate !== undefined) {
|
|
478
|
+
rel.onUpdate = col.onUpdate;
|
|
479
|
+
}
|
|
480
|
+
if (col.deferrable !== undefined) {
|
|
481
|
+
rel.deferrable = col.deferrable;
|
|
482
|
+
}
|
|
483
|
+
relations.push(rel);
|
|
484
|
+
}
|
|
485
|
+
return relations;
|
|
486
|
+
}
|
|
487
|
+
function extraFkRelations(table, schemaTable) {
|
|
488
|
+
const relations = [];
|
|
489
|
+
const extras = schemaTable._extras.filter((extra) => extra.kind === "foreignKey");
|
|
490
|
+
const fks = table.foreignKeys ?? [];
|
|
491
|
+
for (let i = 0; i < extras.length; i++) {
|
|
492
|
+
const extra = extras[i];
|
|
493
|
+
const fk = fks[i];
|
|
494
|
+
if (!extra || !fk)
|
|
495
|
+
continue;
|
|
496
|
+
const targetAccessor = extra.targetTable;
|
|
497
|
+
const localTs = extra.columns;
|
|
498
|
+
const firstLocal = localTs[0];
|
|
499
|
+
const firstSql = fk.columns[0];
|
|
500
|
+
const firstTarget = fk.targetColumns[0];
|
|
501
|
+
if (!firstLocal || !firstSql || !firstTarget)
|
|
502
|
+
continue;
|
|
503
|
+
const rel = {
|
|
504
|
+
name: extra._as,
|
|
505
|
+
targetTable: fk.targetTable,
|
|
506
|
+
targetAccessor,
|
|
507
|
+
fkColumn: firstLocal,
|
|
508
|
+
fkSqlColumn: firstSql,
|
|
509
|
+
targetColumn: firstTarget,
|
|
510
|
+
fkColumns: localTs,
|
|
511
|
+
fkSqlColumns: fk.columns,
|
|
512
|
+
targetColumns: fk.targetColumns,
|
|
513
|
+
referencedSqlColumns: fk.targetColumns,
|
|
514
|
+
cardinality: "one",
|
|
515
|
+
inverse: extra._inverse,
|
|
516
|
+
};
|
|
517
|
+
if (extra._onDelete !== undefined)
|
|
518
|
+
rel.onDelete = extra._onDelete;
|
|
519
|
+
if (extra._onUpdate !== undefined)
|
|
520
|
+
rel.onUpdate = extra._onUpdate;
|
|
521
|
+
if (extra._deferrable !== undefined)
|
|
522
|
+
rel.deferrable = extra._deferrable;
|
|
300
523
|
relations.push(rel);
|
|
301
524
|
}
|
|
302
525
|
return relations;
|
|
@@ -307,8 +530,10 @@ function isUniqueColumn(table, fkSqlColumn) {
|
|
|
307
530
|
return true;
|
|
308
531
|
return table.indexes.some((idx) => idx.unique &&
|
|
309
532
|
!idx.whereSql &&
|
|
533
|
+
!idx.using &&
|
|
310
534
|
idx.columns.length === 1 &&
|
|
311
|
-
idx.columns[0] === fkSqlColumn
|
|
535
|
+
idx.columns[0] === fkSqlColumn &&
|
|
536
|
+
!(idx.keys?.some((key) => key.expr) ?? false));
|
|
312
537
|
}
|
|
313
538
|
function resolveM2M(incoming) {
|
|
314
539
|
return {
|
|
@@ -350,7 +575,7 @@ export function schemaToManifest(schema, _plugins = getPluginRegistry(), options
|
|
|
350
575
|
const columns = Object.entries(tableDef._columns)
|
|
351
576
|
.filter(([, col]) => !isManyToMany(col))
|
|
352
577
|
.map(([name, col]) => columnToManifest(name, col, columnNaming, tables, defaultColumnNaming, provider));
|
|
353
|
-
const { indexes, primaryKey } = extrasToManifest(tableDef._extras, tableDef._columns, tableDef._tableName, columnNaming, provider);
|
|
578
|
+
const { indexes, primaryKey, compositeFks } = extrasToManifest(tableDef._extras, tableDef._columns, tableDef._tableName, columnNaming, provider);
|
|
354
579
|
for (const col of columns) {
|
|
355
580
|
if (!col.index)
|
|
356
581
|
continue;
|
|
@@ -358,6 +583,7 @@ export function schemaToManifest(schema, _plugins = getPluginRegistry(), options
|
|
|
358
583
|
name: col.sqlName,
|
|
359
584
|
columns: [col.sqlName],
|
|
360
585
|
unique: false,
|
|
586
|
+
keys: [{ sqlName: col.sqlName }],
|
|
361
587
|
};
|
|
362
588
|
const already = indexes.some((idx) => !idx.unique &&
|
|
363
589
|
idx.columns.length === 1 &&
|
|
@@ -393,6 +619,20 @@ export function schemaToManifest(schema, _plugins = getPluginRegistry(), options
|
|
|
393
619
|
relations: [],
|
|
394
620
|
indexes,
|
|
395
621
|
primaryKey: pk,
|
|
622
|
+
...(compositeFks.length > 0
|
|
623
|
+
? {
|
|
624
|
+
foreignKeys: resolveCompositeForeignKeys({
|
|
625
|
+
accessor,
|
|
626
|
+
tableSqlName: tableDef._tableName,
|
|
627
|
+
columns,
|
|
628
|
+
extras: compositeFks,
|
|
629
|
+
columnNaming,
|
|
630
|
+
localDefs: tableDef._columns,
|
|
631
|
+
schemaTables: tables,
|
|
632
|
+
...(provider ? { provider } : {}),
|
|
633
|
+
}),
|
|
634
|
+
}
|
|
635
|
+
: {}),
|
|
396
636
|
};
|
|
397
637
|
}
|
|
398
638
|
const autoJunctionAccessors = new Set();
|
|
@@ -491,14 +731,27 @@ export function schemaToManifest(schema, _plugins = getPluginRegistry(), options
|
|
|
491
731
|
});
|
|
492
732
|
}
|
|
493
733
|
for (const table of Object.values(manifestTables)) {
|
|
494
|
-
|
|
734
|
+
for (const fk of table.foreignKeys ?? []) {
|
|
735
|
+
const target = Object.values(manifestTables).find((item) => item.sqlName === fk.targetTable);
|
|
736
|
+
if (!target) {
|
|
737
|
+
throw schemaError("unknown_fk_target", `foreignKey on "${table.accessor}" references unknown table ${fk.targetTable}`);
|
|
738
|
+
}
|
|
739
|
+
if (!columnSetIsUnique(target, fk.targetColumns)) {
|
|
740
|
+
throw schemaError("invalid_column", `foreignKey on "${table.accessor}" target (${fk.targetColumns.join(", ")}) must be a primary key or unique index on "${target.accessor}"`);
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
const schemaTable = tables[table.accessor];
|
|
744
|
+
table.relations = [
|
|
745
|
+
...buildRelations(table.columns, table.accessor, sqlNameToAccessor, manifestTables),
|
|
746
|
+
...(schemaTable ? extraFkRelations(table, schemaTable) : []),
|
|
747
|
+
];
|
|
495
748
|
}
|
|
496
749
|
for (const table of Object.values(manifestTables)) {
|
|
497
750
|
if (autoJunctionAccessors.has(table.accessor))
|
|
498
751
|
continue;
|
|
499
752
|
const fkRelations = table.relations.filter((rel) => {
|
|
500
|
-
const
|
|
501
|
-
return col
|
|
753
|
+
const names = rel.fkColumns ?? [rel.fkColumn];
|
|
754
|
+
return names.every((name) => table.columns.some((col) => col.tsName === name || col.sqlName === name));
|
|
502
755
|
});
|
|
503
756
|
for (const rel of fkRelations) {
|
|
504
757
|
const inverseTable = manifestTables[rel.targetAccessor];
|
|
@@ -518,18 +771,36 @@ export function schemaToManifest(schema, _plugins = getPluginRegistry(), options
|
|
|
518
771
|
"Each inverse relation name must be unique on the target table",
|
|
519
772
|
]);
|
|
520
773
|
}
|
|
521
|
-
|
|
774
|
+
const localSql = rel.fkSqlColumns ?? [rel.fkSqlColumn];
|
|
775
|
+
const inverseRel = {
|
|
522
776
|
name: rel.inverse,
|
|
523
777
|
targetTable: table.sqlName,
|
|
524
778
|
targetAccessor: table.accessor,
|
|
525
779
|
fkColumn: rel.fkColumn,
|
|
526
780
|
fkSqlColumn: rel.fkSqlColumn,
|
|
527
781
|
targetColumn: table.primaryKey[0] ?? rel.targetColumn,
|
|
528
|
-
cardinality:
|
|
782
|
+
cardinality: columnSetIsUnique(table, localSql)
|
|
529
783
|
? "one"
|
|
530
784
|
: "many",
|
|
531
785
|
inverse: rel.name,
|
|
532
|
-
}
|
|
786
|
+
};
|
|
787
|
+
if (rel.fkColumns)
|
|
788
|
+
inverseRel.fkColumns = rel.fkColumns;
|
|
789
|
+
if (rel.fkSqlColumns)
|
|
790
|
+
inverseRel.fkSqlColumns = rel.fkSqlColumns;
|
|
791
|
+
if (table.primaryKey.length > 1) {
|
|
792
|
+
inverseRel.targetColumns = table.primaryKey;
|
|
793
|
+
}
|
|
794
|
+
inverseRel.referencedSqlColumns = rel.referencedSqlColumns ??
|
|
795
|
+
rel.targetColumns ?? [rel.targetColumn];
|
|
796
|
+
if (rel.onDelete !== undefined)
|
|
797
|
+
inverseRel.onDelete = rel.onDelete;
|
|
798
|
+
if (rel.onUpdate !== undefined)
|
|
799
|
+
inverseRel.onUpdate = rel.onUpdate;
|
|
800
|
+
if (rel.deferrable !== undefined) {
|
|
801
|
+
inverseRel.deferrable = rel.deferrable;
|
|
802
|
+
}
|
|
803
|
+
inverseTable.relations.push(inverseRel);
|
|
533
804
|
}
|
|
534
805
|
}
|
|
535
806
|
const manyToMany = incomingM2Ms.map(resolveM2M);
|
|
@@ -561,7 +832,7 @@ export function schemaToManifest(schema, _plugins = getPluginRegistry(), options
|
|
|
561
832
|
});
|
|
562
833
|
}
|
|
563
834
|
}
|
|
564
|
-
const enumTypes = finalizeEnumColumns(manifestTables, enumMode);
|
|
835
|
+
const enumTypes = finalizeEnumColumns(manifestTables, enumMode, provider);
|
|
565
836
|
const pluginExtensions = collectExtensionsForKinds(Object.values(manifestTables).flatMap((table) => table.columns.map((col) => col.kind)));
|
|
566
837
|
const userExtensions = schema._extensions ?? [];
|
|
567
838
|
const extensions = [...new Set([...pluginExtensions, ...userExtensions])];
|
|
@@ -630,6 +901,15 @@ export function validateManifest(manifest) {
|
|
|
630
901
|
});
|
|
631
902
|
}
|
|
632
903
|
}
|
|
904
|
+
for (const fk of table.foreignKeys ?? []) {
|
|
905
|
+
const target = Object.values(manifest.tables).find((item) => item.sqlName === fk.targetTable);
|
|
906
|
+
if (!target) {
|
|
907
|
+
errors.push({
|
|
908
|
+
code: "unknown_fk_target",
|
|
909
|
+
message: `FK constraint ${fk.name} on ${table.accessor} references unknown table ${fk.targetTable}`,
|
|
910
|
+
});
|
|
911
|
+
}
|
|
912
|
+
}
|
|
633
913
|
}
|
|
634
914
|
return errors;
|
|
635
915
|
}
|