@venizia/ignis-connectors 0.2.0-43 → 0.2.0-45
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 +146 -0
- package/dist/cjs/http/datasource.d.ts +2 -0
- package/dist/cjs/http/datasource.d.ts.map +1 -1
- package/dist/cjs/http/datasource.js +13 -1
- package/dist/cjs/http/datasource.js.map +1 -1
- package/dist/cjs/relational/core/datasources/abstract.d.ts +8 -0
- package/dist/cjs/relational/core/datasources/abstract.d.ts.map +1 -1
- package/dist/cjs/relational/core/datasources/abstract.js +32 -0
- package/dist/cjs/relational/core/datasources/abstract.js.map +1 -1
- package/dist/cjs/relational/core/datasources/base.d.ts.map +1 -1
- package/dist/cjs/relational/core/datasources/base.js +23 -4
- package/dist/cjs/relational/core/datasources/base.js.map +1 -1
- package/dist/cjs/relational/core/datasources/relation-pairing.d.ts +37 -0
- package/dist/cjs/relational/core/datasources/relation-pairing.d.ts.map +1 -0
- package/dist/cjs/relational/core/datasources/relation-pairing.js +58 -0
- package/dist/cjs/relational/core/datasources/relation-pairing.js.map +1 -0
- package/dist/cjs/relational/core/models/base.d.ts +5 -5
- package/dist/cjs/relational/core/models/base.d.ts.map +1 -1
- package/dist/cjs/relational/core/models/base.js +14 -4
- package/dist/cjs/relational/core/models/base.js.map +1 -1
- package/dist/cjs/relational/core/models/common/constants.d.ts +13 -0
- package/dist/cjs/relational/core/models/common/constants.d.ts.map +1 -0
- package/dist/cjs/relational/core/models/common/constants.js +24 -0
- package/dist/cjs/relational/core/models/common/constants.js.map +1 -0
- package/dist/cjs/relational/core/models/common/types.d.ts +45 -0
- package/dist/cjs/relational/core/models/common/types.d.ts.map +1 -1
- package/dist/cjs/relational/core/models/common/types.js.map +1 -1
- package/dist/cjs/relational/core/models/factory.d.ts +29 -0
- package/dist/cjs/relational/core/models/factory.d.ts.map +1 -0
- package/dist/cjs/relational/core/models/factory.js +41 -0
- package/dist/cjs/relational/core/models/factory.js.map +1 -0
- package/dist/cjs/relational/core/models/index.d.ts +2 -0
- package/dist/cjs/relational/core/models/index.d.ts.map +1 -1
- package/dist/cjs/relational/core/models/index.js +2 -0
- package/dist/cjs/relational/core/models/index.js.map +1 -1
- package/dist/cjs/relational/core/models/relations.d.ts +13 -0
- package/dist/cjs/relational/core/models/relations.d.ts.map +1 -0
- package/dist/cjs/relational/core/models/relations.js +23 -0
- package/dist/cjs/relational/core/models/relations.js.map +1 -0
- package/dist/cjs/relational/core/repositories/common/types.d.ts +2 -1
- package/dist/cjs/relational/core/repositories/common/types.d.ts.map +1 -1
- package/dist/cjs/relational/core/repositories/dialect/index.d.ts +1 -1
- package/dist/cjs/relational/core/repositories/dialect/index.d.ts.map +1 -1
- package/dist/cjs/relational/core/repositories/dialect/index.js +1 -1
- package/dist/cjs/relational/core/repositories/dialect/index.js.map +1 -1
- package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.d.ts +12 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.js +16 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/constants.js.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/index.d.ts +3 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/index.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/index.js +19 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/index.js.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/types.d.ts +23 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/types.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/types.js +3 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/common/types.js.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/create.d.ts +12 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/create.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/{relation.js → relations/create.js} +12 -5
- package/dist/cjs/relational/core/repositories/dialect/relations/create.js.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/index.d.ts +2 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/index.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/index.js +18 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/index.js.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/many.d.ts +13 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/many.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/many.js +11 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/many.js.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/one.d.ts +53 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/one.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/one.js +185 -0
- package/dist/cjs/relational/core/repositories/dialect/relations/one.js.map +1 -0
- package/dist/cjs/relational/core/repositories/index.d.ts +1 -0
- package/dist/cjs/relational/core/repositories/index.d.ts.map +1 -1
- package/dist/cjs/relational/core/repositories/index.js +1 -0
- package/dist/cjs/relational/core/repositories/index.js.map +1 -1
- package/dist/cjs/relational/core/repositories/sqls/index.d.ts +2 -0
- package/dist/cjs/relational/core/repositories/sqls/index.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/sqls/index.js +18 -0
- package/dist/cjs/relational/core/repositories/sqls/index.js.map +1 -0
- package/dist/cjs/relational/core/repositories/sqls/recursive-tree.d.ts +56 -0
- package/dist/cjs/relational/core/repositories/sqls/recursive-tree.d.ts.map +1 -0
- package/dist/cjs/relational/core/repositories/sqls/recursive-tree.js +148 -0
- package/dist/cjs/relational/core/repositories/sqls/recursive-tree.js.map +1 -0
- package/dist/cjs/relational/postgres/models/index.d.ts +4 -0
- package/dist/cjs/relational/postgres/models/index.d.ts.map +1 -1
- package/dist/cjs/relational/postgres/models/index.js +7 -1
- package/dist/cjs/relational/postgres/models/index.js.map +1 -1
- package/dist/cjs/relational/postgres/repositories/common/types.d.ts +1 -16
- package/dist/cjs/relational/postgres/repositories/common/types.d.ts.map +1 -1
- package/dist/cjs/relational/postgres/repositories/dialect/relation.d.ts +1 -1
- package/dist/cjs/relational/postgres/repositories/dialect/relation.d.ts.map +1 -1
- package/dist/cjs/relational/postgres/repositories/dialect/relation.js +2 -2
- package/dist/cjs/relational/postgres/repositories/dialect/relation.js.map +1 -1
- package/dist/cjs/relational/postgres/repositories/dialect/update.d.ts +6 -0
- package/dist/cjs/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
- package/dist/cjs/relational/postgres/repositories/dialect/update.js +28 -2
- package/dist/cjs/relational/postgres/repositories/dialect/update.js.map +1 -1
- package/dist/cjs/relational/postgres/repositories/index.d.ts +1 -0
- package/dist/cjs/relational/postgres/repositories/index.d.ts.map +1 -1
- package/dist/cjs/relational/postgres/repositories/index.js +2 -0
- package/dist/cjs/relational/postgres/repositories/index.js.map +1 -1
- package/dist/cjs/relational/sqlite/models/index.d.ts +4 -0
- package/dist/cjs/relational/sqlite/models/index.d.ts.map +1 -1
- package/dist/cjs/relational/sqlite/models/index.js +7 -0
- package/dist/cjs/relational/sqlite/models/index.js.map +1 -1
- package/dist/cjs/relational/sqlite/repositories/index.d.ts +1 -0
- package/dist/cjs/relational/sqlite/repositories/index.d.ts.map +1 -1
- package/dist/cjs/relational/sqlite/repositories/index.js +2 -0
- package/dist/cjs/relational/sqlite/repositories/index.js.map +1 -1
- package/dist/cjs/search/core/controllers/definition.d.ts +73 -33
- package/dist/cjs/search/core/controllers/definition.d.ts.map +1 -1
- package/dist/cjs/search/core/controllers/factory.d.ts.map +1 -1
- package/dist/cjs/search/core/controllers/factory.js +6 -0
- package/dist/cjs/search/core/controllers/factory.js.map +1 -1
- package/dist/cjs/search/core/datasources/abstract.d.ts +1 -1
- package/dist/cjs/search/core/datasources/abstract.d.ts.map +1 -1
- package/dist/cjs/search/core/datasources/abstract.js +2 -2
- package/dist/cjs/search/core/datasources/abstract.js.map +1 -1
- package/dist/cjs/search/core/datasources/base.d.ts.map +1 -1
- package/dist/cjs/search/core/datasources/base.js +5 -11
- package/dist/cjs/search/core/datasources/base.js.map +1 -1
- package/dist/cjs/search/core/datasources/guards.d.ts +4 -0
- package/dist/cjs/search/core/datasources/guards.d.ts.map +1 -0
- package/dist/cjs/search/core/datasources/guards.js +14 -0
- package/dist/cjs/search/core/datasources/guards.js.map +1 -0
- package/dist/cjs/search/core/index.d.ts +0 -1
- package/dist/cjs/search/core/index.d.ts.map +1 -1
- package/dist/cjs/search/core/index.js +2 -1
- package/dist/cjs/search/core/index.js.map +1 -1
- package/dist/cjs/search/core/internal/search-connector-internal.js +2 -2
- package/dist/cjs/search/core/internal/search-connector-internal.js.map +1 -1
- package/dist/cjs/search/core/models/base.d.ts +2 -2
- package/dist/cjs/search/core/models/base.d.ts.map +1 -1
- package/dist/cjs/search/core/models/base.js +2 -2
- package/dist/cjs/search/core/models/base.js.map +1 -1
- package/dist/cjs/search/core/models/zod-derivation.d.ts +1 -1
- package/dist/cjs/search/core/models/zod-derivation.d.ts.map +1 -1
- package/dist/cjs/search/core/models/zod-derivation.js +16 -16
- package/dist/cjs/search/core/models/zod-derivation.js.map +1 -1
- package/dist/cjs/search/core/repositories/common/constants.d.ts +1 -4
- package/dist/cjs/search/core/repositories/common/constants.d.ts.map +1 -1
- package/dist/cjs/search/core/repositories/common/constants.js +75 -100
- package/dist/cjs/search/core/repositories/common/constants.js.map +1 -1
- package/dist/cjs/search/core/repositories/common/index.d.ts +1 -0
- package/dist/cjs/search/core/repositories/common/index.d.ts.map +1 -1
- package/dist/cjs/search/core/repositories/common/index.js +1 -0
- package/dist/cjs/search/core/repositories/common/index.js.map +1 -1
- package/dist/cjs/search/core/repositories/common/query-params.d.ts +4 -0
- package/dist/cjs/search/core/repositories/common/query-params.d.ts.map +1 -0
- package/dist/cjs/search/core/repositories/common/query-params.js +29 -0
- package/dist/cjs/search/core/repositories/common/query-params.js.map +1 -0
- package/dist/cjs/search/core/repositories/core/base.d.ts +1 -1
- package/dist/cjs/search/core/repositories/core/base.d.ts.map +1 -1
- package/dist/cjs/search/core/repositories/core/base.js +7 -7
- package/dist/cjs/search/core/repositories/core/base.js.map +1 -1
- package/dist/cjs/search/core/repositories/core/guards.d.ts +5 -0
- package/dist/cjs/search/core/repositories/core/guards.d.ts.map +1 -0
- package/dist/cjs/search/core/repositories/core/guards.js +9 -0
- package/dist/cjs/search/core/repositories/core/guards.js.map +1 -0
- package/dist/cjs/search/core/repositories/core/persistable.d.ts.map +1 -1
- package/dist/cjs/search/core/repositories/core/persistable.js +4 -7
- package/dist/cjs/search/core/repositories/core/persistable.js.map +1 -1
- package/dist/cjs/search/core/repositories/core/readable.js +3 -3
- package/dist/cjs/search/core/repositories/core/readable.js.map +1 -1
- package/dist/cjs/search/meilisearch/connector.js +4 -4
- package/dist/cjs/search/meilisearch/connector.js.map +1 -1
- package/dist/esm/http/datasource.d.ts +2 -0
- package/dist/esm/http/datasource.d.ts.map +1 -1
- package/dist/esm/http/datasource.js +13 -1
- package/dist/esm/http/datasource.js.map +1 -1
- package/dist/esm/package.json +4 -0
- package/dist/esm/relational/core/datasources/abstract.d.ts +8 -0
- package/dist/esm/relational/core/datasources/abstract.d.ts.map +1 -1
- package/dist/esm/relational/core/datasources/abstract.js +32 -0
- package/dist/esm/relational/core/datasources/abstract.js.map +1 -1
- package/dist/esm/relational/core/datasources/base.d.ts.map +1 -1
- package/dist/esm/relational/core/datasources/base.js +22 -3
- package/dist/esm/relational/core/datasources/base.js.map +1 -1
- package/dist/esm/relational/core/datasources/relation-pairing.d.ts +37 -0
- package/dist/esm/relational/core/datasources/relation-pairing.d.ts.map +1 -0
- package/dist/esm/relational/core/datasources/relation-pairing.js +54 -0
- package/dist/esm/relational/core/datasources/relation-pairing.js.map +1 -0
- package/dist/esm/relational/core/models/base.d.ts +5 -5
- package/dist/esm/relational/core/models/base.d.ts.map +1 -1
- package/dist/esm/relational/core/models/base.js +14 -4
- package/dist/esm/relational/core/models/base.js.map +1 -1
- package/dist/esm/relational/core/models/common/constants.d.ts +13 -0
- package/dist/esm/relational/core/models/common/constants.d.ts.map +1 -0
- package/dist/esm/relational/core/models/common/constants.js +20 -0
- package/dist/esm/relational/core/models/common/constants.js.map +1 -0
- package/dist/esm/relational/core/models/common/types.d.ts +45 -0
- package/dist/esm/relational/core/models/common/types.d.ts.map +1 -1
- package/dist/esm/relational/core/models/common/types.js.map +1 -1
- package/dist/esm/relational/core/models/factory.d.ts +29 -0
- package/dist/esm/relational/core/models/factory.d.ts.map +1 -0
- package/dist/esm/relational/core/models/factory.js +37 -0
- package/dist/esm/relational/core/models/factory.js.map +1 -0
- package/dist/esm/relational/core/models/index.d.ts +2 -0
- package/dist/esm/relational/core/models/index.d.ts.map +1 -1
- package/dist/esm/relational/core/models/index.js +2 -0
- package/dist/esm/relational/core/models/index.js.map +1 -1
- package/dist/esm/relational/core/models/relations.d.ts +13 -0
- package/dist/esm/relational/core/models/relations.d.ts.map +1 -0
- package/dist/esm/relational/core/models/relations.js +17 -0
- package/dist/esm/relational/core/models/relations.js.map +1 -0
- package/dist/esm/relational/core/repositories/common/types.d.ts +2 -1
- package/dist/esm/relational/core/repositories/common/types.d.ts.map +1 -1
- package/dist/esm/relational/core/repositories/dialect/index.d.ts +1 -1
- package/dist/esm/relational/core/repositories/dialect/index.d.ts.map +1 -1
- package/dist/esm/relational/core/repositories/dialect/index.js +1 -1
- package/dist/esm/relational/core/repositories/dialect/index.js.map +1 -1
- package/dist/esm/relational/core/repositories/dialect/relations/common/constants.d.ts +12 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/constants.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/constants.js +12 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/constants.js.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/index.d.ts +3 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/index.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/index.js +3 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/index.js.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/types.d.ts +23 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/types.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/types.js +2 -0
- package/dist/esm/relational/core/repositories/dialect/relations/common/types.js.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/create.d.ts +12 -0
- package/dist/esm/relational/core/repositories/dialect/relations/create.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/{relation.js → relations/create.js} +12 -5
- package/dist/esm/relational/core/repositories/dialect/relations/create.js.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/index.d.ts +2 -0
- package/dist/esm/relational/core/repositories/dialect/relations/index.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/index.js +2 -0
- package/dist/esm/relational/core/repositories/dialect/relations/index.js.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/many.d.ts +13 -0
- package/dist/esm/relational/core/repositories/dialect/relations/many.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/many.js +7 -0
- package/dist/esm/relational/core/repositories/dialect/relations/many.js.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/one.d.ts +53 -0
- package/dist/esm/relational/core/repositories/dialect/relations/one.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/dialect/relations/one.js +181 -0
- package/dist/esm/relational/core/repositories/dialect/relations/one.js.map +1 -0
- package/dist/esm/relational/core/repositories/index.d.ts +1 -0
- package/dist/esm/relational/core/repositories/index.d.ts.map +1 -1
- package/dist/esm/relational/core/repositories/index.js +1 -0
- package/dist/esm/relational/core/repositories/index.js.map +1 -1
- package/dist/esm/relational/core/repositories/sqls/index.d.ts +2 -0
- package/dist/esm/relational/core/repositories/sqls/index.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/sqls/index.js +2 -0
- package/dist/esm/relational/core/repositories/sqls/index.js.map +1 -0
- package/dist/esm/relational/core/repositories/sqls/recursive-tree.d.ts +56 -0
- package/dist/esm/relational/core/repositories/sqls/recursive-tree.d.ts.map +1 -0
- package/dist/esm/relational/core/repositories/sqls/recursive-tree.js +143 -0
- package/dist/esm/relational/core/repositories/sqls/recursive-tree.js.map +1 -0
- package/dist/esm/relational/postgres/models/index.d.ts +4 -0
- package/dist/esm/relational/postgres/models/index.d.ts.map +1 -1
- package/dist/esm/relational/postgres/models/index.js +2 -0
- package/dist/esm/relational/postgres/models/index.js.map +1 -1
- package/dist/esm/relational/postgres/repositories/common/types.d.ts +1 -16
- package/dist/esm/relational/postgres/repositories/common/types.d.ts.map +1 -1
- package/dist/esm/relational/postgres/repositories/dialect/relation.d.ts +1 -1
- package/dist/esm/relational/postgres/repositories/dialect/relation.d.ts.map +1 -1
- package/dist/esm/relational/postgres/repositories/dialect/relation.js +1 -1
- package/dist/esm/relational/postgres/repositories/dialect/relation.js.map +1 -1
- package/dist/esm/relational/postgres/repositories/dialect/update.d.ts +6 -0
- package/dist/esm/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
- package/dist/esm/relational/postgres/repositories/dialect/update.js +28 -2
- package/dist/esm/relational/postgres/repositories/dialect/update.js.map +1 -1
- package/dist/esm/relational/postgres/repositories/index.d.ts +1 -0
- package/dist/esm/relational/postgres/repositories/index.d.ts.map +1 -1
- package/dist/esm/relational/postgres/repositories/index.js +2 -0
- package/dist/esm/relational/postgres/repositories/index.js.map +1 -1
- package/dist/esm/relational/sqlite/models/index.d.ts +4 -0
- package/dist/esm/relational/sqlite/models/index.d.ts.map +1 -1
- package/dist/esm/relational/sqlite/models/index.js +2 -0
- package/dist/esm/relational/sqlite/models/index.js.map +1 -1
- package/dist/esm/relational/sqlite/repositories/index.d.ts +1 -0
- package/dist/esm/relational/sqlite/repositories/index.d.ts.map +1 -1
- package/dist/esm/relational/sqlite/repositories/index.js +2 -0
- package/dist/esm/relational/sqlite/repositories/index.js.map +1 -1
- package/dist/esm/search/core/controllers/definition.d.ts +73 -33
- package/dist/esm/search/core/controllers/definition.d.ts.map +1 -1
- package/dist/esm/search/core/controllers/factory.d.ts.map +1 -1
- package/dist/esm/search/core/controllers/factory.js +7 -1
- package/dist/esm/search/core/controllers/factory.js.map +1 -1
- package/dist/esm/search/core/datasources/abstract.d.ts +1 -1
- package/dist/esm/search/core/datasources/abstract.d.ts.map +1 -1
- package/dist/esm/search/core/datasources/abstract.js +1 -1
- package/dist/esm/search/core/datasources/abstract.js.map +1 -1
- package/dist/esm/search/core/datasources/base.d.ts.map +1 -1
- package/dist/esm/search/core/datasources/base.js +2 -8
- package/dist/esm/search/core/datasources/base.js.map +1 -1
- package/dist/esm/search/core/datasources/guards.d.ts +4 -0
- package/dist/esm/search/core/datasources/guards.d.ts.map +1 -0
- package/dist/esm/search/core/datasources/guards.js +10 -0
- package/dist/esm/search/core/datasources/guards.js.map +1 -0
- package/dist/esm/search/core/index.d.ts +0 -1
- package/dist/esm/search/core/index.d.ts.map +1 -1
- package/dist/esm/search/core/index.js +2 -1
- package/dist/esm/search/core/index.js.map +1 -1
- package/dist/esm/search/core/internal/search-connector-internal.js +1 -1
- package/dist/esm/search/core/internal/search-connector-internal.js.map +1 -1
- package/dist/esm/search/core/models/base.d.ts +2 -2
- package/dist/esm/search/core/models/base.d.ts.map +1 -1
- package/dist/esm/search/core/models/base.js +1 -1
- package/dist/esm/search/core/models/base.js.map +1 -1
- package/dist/esm/search/core/models/zod-derivation.d.ts +1 -1
- package/dist/esm/search/core/models/zod-derivation.d.ts.map +1 -1
- package/dist/esm/search/core/models/zod-derivation.js +2 -2
- package/dist/esm/search/core/models/zod-derivation.js.map +1 -1
- package/dist/esm/search/core/repositories/common/constants.d.ts +1 -4
- package/dist/esm/search/core/repositories/common/constants.d.ts.map +1 -1
- package/dist/esm/search/core/repositories/common/constants.js +13 -37
- package/dist/esm/search/core/repositories/common/constants.js.map +1 -1
- package/dist/esm/search/core/repositories/common/index.d.ts +1 -0
- package/dist/esm/search/core/repositories/common/index.d.ts.map +1 -1
- package/dist/esm/search/core/repositories/common/index.js +1 -0
- package/dist/esm/search/core/repositories/common/index.js.map +1 -1
- package/dist/esm/search/core/repositories/common/query-params.d.ts +4 -0
- package/dist/esm/search/core/repositories/common/query-params.d.ts.map +1 -0
- package/dist/esm/search/core/repositories/common/query-params.js +25 -0
- package/dist/esm/search/core/repositories/common/query-params.js.map +1 -0
- package/dist/esm/search/core/repositories/core/base.d.ts +1 -1
- package/dist/esm/search/core/repositories/core/base.d.ts.map +1 -1
- package/dist/esm/search/core/repositories/core/base.js +3 -3
- package/dist/esm/search/core/repositories/core/base.js.map +1 -1
- package/dist/esm/search/core/repositories/core/guards.d.ts +5 -0
- package/dist/esm/search/core/repositories/core/guards.d.ts.map +1 -0
- package/dist/esm/search/core/repositories/core/guards.js +5 -0
- package/dist/esm/search/core/repositories/core/guards.js.map +1 -0
- package/dist/esm/search/core/repositories/core/persistable.d.ts.map +1 -1
- package/dist/esm/search/core/repositories/core/persistable.js +2 -5
- package/dist/esm/search/core/repositories/core/persistable.js.map +1 -1
- package/dist/esm/search/core/repositories/core/readable.js +1 -1
- package/dist/esm/search/core/repositories/core/readable.js.map +1 -1
- package/dist/esm/search/meilisearch/connector.js +1 -1
- package/dist/esm/search/meilisearch/connector.js.map +1 -1
- package/package.json +6 -6
- package/dist/cjs/relational/core/repositories/dialect/relation.d.ts +0 -11
- package/dist/cjs/relational/core/repositories/dialect/relation.d.ts.map +0 -1
- package/dist/cjs/relational/core/repositories/dialect/relation.js.map +0 -1
- package/dist/esm/relational/core/repositories/dialect/relation.d.ts +0 -11
- package/dist/esm/relational/core/repositories/dialect/relation.d.ts.map +0 -1
- package/dist/esm/relational/core/repositories/dialect/relation.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# @venizia/ignis-connectors
|
|
2
|
+
|
|
3
|
+
The datasources, drivers, entity bases and repositories IGNIS uses to reach a backing engine: SQL
|
|
4
|
+
through Drizzle (Postgres, PGlite, SQLite), search engines (Typesense, Meilisearch), and another
|
|
5
|
+
IGNIS server over HTTP.
|
|
6
|
+
|
|
7
|
+
Server applications get these through `@venizia/ignis` and its sub-paths. Install this package
|
|
8
|
+
directly when you use the connectors without the server, for example in a browser Worker.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
For Postgres through `pg`:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
bun add @venizia/ignis-connectors @venizia/ignis-kernel drizzle-orm drizzle-zod hono @hono/zod-openapi pg
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Every peer is optional. Each entry point needs its own set - see the table in
|
|
19
|
+
[Entry points](#entry-points).
|
|
20
|
+
|
|
21
|
+
## Example
|
|
22
|
+
|
|
23
|
+
Declare the tables with Drizzle first. `ModelFactory.defineEntity` turns each table into an entity,
|
|
24
|
+
and a relation points at a table, not at another entity class:
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import { datasource, model, repository } from '@venizia/ignis-kernel';
|
|
28
|
+
import {
|
|
29
|
+
BasePostgresDataSource,
|
|
30
|
+
DefaultCRUDRepository,
|
|
31
|
+
generateIdColumnDefs,
|
|
32
|
+
many,
|
|
33
|
+
ModelFactory,
|
|
34
|
+
one,
|
|
35
|
+
type TEntityObject,
|
|
36
|
+
} from '@venizia/ignis-connectors/postgres';
|
|
37
|
+
import { NodePostgresDriver } from '@venizia/ignis-connectors/postgres/node-postgres';
|
|
38
|
+
import { pgTable, text } from 'drizzle-orm/pg-core';
|
|
39
|
+
import { Pool } from 'pg';
|
|
40
|
+
|
|
41
|
+
export const authorTable = pgTable('Author', {
|
|
42
|
+
...generateIdColumnDefs({ id: { dataType: 'string' } }),
|
|
43
|
+
name: text('name').notNull(),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export const postTable = pgTable('Post', {
|
|
47
|
+
...generateIdColumnDefs({ id: { dataType: 'string' } }),
|
|
48
|
+
authorId: text('author_id').notNull().references(() => authorTable.id),
|
|
49
|
+
title: text('title').notNull(),
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
@model({ type: 'entity' })
|
|
53
|
+
export class Author extends ModelFactory.defineEntity({
|
|
54
|
+
table: authorTable,
|
|
55
|
+
relations: () => ({ posts: many(postTable, { relationName: 'author' }) }),
|
|
56
|
+
}) {}
|
|
57
|
+
|
|
58
|
+
@model({ type: 'entity' })
|
|
59
|
+
export class Post extends ModelFactory.defineEntity({
|
|
60
|
+
table: postTable,
|
|
61
|
+
relations: () => ({ author: one(authorTable) }),
|
|
62
|
+
}) {}
|
|
63
|
+
|
|
64
|
+
@datasource({ driver: NodePostgresDriver })
|
|
65
|
+
export class BlogDataSource extends BasePostgresDataSource<{ connectionString: string }> {
|
|
66
|
+
constructor() {
|
|
67
|
+
super({ name: BlogDataSource.name, config: { connectionString: 'postgres://localhost/blog' } });
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
override configure(): void {
|
|
71
|
+
this.client = new Pool(this.settings);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
override getConnectionString(): string {
|
|
75
|
+
return this.settings.connectionString;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@repository({ model: Author, dataSource: BlogDataSource })
|
|
80
|
+
export class AuthorRepository extends DefaultCRUDRepository<typeof authorTable> {}
|
|
81
|
+
|
|
82
|
+
@repository({ model: Post, dataSource: BlogDataSource })
|
|
83
|
+
export class PostRepository extends DefaultCRUDRepository<typeof postTable> {}
|
|
84
|
+
|
|
85
|
+
const dataSource = new BlogDataSource();
|
|
86
|
+
dataSource.configure();
|
|
87
|
+
|
|
88
|
+
const authors = new AuthorRepository(dataSource);
|
|
89
|
+
const found = await authors.find<TEntityObject<typeof Author>>({
|
|
90
|
+
filter: { where: { name: 'Ada' }, include: [{ relation: 'posts' }] },
|
|
91
|
+
});
|
|
92
|
+
console.log(found[0]?.posts?.map(post => post.title));
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Notice what you did not write:
|
|
96
|
+
|
|
97
|
+
- `one(authorTable)` has no `fields` or `references`. It reads them off the one foreign key from
|
|
98
|
+
`Post` to `Author`. With two keys to the same table, it throws and names them, so you write
|
|
99
|
+
`fields`/`references` for that relation.
|
|
100
|
+
- `many(postTable, { relationName: 'author' })` pairs with the `one()` named `author` on `Post`.
|
|
101
|
+
- The datasource has no schema. It collects the tables from every `@repository` bound to it.
|
|
102
|
+
- `generateIdColumnDefs({ id: { dataType: 'string' } })` gives a text primary key filled with a UUID v7.
|
|
103
|
+
|
|
104
|
+
A class that extends `BaseRelationalEntity` with a hand-written static `schema` still works. Both
|
|
105
|
+
styles can live in one application.
|
|
106
|
+
|
|
107
|
+
## Entry points
|
|
108
|
+
|
|
109
|
+
| Import | What it gives | Extra peers |
|
|
110
|
+
|---|---|---|
|
|
111
|
+
| `@venizia/ignis-connectors` | The engine-neutral tiers: `BaseRelationalDataSource`, `BaseRelationalEntity`, `ModelFactory`, the relational repository chain, `RelationalMigrationRunner`, `RecursiveTreeSql`, and the search tier | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
|
|
112
|
+
| `/relational` | The engine-neutral SQL tier alone | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
|
|
113
|
+
| `/postgres` | `BasePostgresDataSource`, `DefaultCRUDRepository` and its chain, `ModelFactory`, `one`, `many`, the column helpers, `IsolationLevels`, `RecursiveTreeSql` | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
|
|
114
|
+
| `/postgres/node-postgres` | `NodePostgresDriver` | `drizzle-orm`, `pg` |
|
|
115
|
+
| `/postgres/postgres-js` | `PostgresJsDriver` | `drizzle-orm`, `postgres` |
|
|
116
|
+
| `/postgres/pglite` | `PGliteDriver` - Postgres in WASM, in memory or in the browser's OPFS | `drizzle-orm`, `@electric-sql/pglite` |
|
|
117
|
+
| `/postgres/supabase` | `withAuthContext`, `PoolerModes`, `buildPostgresJsOptions`, and the Supabase role and table helpers | `drizzle-orm` |
|
|
118
|
+
| `/sqlite` | `BaseSqliteDataSource`, `DefaultSqliteRepository` and its chain, `ModelFactory`, `RecursiveTreeSql` | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi` |
|
|
119
|
+
| `/sqlite/libsql` | `LibSqlDriver` | `drizzle-orm`, `drizzle-zod`, `hono`, `@hono/zod-openapi`, `@libsql/client` |
|
|
120
|
+
| `/search` | The engine-neutral search tier: `BaseSearchDataSource`, `BaseSearchEntity`, `DefaultSearchRepository` and its chain | none |
|
|
121
|
+
| `/search/controllers` | `AbstractSearchController`, `SearchControllerFactory` | `hono`, `@hono/zod-openapi` |
|
|
122
|
+
| `/typesense` | `TypesenseDataSource`, `TypesenseConnector`, `TypesenseQueryDialect`, plus everything in `/search` | `typesense` |
|
|
123
|
+
| `/typesense/controllers` | The same search controllers as `/search/controllers` | `hono`, `@hono/zod-openapi` |
|
|
124
|
+
| `/meilisearch` | `MeilisearchDataSource`, `MeilisearchConnector`, `MeilisearchQueryDialect` | `meilisearch` |
|
|
125
|
+
| `/http` | `HttpDataSource` and `HttpRepository` - read another IGNIS server's REST routes with the same filter vocabulary | none |
|
|
126
|
+
|
|
127
|
+
The root entry imports no driver and no engine client. A driver loads only when you import its
|
|
128
|
+
entry and name its class in `@datasource({ driver })`.
|
|
129
|
+
|
|
130
|
+
## Where it sits
|
|
131
|
+
|
|
132
|
+
Depends on `@venizia/ignis-kernel`, `@venizia/ignis-filter`, `@venizia/ignis-helpers` and
|
|
133
|
+
`@venizia/ignis-inversion`. Used by `@venizia/ignis`, which re-exports every sub-path under the same
|
|
134
|
+
name (`@venizia/ignis/postgres`, ...) except `/http`. Its root re-exports `/postgres`.
|
|
135
|
+
|
|
136
|
+
## Links
|
|
137
|
+
|
|
138
|
+
- [Connectors](https://ignis.venizia.ai/references/base/connectors)
|
|
139
|
+
- [Models](https://ignis.venizia.ai/guides/core-concepts/persistent/models) and [relations](https://ignis.venizia.ai/references/base/repositories/relations)
|
|
140
|
+
- [Postgres drivers and Supabase](https://ignis.venizia.ai/guides/core-concepts/persistent/postgres-drivers), [PGlite](https://ignis.venizia.ai/guides/core-concepts/persistent/pglite), [SQLite](https://ignis.venizia.ai/guides/core-concepts/persistent/sqlite)
|
|
141
|
+
- [Typesense](https://ignis.venizia.ai/guides/core-concepts/persistent/search-typesense), [Meilisearch](https://ignis.venizia.ai/guides/core-concepts/persistent/search-meilisearch)
|
|
142
|
+
- [Changelog: define an entity from its table](https://ignis.venizia.ai/changelogs/2026-09-19-define-entity)
|
|
143
|
+
- [Changelog: an HTTP connector](https://ignis.venizia.ai/changelogs/2026-09-17-an-http-connector)
|
|
144
|
+
- [All changelogs](https://ignis.venizia.ai/changelogs/)
|
|
145
|
+
|
|
146
|
+
MIT licensed - see [LICENSE.md](https://github.com/VENIZIA-AI/ignis/blob/main/LICENSE.md).
|
|
@@ -9,6 +9,8 @@ export declare class HttpDataSource extends AbstractDataSource<IHttpDataSourceSe
|
|
|
9
9
|
protected network: NodeFetchNetworkRequest;
|
|
10
10
|
/** Normalised once: every request copies these, never re-parses `settings.headers`. */
|
|
11
11
|
protected configuredHeaders: Array<[string, string]>;
|
|
12
|
+
/** Decided once: a relative baseUrl (`/api`) needs a location to resolve against on every request. */
|
|
13
|
+
protected isRelativeBaseUrl: boolean;
|
|
12
14
|
constructor(opts: IHttpDataSourceSettings & {
|
|
13
15
|
name?: string;
|
|
14
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,EAEhB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAqGxB,mGAAmG;AACnG,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,uBAAuB,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAS,KAAK,CAAC;IAE9B,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,uFAAuF;IACvF,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,sGAAsG;IACtG,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEzB,IAAI,EAAE,uBAAuB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAuBvD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvB,eAAe;;;IAIxB,SAAS,CAAC,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAIpD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO;IAqB7D,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM;IA2BjF,+FAA+F;IACzF,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuBrB,oFAAoF;IAC9E,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KACxB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAwBhC"}
|
|
@@ -6,6 +6,8 @@ const common_1 = require("@venizia/ignis-helpers/common");
|
|
|
6
6
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
7
7
|
const core_2 = require("@venizia/ignis-helpers/core");
|
|
8
8
|
const MAX_URL_IN_MESSAGE = 256;
|
|
9
|
+
/** A leading RFC 3986 scheme makes a URL absolute. Read by pattern: `URL.canParse` needs Safari 17 or Chrome 120, and this runs in pages. */
|
|
10
|
+
const URL_SCHEME_PATTERN = /^[a-z][a-z\d+.-]*:/i;
|
|
9
11
|
/** A long `inq` makes a URL 200 KB: the message keeps its head and length. 414/431 name the URL. */
|
|
10
12
|
const describeUrl = (opts) => {
|
|
11
13
|
const { url, status } = opts;
|
|
@@ -94,6 +96,7 @@ class HttpDataSource extends repository_1.AbstractDataSource {
|
|
|
94
96
|
this.configuredHeaders = configured;
|
|
95
97
|
this.name = name;
|
|
96
98
|
this.settings = settings;
|
|
99
|
+
this.isRelativeBaseUrl = !URL_SCHEME_PATTERN.test(settings.baseUrl);
|
|
97
100
|
this.network = new core_1.NodeFetchNetworkRequest({
|
|
98
101
|
name,
|
|
99
102
|
networkOptions: { baseUrl: settings.baseUrl },
|
|
@@ -123,7 +126,16 @@ class HttpDataSource extends repository_1.AbstractDataSource {
|
|
|
123
126
|
}
|
|
124
127
|
buildUrl(opts) {
|
|
125
128
|
const { paths, query } = opts;
|
|
126
|
-
const
|
|
129
|
+
const requestUrl = this.network.getRequestUrl({ paths });
|
|
130
|
+
// A page or a Web Worker has a location to resolve '/api' against; a server has none.
|
|
131
|
+
const locationHref = this.isRelativeBaseUrl ? globalThis.location?.href : undefined;
|
|
132
|
+
if (this.isRelativeBaseUrl && !locationHref) {
|
|
133
|
+
throw (0, core_2.getError)({
|
|
134
|
+
statusCode: common_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
135
|
+
message: `[${this.name}] Relative baseUrl '${this.settings.baseUrl}' needs a page or worker location to resolve against, and there is none here | Pass an absolute baseUrl such as 'https://api.example.com'`,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const url = new URL(requestUrl, locationHref);
|
|
127
139
|
const parameters = Object.entries(query ?? {});
|
|
128
140
|
for (const [key, value] of parameters) {
|
|
129
141
|
if (value === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export declare abstract class AbstractRelationalDataSource<Settings extends obje
|
|
|
15
15
|
connector: TConnector;
|
|
16
16
|
protected client?: Client;
|
|
17
17
|
protected driver?: IRelationalDriver<TConnector>;
|
|
18
|
+
private closePromise?;
|
|
18
19
|
/**
|
|
19
20
|
* Lazy and idempotent: builds the driver named by `@datasource({ driver })` over the client
|
|
20
21
|
* `configure()` assigned, then the connector from it.
|
|
@@ -45,6 +46,13 @@ export declare abstract class AbstractRelationalDataSource<Settings extends obje
|
|
|
45
46
|
getClient(): Client;
|
|
46
47
|
abstract getQueryDialect(): IRelationalQueryDialect;
|
|
47
48
|
abstract getQueryExecutor(): IRelationalQueryExecutor<TConnector>;
|
|
49
|
+
/**
|
|
50
|
+
* Ends the connection `configure()` opened. Runs once: every later call returns the first call's
|
|
51
|
+
* promise. Goes through the driver, wired now if nothing queried yet, because its `end()` is the
|
|
52
|
+
* engine's whole teardown - PGlite also clears the exit status it plants on the host process.
|
|
53
|
+
*/
|
|
54
|
+
close(): Promise<void>;
|
|
55
|
+
private endConnection;
|
|
48
56
|
/**
|
|
49
57
|
* Soft-evicts the pool after a secret rotation: rebuilds against the rotated credentials without
|
|
50
58
|
* touching live fields, swaps atomically, then drains the old pool. On failure live state is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGhG;;;;;;GAMG;AACH,8BAAsB,4BAA4B,CAChD,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CAEpB,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAChE,YAAW,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;IAE3F,SAAS,EAAE,UAAU,CAAC;IAEtB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEjD;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAoBxC;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAerE,SAAS,CAAC,aAAa,IAAI,iBAAiB,CAAC,UAAU,CAAC;IAKxD;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK3F,QAAQ,CAAC,mBAAmB,IAAI,cAAc,CAAC,MAAM,CAAC;aACpC,gBAAgB,CAChC,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE9C,kGAAkG;IAClG,YAAY,IAAI,UAAU;IAK1B;;;OAGG;IACH,SAAS,IAAI,MAAM;IAcnB,QAAQ,CAAC,eAAe,IAAI,uBAAuB;IACnD,QAAQ,CAAC,gBAAgB,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjE;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D3F;;;;;OAKG;cACa,WAAW,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxE,iGAAiG;IACjG,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS;CAanF"}
|
|
1
|
+
{"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGhG;;;;;;GAMG;AACH,8BAAsB,4BAA4B,CAChD,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CAEpB,SAAQ,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAChE,YAAW,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;IAE3F,SAAS,EAAE,UAAU,CAAC;IAEtB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEjD,OAAO,CAAC,YAAY,CAAC,CAAgB;IAErC;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAoBxC;;;OAGG;IACH,SAAS,CAAC,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAerE,SAAS,CAAC,aAAa,IAAI,iBAAiB,CAAC,UAAU,CAAC;IAKxD;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK3F,QAAQ,CAAC,mBAAmB,IAAI,cAAc,CAAC,MAAM,CAAC;aACpC,gBAAgB,CAChC,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE9C,kGAAkG;IAClG,YAAY,IAAI,UAAU;IAK1B;;;OAGG;IACH,SAAS,IAAI,MAAM;IAcnB,QAAQ,CAAC,eAAe,IAAI,uBAAuB;IACnD,QAAQ,CAAC,gBAAgB,IAAI,wBAAwB,CAAC,UAAU,CAAC;IAEjE;;;;OAIG;IACM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAKjB,aAAa;IA0B3B;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D3F;;;;;OAKG;cACa,WAAW,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxE,iGAAiG;IACjG,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS;CAanF"}
|
|
@@ -80,6 +80,38 @@ class AbstractRelationalDataSource extends ignis_kernel_1.AbstractDataSource {
|
|
|
80
80
|
}
|
|
81
81
|
return this.client;
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Ends the connection `configure()` opened. Runs once: every later call returns the first call's
|
|
85
|
+
* promise. Goes through the driver, wired now if nothing queried yet, because its `end()` is the
|
|
86
|
+
* engine's whole teardown - PGlite also clears the exit status it plants on the host process.
|
|
87
|
+
*/
|
|
88
|
+
close() {
|
|
89
|
+
this.closePromise ??= this.endConnection();
|
|
90
|
+
return this.closePromise;
|
|
91
|
+
}
|
|
92
|
+
async endConnection() {
|
|
93
|
+
if (!this.driver && this.client === undefined) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
let driver;
|
|
97
|
+
try {
|
|
98
|
+
driver = this.resolveDriver();
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
this.logger
|
|
102
|
+
.for(this.close.name)
|
|
103
|
+
.warn('No driver to end the connection with | draining the client | error: %s', error);
|
|
104
|
+
await this.drainClient({ client: this.client });
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// A hand-made driver cast past `IRelationalDriver` can lack the `end()` its type promises.
|
|
108
|
+
if (typeof driver.end !== 'function') {
|
|
109
|
+
this.logger.for(this.close.name).warn('The driver has no end() | draining the client');
|
|
110
|
+
await this.drainClient({ client: this.client });
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
await driver.end();
|
|
114
|
+
}
|
|
83
115
|
/**
|
|
84
116
|
* Soft-evicts the pool after a secret rotation: rebuilds against the rotated credentials without
|
|
85
117
|
* touching live fields, swaps atomically, then drains the old pool. On failure live state is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":";;;AACA,wDAA2D;AAW3D,wDAAyD;AAEzD,sDAAuD;AAEvD;;;;;;GAMG;AACH,MAAsB,4BAOpB,SAAQ,iCAAyD;
|
|
1
|
+
{"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/abstract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAO/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAO/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAGtF,+EAA+E;AAC/E,8BAAsB,wBAAwB,CAC5C,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CACpB,SAAQ,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;gBACnF,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAWrE,wEAAwE;IAC/D,SAAS,IAAI,MAAM;IAK5B,SAAS,CAAC,cAAc,IAAI,MAAM;IAgDlC,qBAAqB,IAAI,OAAO;IAKvB,eAAe;;;IAIT,gBAAgB,CAC7B,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IA4D9C,2LAA2L;IAC3L,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,6BAA6B,GAAG,MAAM;CACrF"}
|
|
@@ -5,12 +5,13 @@ const ignis_kernel_1 = require("@venizia/ignis-kernel");
|
|
|
5
5
|
const ignis_kernel_2 = require("@venizia/ignis-kernel");
|
|
6
6
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
7
7
|
// Deep import, not a barrel: `discoverSchema()` below is the only production call site that needs
|
|
8
|
-
// `createRelations`, so the install runs from here rather than `dialect/
|
|
8
|
+
// `createRelations`, so the install runs from here rather than `dialect/relations/create.ts` - nothing else
|
|
9
9
|
// value-imports that file's `createRelations` export, and a `sideEffects: false` bundler drops an
|
|
10
10
|
// unused export's module body even when it is reachable through a barrel `export *` chain (verified
|
|
11
11
|
// with `bun build --target=browser`, the tool `make purity` uses).
|
|
12
|
-
const
|
|
12
|
+
const create_1 = require("../repositories/dialect/relations/create");
|
|
13
13
|
const abstract_1 = require("./abstract");
|
|
14
|
+
const relation_pairing_1 = require("./relation-pairing");
|
|
14
15
|
/** Base DataSource with schema auto-discovery from registered repositories. */
|
|
15
16
|
class BaseRelationalDataSource extends abstract_1.AbstractRelationalDataSource {
|
|
16
17
|
constructor(opts) {
|
|
@@ -40,8 +41,26 @@ class BaseRelationalDataSource extends abstract_1.AbstractRelationalDataSource {
|
|
|
40
41
|
this.logger
|
|
41
42
|
.for(this.discoverSchema.name)
|
|
42
43
|
.debug('Detected model(s) | Name: %s | Count: %s | Models: %j', this.name, models.length, models);
|
|
44
|
+
const discovered = { ...schema, ...relations };
|
|
45
|
+
// An inverse one() nothing pairs fails here; any other relation drizzle cannot pair is only
|
|
46
|
+
// reported, so a model set that boots today keeps booting, and its first query still throws.
|
|
47
|
+
const { unpaired, outside } = relation_pairing_1.RelationPairing.inspect({
|
|
48
|
+
dataSource: this.constructor.name,
|
|
49
|
+
schema: discovered,
|
|
50
|
+
});
|
|
51
|
+
const fatal = unpaired.find(item => relation_pairing_1.RelationPairing.isInverseOne({ relation: item.relation }));
|
|
52
|
+
if (fatal) {
|
|
53
|
+
throw (0, core_1.getError)({ message: fatal.message });
|
|
54
|
+
}
|
|
55
|
+
const logger = this.logger.for(this.discoverSchema.name);
|
|
56
|
+
for (const item of unpaired) {
|
|
57
|
+
logger.warn(item.message);
|
|
58
|
+
}
|
|
59
|
+
if (outside.length > 0) {
|
|
60
|
+
logger.debug(relation_pairing_1.RelationPairing.describeOutside({ outside }));
|
|
61
|
+
}
|
|
43
62
|
// buildSchema() is shared by every connector so it returns Record<string, unknown>; the cast narrows back to the Drizzle schema shape.
|
|
44
|
-
return
|
|
63
|
+
return discovered;
|
|
45
64
|
}
|
|
46
65
|
hasDiscoverableModels() {
|
|
47
66
|
const registry = ignis_kernel_1.MetadataRegistry.getInstance();
|
|
@@ -104,5 +123,5 @@ exports.BaseRelationalDataSource = BaseRelationalDataSource;
|
|
|
104
123
|
// Runs once this module loads. Every engine (postgres, sqlite) extends `BaseRelationalDataSource`,
|
|
105
124
|
// and `discoverSchema()` above is the sole caller of `resolveModelRelations()`, so this is the one
|
|
106
125
|
// place guaranteed to load whenever relation building is actually needed.
|
|
107
|
-
ignis_kernel_2.RelationBuilderRegistry.set({ builder:
|
|
126
|
+
ignis_kernel_2.RelationBuilderRegistry.set({ builder: create_1.createRelations });
|
|
108
127
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AACzD,wDAAuF;AAEvF,sDAAuD;AAEvD,kGAAkG;AAClG,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Relation } from 'drizzle-orm';
|
|
2
|
+
/** A relation drizzle cannot pair, with the message that names it and its fix. */
|
|
3
|
+
interface IUnpairedRelation {
|
|
4
|
+
relation: Relation;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
/** What a datasource's schema discovery learns about its relations. */
|
|
8
|
+
interface IRelationPairingReport {
|
|
9
|
+
/** Relations drizzle cannot pair, though their target has a model on the datasource. */
|
|
10
|
+
unpaired: Array<IUnpairedRelation>;
|
|
11
|
+
/** `Entity.relation -> Table` for each relation whose table has no model on the datasource. */
|
|
12
|
+
outside: Array<string>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Pairs every relation the way drizzle does on the first query that includes it, so schema
|
|
16
|
+
* discovery can report - or refuse - what that query would hit. A relation whose table has no
|
|
17
|
+
* model on the datasource is kept apart: a datasource that carries a subset of models on purpose
|
|
18
|
+
* is a normal shape, not a defect.
|
|
19
|
+
*/
|
|
20
|
+
export declare class RelationPairing {
|
|
21
|
+
static inspect(opts: {
|
|
22
|
+
dataSource: string;
|
|
23
|
+
schema: Record<string, unknown>;
|
|
24
|
+
}): IRelationPairingReport;
|
|
25
|
+
/** An inverse one() - no fields of its own - exists only through the relation that pairs it. */
|
|
26
|
+
static isInverseOne(opts: {
|
|
27
|
+
relation: Relation;
|
|
28
|
+
}): boolean;
|
|
29
|
+
/** One line for every relation that points outside the datasource. */
|
|
30
|
+
static describeOutside(opts: {
|
|
31
|
+
outside: Array<string>;
|
|
32
|
+
}): string;
|
|
33
|
+
/** The fix for a relation drizzle cannot pair, in the entities' own names. */
|
|
34
|
+
private static buildUnpairedHint;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=relation-pairing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation-pairing.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/relation-pairing.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,kFAAkF;AAClF,UAAU,iBAAiB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,UAAU,sBAAsB;IAC9B,wFAAwF;IACxF,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnC,+FAA+F;IAC/F,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,sBAAsB;IAiC1B,gGAAgG;IAChG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO;IAI1D,sEAAsE;IACtE,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,MAAM;IAMhE,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAYjC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RelationPairing = void 0;
|
|
4
|
+
const drizzle_orm_1 = require("drizzle-orm");
|
|
5
|
+
/**
|
|
6
|
+
* Pairs every relation the way drizzle does on the first query that includes it, so schema
|
|
7
|
+
* discovery can report - or refuse - what that query would hit. A relation whose table has no
|
|
8
|
+
* model on the datasource is kept apart: a datasource that carries a subset of models on purpose
|
|
9
|
+
* is a normal shape, not a defect.
|
|
10
|
+
*/
|
|
11
|
+
class RelationPairing {
|
|
12
|
+
static inspect(opts) {
|
|
13
|
+
const { dataSource, schema } = opts;
|
|
14
|
+
const { tables, tableNamesMap } = (0, drizzle_orm_1.extractTablesRelationalConfig)(schema, drizzle_orm_1.createTableRelationsHelpers);
|
|
15
|
+
const unpaired = [];
|
|
16
|
+
const outside = [];
|
|
17
|
+
for (const [entity, table] of Object.entries(tables)) {
|
|
18
|
+
for (const [name, relation] of Object.entries(table.relations)) {
|
|
19
|
+
const target = tableNamesMap[(0, drizzle_orm_1.getTableUniqueName)(relation.referencedTable)];
|
|
20
|
+
if (!target) {
|
|
21
|
+
outside.push(`${entity}.${name} -> ${(0, drizzle_orm_1.getTableName)(relation.referencedTable)}`);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
(0, drizzle_orm_1.normalizeRelation)(tables, tableNamesMap, relation);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
29
|
+
unpaired.push({
|
|
30
|
+
relation,
|
|
31
|
+
message: `[${dataSource}][discoverSchema] Cannot resolve relation '${name}' on entity '${entity}': ${reason} | ${RelationPairing.buildUnpairedHint({ entity, target, relation })}`,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return { unpaired, outside };
|
|
37
|
+
}
|
|
38
|
+
/** An inverse one() - no fields of its own - exists only through the relation that pairs it. */
|
|
39
|
+
static isInverseOne(opts) {
|
|
40
|
+
return (0, drizzle_orm_1.is)(opts.relation, drizzle_orm_1.One) && !opts.relation.config;
|
|
41
|
+
}
|
|
42
|
+
/** One line for every relation that points outside the datasource. */
|
|
43
|
+
static describeOutside(opts) {
|
|
44
|
+
const { outside } = opts;
|
|
45
|
+
const count = outside.length === 1 ? '1 relation points' : `${outside.length} relations point`;
|
|
46
|
+
return `${count} to a table outside this datasource: ${outside.join(', ')} | A query that includes one fails here; bind that model to this datasource if you need it`;
|
|
47
|
+
}
|
|
48
|
+
/** The fix for a relation drizzle cannot pair, in the entities' own names. */
|
|
49
|
+
static buildUnpairedHint(opts) {
|
|
50
|
+
const { entity, target, relation } = opts;
|
|
51
|
+
if ((0, drizzle_orm_1.is)(relation, drizzle_orm_1.Many)) {
|
|
52
|
+
return `A many() pairs with the one() on '${target}' named '${relation.relationName}' - a one() is named by its key, or by its relationName if it sets one | Add that one() on '${target}', pointing back to '${entity}', or set relationName here to the name of the one() already there`;
|
|
53
|
+
}
|
|
54
|
+
return `'${target}' holds the foreign key, so this one() pairs with the one relation there that points back to '${entity}' - there must be exactly one | Add that one() on '${target}', or write fields and references on this side`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.RelationPairing = RelationPairing;
|
|
58
|
+
//# sourceMappingURL=relation-pairing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation-pairing.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/relation-pairing.ts"],"names":[],"mappings":";;;AAAA,6CASqB;AAiBrB;;;;;GAKG;AACH,MAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,IAGd;QACC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,2CAA6B,EAC7D,MAAM,EACN,yCAA2B,CAC5B,CAAC;QAEF,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,IAAA,gCAAkB,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,OAAO,IAAA,0BAAY,EAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;oBAC/E,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,IAAA,+BAAiB,EAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACtE,QAAQ,CAAC,IAAI,CAAC;wBACZ,QAAQ;wBACR,OAAO,EAAE,IAAI,UAAU,8CAA8C,IAAI,gBAAgB,MAAM,MAAM,MAAM,MAAM,eAAe,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;qBACnL,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,YAAY,CAAC,IAA4B;QAC9C,OAAO,IAAA,gBAAE,EAAC,IAAI,CAAC,QAAQ,EAAE,iBAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACzD,CAAC;IAED,sEAAsE;IACtE,MAAM,CAAC,eAAe,CAAC,IAAgC;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,kBAAkB,CAAC;QAC/F,OAAO,GAAG,KAAK,wCAAwC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,4FAA4F,CAAC;IACxK,CAAC;IAED,8EAA8E;IACtE,MAAM,CAAC,iBAAiB,CAAC,IAIhC;QACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAE1C,IAAI,IAAA,gBAAE,EAAC,QAAQ,EAAE,kBAAI,CAAC,EAAE,CAAC;YACvB,OAAO,qCAAqC,MAAM,YAAY,QAAQ,CAAC,YAAY,+FAA+F,MAAM,wBAAwB,MAAM,oEAAoE,CAAC;QAC7R,CAAC;QACD,OAAO,IAAI,MAAM,iGAAiG,MAAM,sDAAsD,MAAM,gDAAgD,CAAC;IACvO,CAAC;CACF;AA9DD,0CA8DC"}
|
|
@@ -2,7 +2,7 @@ import type { TIdSchemaType, TSchemaType } from '@venizia/ignis-kernel';
|
|
|
2
2
|
import { AbstractEntity } from '@venizia/ignis-kernel';
|
|
3
3
|
import type { TRelationConfig } from '../repositories/common';
|
|
4
4
|
import type { TValueOrResolver } from '@venizia/ignis-helpers/common';
|
|
5
|
-
import {
|
|
5
|
+
import type { Table } from 'drizzle-orm';
|
|
6
6
|
import type { IEntity, TTableInsert, TTableObject, TTableSchemaWithId } from './common';
|
|
7
7
|
/** Base entity with Drizzle ORM support. Supports static schema or constructor-based schema. */
|
|
8
8
|
export declare class BaseRelationalEntity<Schema extends TTableSchemaWithId = TTableSchemaWithId> extends AbstractEntity implements IEntity<Schema> {
|
|
@@ -11,17 +11,17 @@ export declare class BaseRelationalEntity<Schema extends TTableSchemaWithId = TT
|
|
|
11
11
|
readonly $inferPersist?: TTableInsert<Schema>;
|
|
12
12
|
static TABLE_NAME?: string;
|
|
13
13
|
static AUTHORIZATION_SUBJECT?: string;
|
|
14
|
-
static
|
|
14
|
+
/** A carrier, deliberately widened to `Table`: a factory-built entity knows its table precisely, and a narrower static would reject that precise type. The CONTRACT stays on the instance, typed `Schema`. */
|
|
15
|
+
static schema: Table;
|
|
15
16
|
static relations?: TValueOrResolver<Array<TRelationConfig>>;
|
|
16
|
-
/** Lazy singleton - shared across all BaseRelationalEntity instances. */
|
|
17
|
-
private static _schemaFactory?;
|
|
18
|
-
protected static get schemaFactory(): ReturnType<typeof createSchemaFactory>;
|
|
19
17
|
constructor(opts?: {
|
|
20
18
|
name?: string;
|
|
21
19
|
schema?: Schema;
|
|
22
20
|
});
|
|
23
21
|
/** Maps the schema's id column's Drizzle `dataType` to 'number' (serial/integer) or 'string' (everything else, including bigint/unknown). */
|
|
24
22
|
getIdType(): TIdSchemaType;
|
|
23
|
+
/** The audit keys whose column carries a default or `$onUpdate`; an audit column with neither is left to the client. */
|
|
24
|
+
getServerStampedKeys(): string[];
|
|
25
25
|
getSchema<T = unknown>(opts: {
|
|
26
26
|
type: TSchemaType;
|
|
27
27
|
}): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAe,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAe,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AASxF,gGAAgG;AAChG,qBAAa,oBAAoB,CAAC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtF,SAAQ,cACR,YAAW,OAAO,CAAC,MAAM,CAAC;IAE1B,MAAM,EAAE,MAAM,CAAC;IAGf,SAAiB,UAAU,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnD,SAAiB,aAAa,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtD,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAEtC,8MAA8M;IAC9M,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IACrB,MAAM,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBAEhD,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IASrD,6IAA6I;IACpI,SAAS,IAAI,aAAa;IAInC,wHAAwH;IAC/G,oBAAoB,IAAI,MAAM,EAAE;IASzC,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,CAAC;CAoBvD"}
|
|
@@ -4,12 +4,14 @@ exports.BaseRelationalEntity = void 0;
|
|
|
4
4
|
const ignis_kernel_1 = require("@venizia/ignis-kernel");
|
|
5
5
|
const core_1 = require("@venizia/ignis-helpers/core");
|
|
6
6
|
const drizzle_zod_1 = require("drizzle-zod");
|
|
7
|
+
const drizzle_orm_1 = require("drizzle-orm");
|
|
7
8
|
const common_1 = require("./common");
|
|
9
|
+
const constants_1 = require("./common/constants");
|
|
10
|
+
/** Lazy singleton, shared by every entity. */
|
|
11
|
+
let schemaFactory;
|
|
12
|
+
const getSchemaFactory = () => (schemaFactory ??= (0, drizzle_zod_1.createSchemaFactory)());
|
|
8
13
|
/** Base entity with Drizzle ORM support. Supports static schema or constructor-based schema. */
|
|
9
14
|
class BaseRelationalEntity extends ignis_kernel_1.AbstractEntity {
|
|
10
|
-
static get schemaFactory() {
|
|
11
|
-
return (BaseRelationalEntity._schemaFactory ??= (0, drizzle_zod_1.createSchemaFactory)());
|
|
12
|
-
}
|
|
13
15
|
constructor(opts) {
|
|
14
16
|
const ctor = new.target;
|
|
15
17
|
const name = opts?.name ?? ctor.TABLE_NAME ?? ctor.name;
|
|
@@ -20,8 +22,16 @@ class BaseRelationalEntity extends ignis_kernel_1.AbstractEntity {
|
|
|
20
22
|
getIdType() {
|
|
21
23
|
return (0, common_1.getIdType)({ entity: this.schema }) === 'number' ? 'number' : 'string';
|
|
22
24
|
}
|
|
25
|
+
/** The audit keys whose column carries a default or `$onUpdate`; an audit column with neither is left to the client. */
|
|
26
|
+
getServerStampedKeys() {
|
|
27
|
+
const columns = (0, drizzle_orm_1.getTableColumns)(this.schema);
|
|
28
|
+
return [...constants_1.AuditFields.SCHEME_SET].filter(key => {
|
|
29
|
+
const column = columns[key];
|
|
30
|
+
return column !== undefined && (column.hasDefault || column.onUpdateFn !== undefined);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
23
33
|
getSchema(opts) {
|
|
24
|
-
const factory =
|
|
34
|
+
const factory = getSchemaFactory();
|
|
25
35
|
switch (opts.type) {
|
|
26
36
|
case ignis_kernel_1.SchemaTypes.CREATE: {
|
|
27
37
|
return factory.createInsertSchema(this.schema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":";;;AACA,wDAAoE;AAGpE,sDAAuD;AACvD,6CAAkD;AAElD,qCAAmD;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/models/base.ts"],"names":[],"mappings":";;;AACA,wDAAoE;AAGpE,sDAAuD;AACvD,6CAAkD;AAElD,6CAA8C;AAE9C,qCAAmD;AACnD,kDAAiD;AAEjD,8CAA8C;AAC9C,IAAI,aAAiE,CAAC;AACtE,MAAM,gBAAgB,GAAG,GAA2C,EAAE,CACpE,CAAC,aAAa,KAAK,IAAA,iCAAmB,GAAE,CAAC,CAAC;AAE5C,gGAAgG;AAChG,MAAa,oBACX,SAAQ,6BAAc;IAgBtB,YAAY,IAAyC;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAqC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC;QAExD,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhB,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAK,IAAI,CAAC,MAAiB,CAAC;IACxD,CAAC;IAED,6IAA6I;IACpI,SAAS;QAChB,OAAO,IAAA,kBAAU,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChF,CAAC;IAED,wHAAwH;IAC/G,oBAAoB;QAC3B,MAAM,OAAO,GAAuC,IAAA,6BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjF,OAAO,CAAC,GAAG,uBAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAc,IAA2B;QAChD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAEnC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,KAAK,0BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAM,CAAC;YACtD,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,2CAA2C,IAAI,CAAC,IAAI,aAAa,CAAC,0BAAW,CAAC,MAAM,EAAE,0BAAW,CAAC,MAAM,EAAE,0BAAW,CAAC,MAAM,CAAC,EAAE;iBACzI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA7DD,oDA6DC"}
|