typeorm 0.3.18-dev.7adbc9b → 0.3.18-dev.7e9cead

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.
Files changed (112) hide show
  1. package/browser/driver/DriverUtils.js +2 -5
  2. package/browser/driver/DriverUtils.js.map +1 -1
  3. package/browser/driver/sap/SapDriver.d.ts +4 -0
  4. package/browser/driver/sap/SapDriver.js +2 -1
  5. package/browser/driver/sap/SapDriver.js.map +1 -1
  6. package/browser/driver/sap/SapQueryRunner.js +14 -2
  7. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  8. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +2 -1
  9. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  10. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.d.ts +12 -0
  11. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +3 -0
  12. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -0
  13. package/browser/entity-manager/EntityManager.js +5 -1
  14. package/browser/entity-manager/EntityManager.js.map +1 -1
  15. package/browser/entity-manager/MongoEntityManager.d.ts +5 -1
  16. package/browser/entity-manager/MongoEntityManager.js +7 -0
  17. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  18. package/browser/entity-schema/EntitySchemaOptions.d.ts +4 -0
  19. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  20. package/browser/entity-schema/EntitySchemaTransformer.js +7 -0
  21. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  22. package/browser/error/QueryFailedError.d.ts +3 -3
  23. package/browser/error/QueryFailedError.js.map +1 -1
  24. package/browser/find-options/FindOptionsUtils.js +1 -1
  25. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  26. package/browser/find-options/FindOptionsWhere.d.ts +1 -1
  27. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  28. package/browser/metadata-builder/EntityMetadataBuilder.js +13 -0
  29. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  30. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +0 -1
  31. package/browser/naming-strategy/DefaultNamingStrategy.js +0 -3
  32. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  33. package/browser/naming-strategy/NamingStrategyInterface.d.ts +0 -4
  34. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  35. package/browser/persistence/Subject.js +2 -1
  36. package/browser/persistence/Subject.js.map +1 -1
  37. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +6 -2
  38. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  39. package/browser/platform/PlatformTools.js +2 -0
  40. package/browser/platform/PlatformTools.js.map +1 -1
  41. package/browser/query-builder/QueryBuilder.js +1 -1
  42. package/browser/query-builder/QueryBuilder.js.map +1 -1
  43. package/browser/repository/MongoRepository.d.ts +5 -1
  44. package/browser/repository/MongoRepository.js +6 -0
  45. package/browser/repository/MongoRepository.js.map +1 -1
  46. package/browser/repository/Repository.d.ts +1 -1
  47. package/browser/repository/Repository.js +9 -5
  48. package/browser/repository/Repository.js.map +1 -1
  49. package/commands/CommandUtils.js +6 -1
  50. package/commands/CommandUtils.js.map +1 -1
  51. package/commands/EntityCreateCommand.d.ts +3 -0
  52. package/commands/EntityCreateCommand.js +7 -0
  53. package/commands/EntityCreateCommand.js.map +1 -1
  54. package/commands/MigrationCreateCommand.d.ts +5 -1
  55. package/commands/MigrationCreateCommand.js +6 -1
  56. package/commands/MigrationCreateCommand.js.map +1 -1
  57. package/commands/MigrationGenerateCommand.d.ts +5 -1
  58. package/commands/MigrationGenerateCommand.js +5 -0
  59. package/commands/MigrationGenerateCommand.js.map +1 -1
  60. package/commands/SubscriberCreateCommand.d.ts +3 -0
  61. package/commands/SubscriberCreateCommand.js +7 -0
  62. package/commands/SubscriberCreateCommand.js.map +1 -1
  63. package/driver/DriverUtils.js +2 -5
  64. package/driver/DriverUtils.js.map +1 -1
  65. package/driver/sap/SapDriver.d.ts +4 -0
  66. package/driver/sap/SapDriver.js +3 -2
  67. package/driver/sap/SapDriver.js.map +1 -1
  68. package/driver/sap/SapQueryRunner.js +14 -2
  69. package/driver/sap/SapQueryRunner.js.map +1 -1
  70. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +2 -1
  71. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  72. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.d.ts +12 -0
  73. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +4 -0
  74. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -0
  75. package/entity-manager/EntityManager.js +5 -1
  76. package/entity-manager/EntityManager.js.map +1 -1
  77. package/entity-manager/MongoEntityManager.d.ts +5 -1
  78. package/entity-manager/MongoEntityManager.js +7 -0
  79. package/entity-manager/MongoEntityManager.js.map +1 -1
  80. package/entity-schema/EntitySchemaOptions.d.ts +4 -0
  81. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  82. package/entity-schema/EntitySchemaTransformer.js +7 -0
  83. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  84. package/error/QueryFailedError.d.ts +3 -3
  85. package/error/QueryFailedError.js.map +1 -1
  86. package/find-options/FindOptionsUtils.js +1 -1
  87. package/find-options/FindOptionsUtils.js.map +1 -1
  88. package/find-options/FindOptionsWhere.d.ts +1 -1
  89. package/find-options/FindOptionsWhere.js.map +1 -1
  90. package/metadata-builder/EntityMetadataBuilder.js +13 -0
  91. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  92. package/naming-strategy/DefaultNamingStrategy.d.ts +0 -1
  93. package/naming-strategy/DefaultNamingStrategy.js +0 -3
  94. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  95. package/naming-strategy/NamingStrategyInterface.d.ts +0 -4
  96. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  97. package/package.json +1 -1
  98. package/persistence/Subject.js +2 -1
  99. package/persistence/Subject.js.map +1 -1
  100. package/persistence/subject-builder/ManyToManySubjectBuilder.js +6 -2
  101. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  102. package/platform/PlatformTools.js +2 -0
  103. package/platform/PlatformTools.js.map +1 -1
  104. package/query-builder/QueryBuilder.js +1 -1
  105. package/query-builder/QueryBuilder.js.map +1 -1
  106. package/repository/MongoRepository.d.ts +5 -1
  107. package/repository/MongoRepository.js +6 -0
  108. package/repository/MongoRepository.js.map +1 -1
  109. package/repository/Repository.d.ts +1 -1
  110. package/repository/Repository.js +9 -5
  111. package/repository/Repository.js.map +1 -1
  112. package/typeorm-model-shim.js +61 -53
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/repository/MongoRepository.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AAKzC,wDAAoD;AA0CpD;;GAEG;AACH,MAAa,eAEX,SAAQ,uBAAkB;IAUxB,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAE5E;;;OAGG;IACH,KAAK,CAAC,KAAa,EAAE,UAAkB;QACnC,MAAM,IAAI,2BAAY,CAAC,sCAAsC,CAAC,CAAA;IAClE,CAAC;IAED;;;OAGG;IACH,kBAAkB,CACd,KAAa,EACb,WAAyB;QAEzB,MAAM,IAAI,2BAAY,CAAC,4CAA4C,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,IAAI,CACA,OAG6B;QAE7B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;IAED;;;;OAIG;IACH,YAAY,CACR,OAAsC;QAEtC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,KAAU;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACnE,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,GAAU,EAAE,OAAa;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACrE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACT,OAAoC;QAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CACb,EAAqC;QAErC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,OAA+B;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,KAAU;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACpE,CAAC;IAED;;OAEG;IACH,YAAY,CAAU,KAAsB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,KAAsB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACvE,CAAC;IAED;;OAEG;IACH,SAAS,CACL,QAAyB,EACzB,OAA0B;QAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,QAAQ,EACR,OAAO,CACV,CAAA;IACL,CAAC;IAED;;;OAGG;IACH,eAAe,CACX,QAAyB,EACzB,OAA0B;QAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,QAAQ,EACR,OAAO,CACV,CAAA;IACL,CAAC;IACD;;OAEG;IACH,SAAS,CACL,UAAmC,EACnC,OAA0B;QAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAqB,EAAE,OAAsB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAqB,EAAE,OAAsB;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACrE,CAAC;IAED;;OAEG;IACH,qBAAqB,CACjB,WAAyB,EACzB,OAA8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,WAAW,EACX,OAAO,CACV,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,UAA8B;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,UAAU,CACb,CAAA;IACL,CAAC;IAED;;OAEG;IACH,UAAU,CACN,KAAoB,EACpB,OAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3E,CAAC;IAED;;OAEG;IACH,SAAS,CACL,KAAoB,EACpB,OAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC;IAED;;OAEG;IACH,QAAQ,CACJ,GAAW,EACX,KAAoB,EACpB,OAAiC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,GAAG,EACH,KAAK,EACL,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,mBAAmB,CACf,SAAiB,EACjB,OAAiC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,SAAS,EACT,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACtE,CAAC;IAED;;OAEG;IACH,gBAAgB,CACZ,KAAoB,EACpB,OAAiC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAChC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,KAAK,EACL,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB,CACb,KAAoB,EACpB,WAAmB,EACnB,OAAkC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,KAAK,EACL,WAAW,EACX,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CACZ,KAAoB,EACpB,MAAc,EACd,OAAiC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAChC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,KAAK,EACL,MAAM,EACN,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAClE,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,OAA0B;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CACrC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,OAA2B;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAC1C,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,OAA0B;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACvC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,yBAAyB,CACrB,OAA0B;QAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACzC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,UAAU,CACN,IAAqB,EACrB,OAA0B;QAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC;IAED;;OAEG;IACH,SAAS,CACL,GAAkB,EAClB,OAA0B;QAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACzD,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,OAA4B;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CACrC,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CACF,OAAe,EACf,OAAkC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,UAAU,CACN,KAAoB,EACpB,GAAkB,EAClB,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,KAAK,EACL,GAAG,EACH,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAA0B;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED;;OAEG;IACH,UAAU,CACN,KAAoB,EACpB,MAA8B,EAC9B,OAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,KAAK,EACL,MAAM,EACN,OAAO,CACV,CAAA;IACL,CAAC;IAED;;OAEG;IACH,SAAS,CACL,KAAoB,EACpB,MAA8B,EAC9B,OAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CACzB,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,KAAK,EACL,MAAM,EACN,OAAO,CACV,CAAA;IACL,CAAC;CACJ;AAjeD,0CAieC","file":"MongoRepository.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { Repository } from \"./Repository\"\nimport { MongoFindManyOptions } from \"../find-options/mongodb/MongoFindManyOptions\"\nimport { MongoEntityManager } from \"../entity-manager/MongoEntityManager\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\nimport { TypeORMError } from \"../error/TypeORMError\"\nimport { MongoFindOneOptions } from \"../find-options/mongodb/MongoFindOneOptions\"\nimport { FindOneOptions } from \"../find-options/FindOneOptions\"\n\nimport {\n CreateIndexesOptions,\n ObjectId,\n ReplaceOptions,\n //\n AggregateOptions,\n AggregationCursor,\n AnyBulkWriteOperation,\n BulkWriteOptions,\n BulkWriteResult,\n Collection,\n CollStats,\n CollStatsOptions,\n CommandOperationOptions,\n CountOptions,\n DeleteOptions,\n DeleteResult,\n Document,\n Filter,\n FilterOperators,\n FindCursor,\n FindOneAndDeleteOptions,\n FindOneAndReplaceOptions,\n FindOneAndUpdateOptions,\n IndexDescription,\n InsertManyResult,\n InsertOneOptions,\n InsertOneResult,\n ListIndexesCursor,\n ListIndexesOptions,\n OrderedBulkOperation,\n UnorderedBulkOperation,\n UpdateFilter,\n UpdateOptions,\n UpdateResult,\n} from \"../driver/mongodb/typings\"\nimport { FindManyOptions } from \"../find-options/FindManyOptions\"\n\n/**\n * Repository used to manage mongodb documents of a single entity type.\n */\nexport class MongoRepository<\n Entity extends ObjectLiteral,\n> extends Repository<Entity> {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Entity Manager used by this repository.\n */\n readonly manager: MongoEntityManager\n\n // -------------------------------------------------------------------------\n // Overridden Methods\n // -------------------------------------------------------------------------\n\n /**\n * Raw SQL query execution is not supported by MongoDB.\n * Calling this method will return an error.\n */\n query(query: string, parameters?: any[]): Promise<any> {\n throw new TypeORMError(`Queries aren't supported by MongoDB.`)\n }\n\n /**\n * Using Query Builder with MongoDB is not supported yet.\n * Calling this method will return an error.\n */\n createQueryBuilder(\n alias: string,\n queryRunner?: QueryRunner,\n ): SelectQueryBuilder<Entity> {\n throw new TypeORMError(`Query Builder is not supported by MongoDB.`)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n */\n find(\n options?:\n | FindManyOptions<Entity>\n | Partial<Entity>\n | FilterOperators<Entity>,\n ): Promise<Entity[]> {\n return this.manager.find(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n */\n findBy(where: any): Promise<Entity[]> {\n return this.manager.findBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(\n options?: MongoFindManyOptions<Entity>,\n ): Promise<[Entity[], number]> {\n return this.manager.findAndCount(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(where: any): Promise<[Entity[], number]> {\n return this.manager.findAndCountBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities by ids.\n * Optionally find options can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n findByIds(ids: any[], options?: any): Promise<Entity[]> {\n return this.manager.findByIds(this.metadata.target, ids, options)\n }\n\n /**\n * Finds first entity that matches given find options.\n */\n async findOne(\n options: MongoFindOneOptions<Entity>,\n ): Promise<Entity | null> {\n return this.manager.findOne(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given WHERE conditions.\n */\n async findOneBy(where: any): Promise<Entity | null> {\n return this.manager.findOneBy(this.metadata.target, where)\n }\n\n /**\n * Finds entity that matches given id.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n async findOneById(\n id: string | number | Date | ObjectId,\n ): Promise<Entity | null> {\n return this.manager.findOneById(this.metadata.target, id)\n }\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n async findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.manager.findOneOrFail(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n async findOneByOrFail(where: any): Promise<Entity> {\n return this.manager.findOneByOrFail(this.metadata.target, where)\n }\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n */\n createCursor<T = any>(query?: Filter<Entity>): FindCursor<T> {\n return this.manager.createCursor(this.metadata.target, query)\n }\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n createEntityCursor(query?: Filter<Entity>): FindCursor<Entity> {\n return this.manager.createEntityCursor(this.metadata.target, query)\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n */\n aggregate<R = any>(\n pipeline: ObjectLiteral[],\n options?: AggregateOptions,\n ): AggregationCursor<Entity> {\n return this.manager.aggregate<R>(\n this.metadata.target,\n pipeline,\n options,\n )\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n aggregateEntity(\n pipeline: ObjectLiteral[],\n options?: AggregateOptions,\n ): AggregationCursor<Entity> {\n return this.manager.aggregateEntity(\n this.metadata.target,\n pipeline,\n options,\n )\n }\n /**\n * Perform a bulkWrite operation without a fluent API.\n */\n bulkWrite(\n operations: AnyBulkWriteOperation[],\n options?: BulkWriteOptions,\n ): Promise<BulkWriteResult> {\n return this.manager.bulkWrite(this.metadata.target, operations, options)\n }\n\n /**\n * Count number of matching documents in the db to a query.\n */\n count(query?: ObjectLiteral, options?: CountOptions): Promise<number> {\n return this.manager.count(this.metadata.target, query || {}, options)\n }\n\n /**\n * Count number of matching documents in the db to a query.\n */\n countBy(query?: ObjectLiteral, options?: CountOptions): Promise<number> {\n return this.manager.countBy(this.metadata.target, query, options)\n }\n\n /**\n * Creates an index on the db and collection.\n */\n createCollectionIndex(\n fieldOrSpec: string | any,\n options?: CreateIndexesOptions,\n ): Promise<string> {\n return this.manager.createCollectionIndex(\n this.metadata.target,\n fieldOrSpec,\n options,\n )\n }\n\n /**\n * Creates multiple indexes in the collection, this method is only supported for MongoDB 2.6 or higher.\n * Earlier version of MongoDB will throw a command not supported error.\n * Index specifications are defined at http://docs.mongodb.org/manual/reference/command/createIndexes/.\n */\n createCollectionIndexes(indexSpecs: IndexDescription[]): Promise<string[]> {\n return this.manager.createCollectionIndexes(\n this.metadata.target,\n indexSpecs,\n )\n }\n\n /**\n * Delete multiple documents on MongoDB.\n */\n deleteMany(\n query: ObjectLiteral,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n return this.manager.deleteMany(this.metadata.tableName, query, options)\n }\n\n /**\n * Delete a document on MongoDB.\n */\n deleteOne(\n query: ObjectLiteral,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n return this.manager.deleteOne(this.metadata.tableName, query, options)\n }\n\n /**\n * The distinct command returns returns a list of distinct values for the given key across a collection.\n */\n distinct(\n key: string,\n query: ObjectLiteral,\n options?: CommandOperationOptions,\n ): Promise<any> {\n return this.manager.distinct(\n this.metadata.tableName,\n key,\n query,\n options,\n )\n }\n\n /**\n * Drops an index from this collection.\n */\n dropCollectionIndex(\n indexName: string,\n options?: CommandOperationOptions,\n ): Promise<any> {\n return this.manager.dropCollectionIndex(\n this.metadata.tableName,\n indexName,\n options,\n )\n }\n\n /**\n * Drops all indexes from the collection.\n */\n dropCollectionIndexes(): Promise<any> {\n return this.manager.dropCollectionIndexes(this.metadata.tableName)\n }\n\n /**\n * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndDelete(\n query: ObjectLiteral,\n options?: FindOneAndDeleteOptions,\n ): Promise<Document> {\n return this.manager.findOneAndDelete(\n this.metadata.tableName,\n query,\n options,\n )\n }\n\n /**\n * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndReplace(\n query: ObjectLiteral,\n replacement: Object,\n options?: FindOneAndReplaceOptions,\n ): Promise<Document> {\n return this.manager.findOneAndReplace(\n this.metadata.tableName,\n query,\n replacement,\n options,\n )\n }\n\n /**\n * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndUpdate(\n query: ObjectLiteral,\n update: Object,\n options?: FindOneAndUpdateOptions,\n ): Promise<Document> {\n return this.manager.findOneAndUpdate(\n this.metadata.tableName,\n query,\n update,\n options,\n )\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexes(): Promise<any> {\n return this.manager.collectionIndexes(this.metadata.tableName)\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexExists(indexes: string | string[]): Promise<boolean> {\n return this.manager.collectionIndexExists(\n this.metadata.tableName,\n indexes,\n )\n }\n\n /**\n * Retrieves this collections index info.\n */\n collectionIndexInformation(options?: { full: boolean }): Promise<any> {\n return this.manager.collectionIndexInformation(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Initiate an In order bulk write operation, operations will be serially executed in the order they are added, creating a new operation for each switch in types.\n */\n initializeOrderedBulkOp(options?: BulkWriteOptions): OrderedBulkOperation {\n return this.manager.initializeOrderedBulkOp(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Initiate a Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order.\n */\n initializeUnorderedBulkOp(\n options?: BulkWriteOptions,\n ): UnorderedBulkOperation {\n return this.manager.initializeUnorderedBulkOp(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Inserts an array of documents into MongoDB.\n */\n insertMany(\n docs: ObjectLiteral[],\n options?: BulkWriteOptions,\n ): Promise<InsertManyResult<Document>> {\n return this.manager.insertMany(this.metadata.tableName, docs, options)\n }\n\n /**\n * Inserts a single document into MongoDB.\n */\n insertOne(\n doc: ObjectLiteral,\n options?: InsertOneOptions,\n ): Promise<InsertOneResult> {\n return this.manager.insertOne(this.metadata.tableName, doc, options)\n }\n\n /**\n * Returns if the collection is a capped collection.\n */\n isCapped(): Promise<any> {\n return this.manager.isCapped(this.metadata.tableName)\n }\n\n /**\n * Get the list of all indexes information for the collection.\n */\n listCollectionIndexes(options?: ListIndexesOptions): ListIndexesCursor {\n return this.manager.listCollectionIndexes(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.\n */\n rename(\n newName: string,\n options?: { dropTarget?: boolean },\n ): Promise<Collection<Document>> {\n return this.manager.rename(this.metadata.tableName, newName, options)\n }\n\n /**\n * Replace a document on MongoDB.\n */\n replaceOne(\n query: ObjectLiteral,\n doc: ObjectLiteral,\n options?: ReplaceOptions,\n ): Promise<Document | UpdateResult> {\n return this.manager.replaceOne(\n this.metadata.tableName,\n query,\n doc,\n options,\n )\n }\n\n /**\n * Get all the collection statistics.\n */\n stats(options?: CollStatsOptions): Promise<CollStats> {\n return this.manager.stats(this.metadata.tableName, options)\n }\n\n /**\n * Update multiple documents on MongoDB.\n */\n updateMany(\n query: ObjectLiteral,\n update: UpdateFilter<Document>,\n options?: UpdateOptions,\n ): Promise<Document | UpdateResult> {\n return this.manager.updateMany(\n this.metadata.tableName,\n query,\n update,\n options,\n )\n }\n\n /**\n * Update a single document on MongoDB.\n */\n updateOne(\n query: ObjectLiteral,\n update: UpdateFilter<Document>,\n options?: UpdateOptions,\n ): Promise<Document | UpdateResult> {\n return this.manager.updateOne(\n this.metadata.tableName,\n query,\n update,\n options,\n )\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/repository/MongoRepository.ts"],"names":[],"mappings":"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","file":"MongoRepository.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { Repository } from \"./Repository\"\nimport { MongoFindManyOptions } from \"../find-options/mongodb/MongoFindManyOptions\"\nimport { MongoEntityManager } from \"../entity-manager/MongoEntityManager\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\nimport { TypeORMError } from \"../error/TypeORMError\"\nimport { MongoFindOneOptions } from \"../find-options/mongodb/MongoFindOneOptions\"\nimport { FindOneOptions } from \"../find-options/FindOneOptions\"\n\nimport {\n CreateIndexesOptions,\n ObjectId,\n ReplaceOptions,\n //\n AggregateOptions,\n AggregationCursor,\n AnyBulkWriteOperation,\n BulkWriteOptions,\n BulkWriteResult,\n Collection,\n CollStats,\n CollStatsOptions,\n CommandOperationOptions,\n CountOptions,\n DeleteOptions,\n DeleteResult,\n Document,\n Filter,\n FilterOperators,\n FindCursor,\n FindOneAndDeleteOptions,\n FindOneAndReplaceOptions,\n FindOneAndUpdateOptions,\n IndexDescription,\n InsertManyResult,\n InsertOneOptions,\n InsertOneResult,\n ListIndexesCursor,\n ListIndexesOptions,\n OrderedBulkOperation,\n UnorderedBulkOperation,\n UpdateFilter,\n UpdateOptions,\n UpdateResult,\n CountDocumentsOptions,\n} from \"../driver/mongodb/typings\"\nimport { FindManyOptions } from \"../find-options/FindManyOptions\"\n\n/**\n * Repository used to manage mongodb documents of a single entity type.\n */\nexport class MongoRepository<\n Entity extends ObjectLiteral,\n> extends Repository<Entity> {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Entity Manager used by this repository.\n */\n readonly manager: MongoEntityManager\n\n // -------------------------------------------------------------------------\n // Overridden Methods\n // -------------------------------------------------------------------------\n\n /**\n * Raw SQL query execution is not supported by MongoDB.\n * Calling this method will return an error.\n */\n query(query: string, parameters?: any[]): Promise<any> {\n throw new TypeORMError(`Queries aren't supported by MongoDB.`)\n }\n\n /**\n * Using Query Builder with MongoDB is not supported yet.\n * Calling this method will return an error.\n */\n createQueryBuilder(\n alias: string,\n queryRunner?: QueryRunner,\n ): SelectQueryBuilder<Entity> {\n throw new TypeORMError(`Query Builder is not supported by MongoDB.`)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n */\n find(\n options?:\n | FindManyOptions<Entity>\n | Partial<Entity>\n | FilterOperators<Entity>,\n ): Promise<Entity[]> {\n return this.manager.find(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n */\n findBy(where: any): Promise<Entity[]> {\n return this.manager.findBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(\n options?: MongoFindManyOptions<Entity>,\n ): Promise<[Entity[], number]> {\n return this.manager.findAndCount(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given find options or conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(where: any): Promise<[Entity[], number]> {\n return this.manager.findAndCountBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities by ids.\n * Optionally find options can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n findByIds(ids: any[], options?: any): Promise<Entity[]> {\n return this.manager.findByIds(this.metadata.target, ids, options)\n }\n\n /**\n * Finds first entity that matches given find options.\n */\n async findOne(\n options: MongoFindOneOptions<Entity>,\n ): Promise<Entity | null> {\n return this.manager.findOne(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given WHERE conditions.\n */\n async findOneBy(where: any): Promise<Entity | null> {\n return this.manager.findOneBy(this.metadata.target, where)\n }\n\n /**\n * Finds entity that matches given id.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n async findOneById(\n id: string | number | Date | ObjectId,\n ): Promise<Entity | null> {\n return this.manager.findOneById(this.metadata.target, id)\n }\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n async findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.manager.findOneOrFail(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n async findOneByOrFail(where: any): Promise<Entity> {\n return this.manager.findOneByOrFail(this.metadata.target, where)\n }\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n */\n createCursor<T = any>(query?: Filter<Entity>): FindCursor<T> {\n return this.manager.createCursor(this.metadata.target, query)\n }\n\n /**\n * Creates a cursor for a query that can be used to iterate over results from MongoDB.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n createEntityCursor(query?: Filter<Entity>): FindCursor<Entity> {\n return this.manager.createEntityCursor(this.metadata.target, query)\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n */\n aggregate<R = any>(\n pipeline: ObjectLiteral[],\n options?: AggregateOptions,\n ): AggregationCursor<Entity> {\n return this.manager.aggregate<R>(\n this.metadata.target,\n pipeline,\n options,\n )\n }\n\n /**\n * Execute an aggregation framework pipeline against the collection.\n * This returns modified version of cursor that transforms each result into Entity model.\n */\n aggregateEntity(\n pipeline: ObjectLiteral[],\n options?: AggregateOptions,\n ): AggregationCursor<Entity> {\n return this.manager.aggregateEntity(\n this.metadata.target,\n pipeline,\n options,\n )\n }\n /**\n * Perform a bulkWrite operation without a fluent API.\n */\n bulkWrite(\n operations: AnyBulkWriteOperation[],\n options?: BulkWriteOptions,\n ): Promise<BulkWriteResult> {\n return this.manager.bulkWrite(this.metadata.target, operations, options)\n }\n\n /**\n * Count number of matching documents in the db to a query.\n */\n count(query?: ObjectLiteral, options?: CountOptions): Promise<number> {\n return this.manager.count(this.metadata.target, query || {}, options)\n }\n\n /**\n * Count number of matching documents in the db to a query.\n */\n countDocuments(\n query?: ObjectLiteral,\n options?: CountDocumentsOptions,\n ): Promise<number> {\n return this.manager.countDocuments(\n this.metadata.target,\n query || {},\n options,\n )\n }\n\n /**\n * Count number of matching documents in the db to a query.\n */\n countBy(query?: ObjectLiteral, options?: CountOptions): Promise<number> {\n return this.manager.countBy(this.metadata.target, query, options)\n }\n\n /**\n * Creates an index on the db and collection.\n */\n createCollectionIndex(\n fieldOrSpec: string | any,\n options?: CreateIndexesOptions,\n ): Promise<string> {\n return this.manager.createCollectionIndex(\n this.metadata.target,\n fieldOrSpec,\n options,\n )\n }\n\n /**\n * Creates multiple indexes in the collection, this method is only supported for MongoDB 2.6 or higher.\n * Earlier version of MongoDB will throw a command not supported error.\n * Index specifications are defined at http://docs.mongodb.org/manual/reference/command/createIndexes/.\n */\n createCollectionIndexes(indexSpecs: IndexDescription[]): Promise<string[]> {\n return this.manager.createCollectionIndexes(\n this.metadata.target,\n indexSpecs,\n )\n }\n\n /**\n * Delete multiple documents on MongoDB.\n */\n deleteMany(\n query: ObjectLiteral,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n return this.manager.deleteMany(this.metadata.tableName, query, options)\n }\n\n /**\n * Delete a document on MongoDB.\n */\n deleteOne(\n query: ObjectLiteral,\n options?: DeleteOptions,\n ): Promise<DeleteResult> {\n return this.manager.deleteOne(this.metadata.tableName, query, options)\n }\n\n /**\n * The distinct command returns returns a list of distinct values for the given key across a collection.\n */\n distinct(\n key: string,\n query: ObjectLiteral,\n options?: CommandOperationOptions,\n ): Promise<any> {\n return this.manager.distinct(\n this.metadata.tableName,\n key,\n query,\n options,\n )\n }\n\n /**\n * Drops an index from this collection.\n */\n dropCollectionIndex(\n indexName: string,\n options?: CommandOperationOptions,\n ): Promise<any> {\n return this.manager.dropCollectionIndex(\n this.metadata.tableName,\n indexName,\n options,\n )\n }\n\n /**\n * Drops all indexes from the collection.\n */\n dropCollectionIndexes(): Promise<any> {\n return this.manager.dropCollectionIndexes(this.metadata.tableName)\n }\n\n /**\n * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndDelete(\n query: ObjectLiteral,\n options?: FindOneAndDeleteOptions,\n ): Promise<Document> {\n return this.manager.findOneAndDelete(\n this.metadata.tableName,\n query,\n options,\n )\n }\n\n /**\n * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndReplace(\n query: ObjectLiteral,\n replacement: Object,\n options?: FindOneAndReplaceOptions,\n ): Promise<Document> {\n return this.manager.findOneAndReplace(\n this.metadata.tableName,\n query,\n replacement,\n options,\n )\n }\n\n /**\n * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation.\n */\n findOneAndUpdate(\n query: ObjectLiteral,\n update: Object,\n options?: FindOneAndUpdateOptions,\n ): Promise<Document> {\n return this.manager.findOneAndUpdate(\n this.metadata.tableName,\n query,\n update,\n options,\n )\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexes(): Promise<any> {\n return this.manager.collectionIndexes(this.metadata.tableName)\n }\n\n /**\n * Retrieve all the indexes on the collection.\n */\n collectionIndexExists(indexes: string | string[]): Promise<boolean> {\n return this.manager.collectionIndexExists(\n this.metadata.tableName,\n indexes,\n )\n }\n\n /**\n * Retrieves this collections index info.\n */\n collectionIndexInformation(options?: { full: boolean }): Promise<any> {\n return this.manager.collectionIndexInformation(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Initiate an In order bulk write operation, operations will be serially executed in the order they are added, creating a new operation for each switch in types.\n */\n initializeOrderedBulkOp(options?: BulkWriteOptions): OrderedBulkOperation {\n return this.manager.initializeOrderedBulkOp(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Initiate a Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order.\n */\n initializeUnorderedBulkOp(\n options?: BulkWriteOptions,\n ): UnorderedBulkOperation {\n return this.manager.initializeUnorderedBulkOp(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Inserts an array of documents into MongoDB.\n */\n insertMany(\n docs: ObjectLiteral[],\n options?: BulkWriteOptions,\n ): Promise<InsertManyResult<Document>> {\n return this.manager.insertMany(this.metadata.tableName, docs, options)\n }\n\n /**\n * Inserts a single document into MongoDB.\n */\n insertOne(\n doc: ObjectLiteral,\n options?: InsertOneOptions,\n ): Promise<InsertOneResult> {\n return this.manager.insertOne(this.metadata.tableName, doc, options)\n }\n\n /**\n * Returns if the collection is a capped collection.\n */\n isCapped(): Promise<any> {\n return this.manager.isCapped(this.metadata.tableName)\n }\n\n /**\n * Get the list of all indexes information for the collection.\n */\n listCollectionIndexes(options?: ListIndexesOptions): ListIndexesCursor {\n return this.manager.listCollectionIndexes(\n this.metadata.tableName,\n options,\n )\n }\n\n /**\n * Reindex all indexes on the collection Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.\n */\n rename(\n newName: string,\n options?: { dropTarget?: boolean },\n ): Promise<Collection<Document>> {\n return this.manager.rename(this.metadata.tableName, newName, options)\n }\n\n /**\n * Replace a document on MongoDB.\n */\n replaceOne(\n query: ObjectLiteral,\n doc: ObjectLiteral,\n options?: ReplaceOptions,\n ): Promise<Document | UpdateResult> {\n return this.manager.replaceOne(\n this.metadata.tableName,\n query,\n doc,\n options,\n )\n }\n\n /**\n * Get all the collection statistics.\n */\n stats(options?: CollStatsOptions): Promise<CollStats> {\n return this.manager.stats(this.metadata.tableName, options)\n }\n\n /**\n * Update multiple documents on MongoDB.\n */\n updateMany(\n query: ObjectLiteral,\n update: UpdateFilter<Document>,\n options?: UpdateOptions,\n ): Promise<Document | UpdateResult> {\n return this.manager.updateMany(\n this.metadata.tableName,\n query,\n update,\n options,\n )\n }\n\n /**\n * Update a single document on MongoDB.\n */\n updateOne(\n query: ObjectLiteral,\n update: UpdateFilter<Document>,\n options?: UpdateOptions,\n ): Promise<Document | UpdateResult> {\n return this.manager.updateOne(\n this.metadata.tableName,\n query,\n update,\n options,\n )\n }\n}\n"],"sourceRoot":".."}
@@ -308,5 +308,5 @@ export declare class Repository<Entity extends ObjectLiteral> {
308
308
  /**
309
309
  * Extends repository with provided functions.
310
310
  */
311
- extend<CustomRepository>(custom: CustomRepository & ThisType<this & CustomRepository>): this & CustomRepository;
311
+ extend<CustomRepository>(customs: CustomRepository & ThisType<this & CustomRepository>): this & CustomRepository;
312
312
  }
@@ -303,17 +303,21 @@ class Repository {
303
303
  /**
304
304
  * Extends repository with provided functions.
305
305
  */
306
- extend(custom) {
306
+ extend(customs) {
307
307
  // return {
308
308
  // ...this,
309
309
  // ...custom
310
310
  // };
311
311
  const thisRepo = this.constructor;
312
312
  const { target, manager, queryRunner } = this;
313
- const cls = new (class extends thisRepo {
314
- })(target, manager, queryRunner);
315
- Object.assign(cls, custom);
316
- return cls;
313
+ const ChildClass = class extends thisRepo {
314
+ constructor(target, manager, queryRunner) {
315
+ super(target, manager, queryRunner);
316
+ }
317
+ };
318
+ for (const custom in customs)
319
+ ChildClass.prototype[custom] = customs[custom];
320
+ return new ChildClass(target, manager, queryRunner);
317
321
  }
318
322
  }
319
323
  exports.Repository = Repository;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/repository/Repository.ts"],"names":[],"mappings":"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","file":"Repository.js","sourcesContent":["import { FindManyOptions } from \"../find-options/FindManyOptions\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { FindOneOptions } from \"../find-options/FindOneOptions\"\nimport { DeepPartial } from \"../common/DeepPartial\"\nimport { SaveOptions } from \"./SaveOptions\"\nimport { RemoveOptions } from \"./RemoveOptions\"\nimport { EntityManager } from \"../entity-manager/EntityManager\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\nimport { DeleteResult } from \"../query-builder/result/DeleteResult\"\nimport { UpdateResult } from \"../query-builder/result/UpdateResult\"\nimport { InsertResult } from \"../query-builder/result/InsertResult\"\nimport { QueryDeepPartialEntity } from \"../query-builder/QueryPartialEntity\"\nimport { ObjectId } from \"../driver/mongodb/typings\"\nimport { FindOptionsWhere } from \"../find-options/FindOptionsWhere\"\nimport { UpsertOptions } from \"./UpsertOptions\"\nimport { EntityTarget } from \"../common/EntityTarget\"\nimport { PickKeysByType } from \"../common/PickKeysByType\"\n\n/**\n * Repository is supposed to work with your entity objects. Find entities, insert, update, delete, etc.\n */\nexport class Repository<Entity extends ObjectLiteral> {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Entity target that is managed by this repository.\n * If this repository manages entity from schema,\n * then it returns a name of that schema instead.\n */\n readonly target: EntityTarget<Entity>\n\n /**\n * Entity Manager used by this repository.\n */\n readonly manager: EntityManager\n\n /**\n * Query runner provider used for this repository.\n */\n readonly queryRunner?: QueryRunner\n\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n\n /**\n * Entity metadata of the entity current repository manages.\n */\n get metadata() {\n return this.manager.connection.getMetadata(this.target)\n }\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n target: EntityTarget<Entity>,\n manager: EntityManager,\n queryRunner?: QueryRunner,\n ) {\n this.target = target\n this.manager = manager\n this.queryRunner = queryRunner\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new query builder that can be used to build a SQL query.\n */\n createQueryBuilder(\n alias?: string,\n queryRunner?: QueryRunner,\n ): SelectQueryBuilder<Entity> {\n return this.manager.createQueryBuilder<Entity>(\n this.metadata.target as any,\n alias || this.metadata.targetName,\n queryRunner || this.queryRunner,\n )\n }\n\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n hasId(entity: Entity): boolean {\n return this.manager.hasId(this.metadata.target, entity)\n }\n\n /**\n * Gets entity mixed id.\n */\n getId(entity: Entity): any {\n return this.manager.getId(this.metadata.target, entity)\n }\n\n /**\n * Creates a new entity instance.\n */\n create(): Entity\n\n /**\n * Creates new entities and copies all entity properties from given objects into their new entities.\n * Note that it copies only properties that are present in entity schema.\n */\n create(entityLikeArray: DeepPartial<Entity>[]): Entity[]\n\n /**\n * Creates a new entity instance and copies all entity properties from this object into a new entity.\n * Note that it copies only properties that are present in entity schema.\n */\n create(entityLike: DeepPartial<Entity>): Entity\n\n /**\n * Creates a new entity instance or instances.\n * Can copy properties from the given object into new entities.\n */\n create(\n plainEntityLikeOrPlainEntityLikes?:\n | DeepPartial<Entity>\n | DeepPartial<Entity>[],\n ): Entity | Entity[] {\n return this.manager.create<any>(\n this.metadata.target as any,\n plainEntityLikeOrPlainEntityLikes as any,\n )\n }\n\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n merge(\n mergeIntoEntity: Entity,\n ...entityLikes: DeepPartial<Entity>[]\n ): Entity {\n return this.manager.merge(\n this.metadata.target as any,\n mergeIntoEntity,\n ...entityLikes,\n )\n }\n\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n *\n * Note that given entity-like object must have an entity id / primary key to find entity by.\n * Returns undefined if entity with given id was not found.\n */\n preload(entityLike: DeepPartial<Entity>): Promise<Entity | undefined> {\n return this.manager.preload(this.metadata.target as any, entityLike)\n }\n\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entities: T[],\n options: SaveOptions & { reload: false },\n ): Promise<T[]>\n\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>\n\n /**\n * Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entity: T,\n options: SaveOptions & { reload: false },\n ): Promise<T>\n\n /**\n * Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity>\n\n /**\n * Saves one or many given entities.\n */\n save<T extends DeepPartial<Entity>>(\n entityOrEntities: T | T[],\n options?: SaveOptions,\n ): Promise<T | T[]> {\n return this.manager.save<Entity, T>(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Removes a given entities from the database.\n */\n remove(entities: Entity[], options?: RemoveOptions): Promise<Entity[]>\n\n /**\n * Removes a given entity from the database.\n */\n remove(entity: Entity, options?: RemoveOptions): Promise<Entity>\n\n /**\n * Removes one or many given entities.\n */\n remove(\n entityOrEntities: Entity | Entity[],\n options?: RemoveOptions,\n ): Promise<Entity | Entity[]> {\n return this.manager.remove(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entities: T[],\n options: SaveOptions & { reload: false },\n ): Promise<T[]>\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entity: T,\n options: SaveOptions & { reload: false },\n ): Promise<T>\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity>\n\n /**\n * Records the delete date of one or many given entities.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entityOrEntities: T | T[],\n options?: SaveOptions,\n ): Promise<T | T[]> {\n return this.manager.softRemove<Entity, T>(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entities: T[],\n options: SaveOptions & { reload: false },\n ): Promise<T[]>\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entity: T,\n options: SaveOptions & { reload: false },\n ): Promise<T>\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity>\n\n /**\n * Recovers one or many given entities.\n */\n recover<T extends DeepPartial<Entity>>(\n entityOrEntities: T | T[],\n options?: SaveOptions,\n ): Promise<T | T[]> {\n return this.manager.recover<Entity, T>(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n */\n insert(\n entity:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n ): Promise<InsertResult> {\n return this.manager.insert(this.metadata.target as any, entity)\n }\n\n /**\n * Updates entity partially. Entity can be found by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient UPDATE query.\n * Does not check if entity exist in the database.\n */\n update(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n partialEntity: QueryDeepPartialEntity<Entity>,\n ): Promise<UpdateResult> {\n return this.manager.update(\n this.metadata.target as any,\n criteria as any,\n partialEntity,\n )\n }\n\n /**\n * Inserts a given entity into the database, unless a unique constraint conflicts then updates the entity\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT ... ON CONFLICT DO UPDATE/ON DUPLICATE KEY UPDATE query.\n */\n upsert(\n entityOrEntities:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n conflictPathsOrOptions: string[] | UpsertOptions<Entity>,\n ): Promise<InsertResult> {\n return this.manager.upsert(\n this.metadata.target as any,\n entityOrEntities,\n conflictPathsOrOptions,\n )\n }\n\n /**\n * Deletes entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n */\n delete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n ): Promise<DeleteResult> {\n return this.manager.delete(this.metadata.target as any, criteria as any)\n }\n\n /**\n * Records the delete date of entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n softDelete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.manager.softDelete(\n this.metadata.target as any,\n criteria as any,\n )\n }\n\n /**\n * Restores entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n restore(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.manager.restore(\n this.metadata.target as any,\n criteria as any,\n )\n }\n\n /**\n * Checks whether any entity exists that match given options.\n */\n exist(options?: FindManyOptions<Entity>): Promise<boolean> {\n return this.manager.exists(this.metadata.target, options)\n }\n\n /**\n * Counts entities that match given options.\n * Useful for pagination.\n */\n count(options?: FindManyOptions<Entity>): Promise<number> {\n return this.manager.count(this.metadata.target, options)\n }\n\n /**\n * Counts entities that match given conditions.\n * Useful for pagination.\n */\n countBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number> {\n return this.manager.countBy(this.metadata.target, where)\n }\n\n /**\n * Return the SUM of a column\n */\n sum(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.sum(this.metadata.target, columnName, where)\n }\n\n /**\n * Return the AVG of a column\n */\n average(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.average(this.metadata.target, columnName, where)\n }\n\n /**\n * Return the MIN of a column\n */\n minimum(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.minimum(this.metadata.target, columnName, where)\n }\n\n /**\n * Return the MAX of a column\n */\n maximum(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.maximum(this.metadata.target, columnName, where)\n }\n\n /**\n * Finds entities that match given find options.\n */\n async find(options?: FindManyOptions<Entity>): Promise<Entity[]> {\n return this.manager.find(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given find options.\n */\n async findBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity[]> {\n return this.manager.findBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities that match given find options.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(\n options?: FindManyOptions<Entity>,\n ): Promise<[Entity[], number]> {\n return this.manager.findAndCount(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given WHERE conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<[Entity[], number]> {\n return this.manager.findAndCountBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n async findByIds(ids: any[]): Promise<Entity[]> {\n return this.manager.findByIds(this.metadata.target, ids)\n }\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - returns null.\n */\n async findOne(options: FindOneOptions<Entity>): Promise<Entity | null> {\n return this.manager.findOne(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - returns null.\n */\n async findOneBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity | null> {\n return this.manager.findOneBy(this.metadata.target, where)\n }\n\n /**\n * Finds first entity that matches given id.\n * If entity was not found in the database - returns null.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n async findOneById(\n id: number | string | Date | ObjectId,\n ): Promise<Entity | null> {\n return this.manager.findOneById(this.metadata.target, id)\n }\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n async findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.manager.findOneOrFail(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n async findOneByOrFail(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity> {\n return this.manager.findOneByOrFail(this.metadata.target, where)\n }\n\n /**\n * Executes a raw SQL query and returns a raw database results.\n * Raw query execution is supported only by relational databases (MongoDB is not supported).\n */\n query(query: string, parameters?: any[]): Promise<any> {\n return this.manager.query(query, parameters)\n }\n\n /**\n * Clears all the data from the given table/collection (truncates/drops it).\n *\n * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms.\n * @see https://stackoverflow.com/a/5972738/925151\n */\n clear(): Promise<void> {\n return this.manager.clear(this.metadata.target)\n }\n\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n increment(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.manager.increment(\n this.metadata.target,\n conditions,\n propertyPath,\n value,\n )\n }\n\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n decrement(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.manager.decrement(\n this.metadata.target,\n conditions,\n propertyPath,\n value,\n )\n }\n\n /**\n * Extends repository with provided functions.\n */\n extend<CustomRepository>(\n custom: CustomRepository & ThisType<this & CustomRepository>,\n ): this & CustomRepository {\n // return {\n // ...this,\n // ...custom\n // };\n const thisRepo = this.constructor as new (...args: any[]) => typeof this\n const { target, manager, queryRunner } = this\n const cls = new (class extends thisRepo {})(\n target,\n manager,\n queryRunner,\n )\n Object.assign(cls, custom)\n return cls as any\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/repository/Repository.ts"],"names":[],"mappings":";;;AAmBA;;GAEG;AACH,MAAa,UAAU;IAsBnB,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YACI,MAA4B,EAC5B,OAAsB,EACtB,WAAyB;QAEzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,kBAAkB,CACd,KAAc,EACd,WAAyB;QAEzB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAClC,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EACjC,WAAW,IAAI,IAAI,CAAC,WAAW,CAClC,CAAA;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAmBD;;;OAGG;IACH,MAAM,CACF,iCAE2B;QAE3B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACtB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,iCAAwC,CAC3C,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CACD,eAAuB,EACvB,GAAG,WAAkC;QAErC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CACrB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,eAAe,EACf,GAAG,WAAW,CACjB,CAAA;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,UAA+B;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAa,EAAE,UAAU,CAAC,CAAA;IACxE,CAAC;IAsCD;;OAEG;IACH,IAAI,CACA,gBAAyB,EACzB,OAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACpB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,gBAAuB,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAYD;;OAEG;IACH,MAAM,CACF,gBAAmC,EACnC,OAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACtB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,gBAAuB,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAkCD;;OAEG;IACH,UAAU,CACN,gBAAyB,EACzB,OAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAC1B,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,gBAAuB,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAkCD;;OAEG;IACH,OAAO,CACH,gBAAyB,EACzB,OAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CACvB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,gBAAuB,EACvB,OAAO,CACV,CAAA;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACF,MAEsC;QAEtC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAa,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACF,QAS8B,EAC9B,aAA6C;QAE7C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACtB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,QAAe,EACf,aAAa,CAChB,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CACF,gBAEsC,EACtC,sBAAwD;QAExD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACtB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,gBAAgB,EAChB,sBAAsB,CACzB,CAAA;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACF,QAS8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAa,EAAE,QAAe,CAAC,CAAA;IAC5E,CAAC;IAED;;;;;OAKG;IACH,UAAU,CACN,QAS8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAC1B,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,QAAe,CAClB,CAAA;IACL,CAAC;IAED;;;;;OAKG;IACH,OAAO,CACH,QAS8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CACvB,IAAI,CAAC,QAAQ,CAAC,MAAa,EAC3B,QAAe,CAClB,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAiC;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAiC;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;IAED;;;OAGG;IACH,OAAO,CACH,KAA4D;QAE5D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;IAED;;OAEG;IACH,GAAG,CACC,UAA0C,EAC1C,KAA6D;QAE7D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IACpE,CAAC;IAED;;OAEG;IACH,OAAO,CACH,UAA0C,EAC1C,KAA6D;QAE7D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,OAAO,CACH,UAA0C,EAC1C,KAA6D;QAE7D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,OAAO,CACH,UAA0C,EAC1C,KAA6D;QAE7D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAiC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACR,KAA4D;QAE5D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;IAED;;;;OAIG;IACH,YAAY,CACR,OAAiC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED;;;;OAIG;IACH,cAAc,CACV,KAA4D;QAE5D,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACnE,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CAAC,GAAU;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,OAA+B;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CACX,KAA4D;QAE5D,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9D,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,WAAW,CACb,EAAqC;QAErC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,OAA+B;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CACjB,KAA4D;QAE5D,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAa,EAAE,UAAkB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,SAAS,CACL,UAAoC,EACpC,YAAoB,EACpB,KAAsB;QAEtB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,UAAU,EACV,YAAY,EACZ,KAAK,CACR,CAAA;IACL,CAAC;IAED;;OAEG;IACH,SAAS,CACL,UAAoC,EACpC,YAAoB,EACpB,KAAsB;QAEtB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,UAAU,EACV,YAAY,EACZ,KAAK,CACR,CAAA;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CACF,OAA6D;QAE7D,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,KAAK;QACL,MAAM,QAAQ,GAAQ,IAAI,CAAC,WAAW,CAAA;QACtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;QAC7C,MAAM,UAAU,GAAG,KAAM,SAAQ,QAAQ;YACrC,YACI,MAA4B,EAC5B,OAAsB,EACtB,WAAyB;gBAEzB,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;YACvC,CAAC;SACJ,CAAA;QACD,KAAK,MAAM,MAAM,IAAI,OAAO;YACxB,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAClD,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAQ,CAAA;IAC9D,CAAC;CACJ;AApqBD,gCAoqBC","file":"Repository.js","sourcesContent":["import { FindManyOptions } from \"../find-options/FindManyOptions\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { FindOneOptions } from \"../find-options/FindOneOptions\"\nimport { DeepPartial } from \"../common/DeepPartial\"\nimport { SaveOptions } from \"./SaveOptions\"\nimport { RemoveOptions } from \"./RemoveOptions\"\nimport { EntityManager } from \"../entity-manager/EntityManager\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\nimport { DeleteResult } from \"../query-builder/result/DeleteResult\"\nimport { UpdateResult } from \"../query-builder/result/UpdateResult\"\nimport { InsertResult } from \"../query-builder/result/InsertResult\"\nimport { QueryDeepPartialEntity } from \"../query-builder/QueryPartialEntity\"\nimport { ObjectId } from \"../driver/mongodb/typings\"\nimport { FindOptionsWhere } from \"../find-options/FindOptionsWhere\"\nimport { UpsertOptions } from \"./UpsertOptions\"\nimport { EntityTarget } from \"../common/EntityTarget\"\nimport { PickKeysByType } from \"../common/PickKeysByType\"\n\n/**\n * Repository is supposed to work with your entity objects. Find entities, insert, update, delete, etc.\n */\nexport class Repository<Entity extends ObjectLiteral> {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Entity target that is managed by this repository.\n * If this repository manages entity from schema,\n * then it returns a name of that schema instead.\n */\n readonly target: EntityTarget<Entity>\n\n /**\n * Entity Manager used by this repository.\n */\n readonly manager: EntityManager\n\n /**\n * Query runner provider used for this repository.\n */\n readonly queryRunner?: QueryRunner\n\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n\n /**\n * Entity metadata of the entity current repository manages.\n */\n get metadata() {\n return this.manager.connection.getMetadata(this.target)\n }\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n target: EntityTarget<Entity>,\n manager: EntityManager,\n queryRunner?: QueryRunner,\n ) {\n this.target = target\n this.manager = manager\n this.queryRunner = queryRunner\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new query builder that can be used to build a SQL query.\n */\n createQueryBuilder(\n alias?: string,\n queryRunner?: QueryRunner,\n ): SelectQueryBuilder<Entity> {\n return this.manager.createQueryBuilder<Entity>(\n this.metadata.target as any,\n alias || this.metadata.targetName,\n queryRunner || this.queryRunner,\n )\n }\n\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n hasId(entity: Entity): boolean {\n return this.manager.hasId(this.metadata.target, entity)\n }\n\n /**\n * Gets entity mixed id.\n */\n getId(entity: Entity): any {\n return this.manager.getId(this.metadata.target, entity)\n }\n\n /**\n * Creates a new entity instance.\n */\n create(): Entity\n\n /**\n * Creates new entities and copies all entity properties from given objects into their new entities.\n * Note that it copies only properties that are present in entity schema.\n */\n create(entityLikeArray: DeepPartial<Entity>[]): Entity[]\n\n /**\n * Creates a new entity instance and copies all entity properties from this object into a new entity.\n * Note that it copies only properties that are present in entity schema.\n */\n create(entityLike: DeepPartial<Entity>): Entity\n\n /**\n * Creates a new entity instance or instances.\n * Can copy properties from the given object into new entities.\n */\n create(\n plainEntityLikeOrPlainEntityLikes?:\n | DeepPartial<Entity>\n | DeepPartial<Entity>[],\n ): Entity | Entity[] {\n return this.manager.create<any>(\n this.metadata.target as any,\n plainEntityLikeOrPlainEntityLikes as any,\n )\n }\n\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n merge(\n mergeIntoEntity: Entity,\n ...entityLikes: DeepPartial<Entity>[]\n ): Entity {\n return this.manager.merge(\n this.metadata.target as any,\n mergeIntoEntity,\n ...entityLikes,\n )\n }\n\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n *\n * Note that given entity-like object must have an entity id / primary key to find entity by.\n * Returns undefined if entity with given id was not found.\n */\n preload(entityLike: DeepPartial<Entity>): Promise<Entity | undefined> {\n return this.manager.preload(this.metadata.target as any, entityLike)\n }\n\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entities: T[],\n options: SaveOptions & { reload: false },\n ): Promise<T[]>\n\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>\n\n /**\n * Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entity: T,\n options: SaveOptions & { reload: false },\n ): Promise<T>\n\n /**\n * Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n save<T extends DeepPartial<Entity>>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity>\n\n /**\n * Saves one or many given entities.\n */\n save<T extends DeepPartial<Entity>>(\n entityOrEntities: T | T[],\n options?: SaveOptions,\n ): Promise<T | T[]> {\n return this.manager.save<Entity, T>(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Removes a given entities from the database.\n */\n remove(entities: Entity[], options?: RemoveOptions): Promise<Entity[]>\n\n /**\n * Removes a given entity from the database.\n */\n remove(entity: Entity, options?: RemoveOptions): Promise<Entity>\n\n /**\n * Removes one or many given entities.\n */\n remove(\n entityOrEntities: Entity | Entity[],\n options?: RemoveOptions,\n ): Promise<Entity | Entity[]> {\n return this.manager.remove(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entities: T[],\n options: SaveOptions & { reload: false },\n ): Promise<T[]>\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entity: T,\n options: SaveOptions & { reload: false },\n ): Promise<T>\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity>\n\n /**\n * Records the delete date of one or many given entities.\n */\n softRemove<T extends DeepPartial<Entity>>(\n entityOrEntities: T | T[],\n options?: SaveOptions,\n ): Promise<T | T[]> {\n return this.manager.softRemove<Entity, T>(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entities: T[],\n options: SaveOptions & { reload: false },\n ): Promise<T[]>\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entity: T,\n options: SaveOptions & { reload: false },\n ): Promise<T>\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends DeepPartial<Entity>>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity>\n\n /**\n * Recovers one or many given entities.\n */\n recover<T extends DeepPartial<Entity>>(\n entityOrEntities: T | T[],\n options?: SaveOptions,\n ): Promise<T | T[]> {\n return this.manager.recover<Entity, T>(\n this.metadata.target as any,\n entityOrEntities as any,\n options,\n )\n }\n\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n */\n insert(\n entity:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n ): Promise<InsertResult> {\n return this.manager.insert(this.metadata.target as any, entity)\n }\n\n /**\n * Updates entity partially. Entity can be found by a given conditions.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient UPDATE query.\n * Does not check if entity exist in the database.\n */\n update(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n partialEntity: QueryDeepPartialEntity<Entity>,\n ): Promise<UpdateResult> {\n return this.manager.update(\n this.metadata.target as any,\n criteria as any,\n partialEntity,\n )\n }\n\n /**\n * Inserts a given entity into the database, unless a unique constraint conflicts then updates the entity\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT ... ON CONFLICT DO UPDATE/ON DUPLICATE KEY UPDATE query.\n */\n upsert(\n entityOrEntities:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n conflictPathsOrOptions: string[] | UpsertOptions<Entity>,\n ): Promise<InsertResult> {\n return this.manager.upsert(\n this.metadata.target as any,\n entityOrEntities,\n conflictPathsOrOptions,\n )\n }\n\n /**\n * Deletes entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient DELETE query.\n * Does not check if entity exist in the database.\n */\n delete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n ): Promise<DeleteResult> {\n return this.manager.delete(this.metadata.target as any, criteria as any)\n }\n\n /**\n * Records the delete date of entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n softDelete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.manager.softDelete(\n this.metadata.target as any,\n criteria as any,\n )\n }\n\n /**\n * Restores entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n restore(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n | ObjectId\n | ObjectId[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.manager.restore(\n this.metadata.target as any,\n criteria as any,\n )\n }\n\n /**\n * Checks whether any entity exists that match given options.\n */\n exist(options?: FindManyOptions<Entity>): Promise<boolean> {\n return this.manager.exists(this.metadata.target, options)\n }\n\n /**\n * Counts entities that match given options.\n * Useful for pagination.\n */\n count(options?: FindManyOptions<Entity>): Promise<number> {\n return this.manager.count(this.metadata.target, options)\n }\n\n /**\n * Counts entities that match given conditions.\n * Useful for pagination.\n */\n countBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number> {\n return this.manager.countBy(this.metadata.target, where)\n }\n\n /**\n * Return the SUM of a column\n */\n sum(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.sum(this.metadata.target, columnName, where)\n }\n\n /**\n * Return the AVG of a column\n */\n average(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.average(this.metadata.target, columnName, where)\n }\n\n /**\n * Return the MIN of a column\n */\n minimum(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.minimum(this.metadata.target, columnName, where)\n }\n\n /**\n * Return the MAX of a column\n */\n maximum(\n columnName: PickKeysByType<Entity, number>,\n where?: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number | null> {\n return this.manager.maximum(this.metadata.target, columnName, where)\n }\n\n /**\n * Finds entities that match given find options.\n */\n async find(options?: FindManyOptions<Entity>): Promise<Entity[]> {\n return this.manager.find(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given find options.\n */\n async findBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity[]> {\n return this.manager.findBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities that match given find options.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(\n options?: FindManyOptions<Entity>,\n ): Promise<[Entity[], number]> {\n return this.manager.findAndCount(this.metadata.target, options)\n }\n\n /**\n * Finds entities that match given WHERE conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<[Entity[], number]> {\n return this.manager.findAndCountBy(this.metadata.target, where)\n }\n\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n async findByIds(ids: any[]): Promise<Entity[]> {\n return this.manager.findByIds(this.metadata.target, ids)\n }\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - returns null.\n */\n async findOne(options: FindOneOptions<Entity>): Promise<Entity | null> {\n return this.manager.findOne(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - returns null.\n */\n async findOneBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity | null> {\n return this.manager.findOneBy(this.metadata.target, where)\n }\n\n /**\n * Finds first entity that matches given id.\n * If entity was not found in the database - returns null.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n async findOneById(\n id: number | string | Date | ObjectId,\n ): Promise<Entity | null> {\n return this.manager.findOneById(this.metadata.target, id)\n }\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n async findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.manager.findOneOrFail(this.metadata.target, options)\n }\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n async findOneByOrFail(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity> {\n return this.manager.findOneByOrFail(this.metadata.target, where)\n }\n\n /**\n * Executes a raw SQL query and returns a raw database results.\n * Raw query execution is supported only by relational databases (MongoDB is not supported).\n */\n query(query: string, parameters?: any[]): Promise<any> {\n return this.manager.query(query, parameters)\n }\n\n /**\n * Clears all the data from the given table/collection (truncates/drops it).\n *\n * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms.\n * @see https://stackoverflow.com/a/5972738/925151\n */\n clear(): Promise<void> {\n return this.manager.clear(this.metadata.target)\n }\n\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n increment(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.manager.increment(\n this.metadata.target,\n conditions,\n propertyPath,\n value,\n )\n }\n\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n decrement(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.manager.decrement(\n this.metadata.target,\n conditions,\n propertyPath,\n value,\n )\n }\n\n /**\n * Extends repository with provided functions.\n */\n extend<CustomRepository>(\n customs: CustomRepository & ThisType<this & CustomRepository>,\n ): this & CustomRepository {\n // return {\n // ...this,\n // ...custom\n // };\n const thisRepo: any = this.constructor\n const { target, manager, queryRunner } = this\n const ChildClass = class extends thisRepo {\n constructor(\n target: EntityTarget<Entity>,\n manager: EntityManager,\n queryRunner?: QueryRunner,\n ) {\n super(target, manager, queryRunner)\n }\n }\n for (const custom in customs)\n ChildClass.prototype[custom] = customs[custom]\n return new ChildClass(target, manager, queryRunner) as any\n }\n}\n"],"sourceRoot":".."}
@@ -20,268 +20,276 @@
20
20
  // }
21
21
  // }
22
22
 
23
+ function noop() {}
24
+
25
+ /* export */
26
+ class BaseEntity {}
27
+
28
+ exports.BaseEntity = BaseEntity
23
29
 
24
30
  /* export */ function Column() {
25
- return function () {};
31
+ return noop
26
32
  }
27
33
  exports.Column = Column;
28
34
 
29
35
  /* export */ function CreateDateColumn() {
30
- return function () {};
36
+ return noop
31
37
  }
32
38
  exports.CreateDateColumn = CreateDateColumn;
33
39
 
34
40
  /* export */ function DeleteDateColumn() {
35
- return function () {};
41
+ return noop
36
42
  }
37
43
  exports.DeleteDateColumn = DeleteDateColumn;
38
44
 
39
45
  /* export */ function PrimaryGeneratedColumn() {
40
- return function () {};
46
+ return noop
41
47
  }
42
48
  exports.PrimaryGeneratedColumn = PrimaryGeneratedColumn;
43
49
 
44
50
  /* export */ function PrimaryColumn() {
45
- return function () {};
51
+ return noop
46
52
  }
47
53
  exports.PrimaryColumn = PrimaryColumn;
48
54
 
49
55
  /* export */ function UpdateDateColumn() {
50
- return function () {};
56
+ return noop
51
57
  }
52
58
  exports.UpdateDateColumn = UpdateDateColumn;
53
59
 
54
60
  /* export */ function VersionColumn() {
55
- return function () {};
61
+ return noop
56
62
  }
57
63
  exports.VersionColumn = VersionColumn;
58
64
 
59
65
  /* export */ function ViewColumn() {
60
- return function () {};
66
+ return noop
61
67
  }
62
68
  exports.ViewColumn = ViewColumn;
63
69
 
64
70
  /* export */ function ObjectIdColumn() {
65
- return function () {};
71
+ return noop
66
72
  }
67
73
  exports.ObjectIdColumn = ObjectIdColumn;
68
74
 
69
75
  /* export */ function AfterInsert() {
70
- return function () {};
76
+ return noop
71
77
  }
72
78
  exports.AfterInsert = AfterInsert;
73
79
 
74
80
  /* export */ function AfterLoad() {
75
- return function () {};
81
+ return noop
76
82
  }
77
83
  exports.AfterLoad = AfterLoad;
78
84
 
79
85
  /* export */ function AfterSoftRemove() {
80
- return function () {};
86
+ return noop
81
87
  }
82
88
  exports.AfterSoftRemove = AfterSoftRemove;
83
89
 
84
90
  /* export */ function AfterRecover() {
85
- return function () {};
91
+ return noop
86
92
  }
87
93
  exports.AfterRecover = AfterRecover;
88
94
 
89
95
  /* export */ function AfterRemove() {
90
- return function () {};
96
+ return noop
91
97
  }
92
98
  exports.AfterRemove = AfterRemove;
93
99
 
94
100
  /* export */ function AfterUpdate() {
95
- return function () {};
101
+ return noop
96
102
  }
97
103
  exports.AfterUpdate = AfterUpdate;
98
104
 
99
105
  /* export */ function BeforeInsert() {
100
- return function () {};
106
+ return noop
101
107
  }
102
108
  exports.BeforeInsert = BeforeInsert;
103
109
 
104
110
  /* export */ function BeforeSoftRemove() {
105
- return function () {};
111
+ return noop
106
112
  }
107
113
  exports.BeforeSoftRemove = BeforeSoftRemove;
108
114
 
109
115
  /* export */ function BeforeRecover() {
110
- return function () {};
116
+ return noop
111
117
  }
112
118
  exports.BeforeRecover = BeforeRecover;
113
119
 
114
120
  /* export */ function BeforeRemove() {
115
- return function () {};
121
+ return noop
116
122
  }
117
123
  exports.BeforeRemove = BeforeRemove;
118
124
 
119
125
  /* export */ function BeforeUpdate() {
120
- return function () {};
126
+ return noop
121
127
  }
122
128
  exports.BeforeUpdate = BeforeUpdate;
123
129
 
124
130
  /* export */ function EventSubscriber() {
125
- return function () {};
131
+ return noop
126
132
  }
127
133
  exports.EventSubscriber = EventSubscriber;
128
134
 
129
135
  /* export */ function ColumnOptions() {
130
- return function () {};
136
+ return noop
131
137
  }
132
138
  exports.ColumnOptions = ColumnOptions;
133
139
 
134
140
  /* export */ function IndexOptions() {
135
- return function () {};
141
+ return noop
136
142
  }
137
143
  exports.IndexOptions = IndexOptions;
138
144
 
139
145
  /* export */ function JoinColumnOptions() {
140
- return function () {};
146
+ return noop
141
147
  }
142
148
  exports.JoinColumnOptions = JoinColumnOptions;
143
149
 
144
150
  /* export */ function JoinTableOptions() {
145
- return function () {};
151
+ return noop
146
152
  }
147
153
  exports.JoinTableOptions = JoinTableOptions;
148
154
 
149
155
  /* export */ function RelationOptions() {
150
- return function () {};
156
+ return noop
151
157
  }
152
158
  exports.RelationOptions = RelationOptions;
153
159
 
154
160
  /* export */ function EntityOptions() {
155
- return function () {};
161
+ return noop
156
162
  }
157
163
  exports.EntityOptions = EntityOptions;
158
164
 
159
165
  /* export */ function ValueTransformer() {
160
- return function () {};
166
+ return noop
161
167
  }
162
168
  exports.ValueTransformer = ValueTransformer;
163
169
 
164
170
  /* export */ function JoinColumn() {
165
- return function () {};
171
+ return noop
166
172
  }
167
173
  exports.JoinColumn = JoinColumn;
168
174
 
169
175
  /* export */ function JoinTable() {
170
- return function () {};
176
+ return noop
171
177
  }
172
178
  exports.JoinTable = JoinTable;
173
179
 
174
180
  /* export */ function ManyToMany() {
175
- return function () {};
181
+ return noop
176
182
  }
177
183
  exports.ManyToMany = ManyToMany;
178
184
 
179
185
  /* export */ function ManyToOne() {
180
- return function () {};
186
+ return noop
181
187
  }
182
188
  exports.ManyToOne = ManyToOne;
183
189
 
184
190
  /* export */ function OneToMany() {
185
- return function () {};
191
+ return noop
186
192
  }
187
193
  exports.OneToMany = OneToMany;
188
194
 
189
195
  /* export */ function OneToOne() {
190
- return function () {};
196
+ return noop
191
197
  }
192
198
  exports.OneToOne = OneToOne;
193
199
 
194
200
  /* export */ function RelationCount() {
195
- return function () {};
201
+ return noop
196
202
  }
197
203
  exports.RelationCount = RelationCount;
198
204
 
199
205
  /* export */ function RelationId() {
200
- return function () {};
206
+ return noop
201
207
  }
202
208
  exports.RelationId = RelationId;
203
209
 
204
210
  /* export */ function Entity() {
205
- return function () {};
211
+ return noop
206
212
  }
207
213
  exports.Entity = Entity;
208
214
 
209
215
  /* export */ function ChildEntity() {
210
- return function () {};
216
+ return noop
211
217
  }
212
218
  exports.ChildEntity = ChildEntity;
213
219
 
214
220
  /* export */ function TableInheritance() {
215
- return function () {};
221
+ return noop
216
222
  }
217
223
  exports.TableInheritance = TableInheritance;
218
224
 
219
225
  /* export */ function ViewEntity() {
220
- return function () {};
226
+ return noop
221
227
  }
222
228
  exports.ViewEntity = ViewEntity;
223
229
 
224
230
  /* export */ function Transaction() {
225
- return function () {};
231
+ return noop
226
232
  }
227
233
  exports.Transaction = Transaction;
228
234
 
229
235
  /* export */ function TransactionManager() {
230
- return function () {};
236
+ return noop
231
237
  }
232
238
  exports.TransactionManager = TransactionManager;
233
239
 
234
240
  /* export */ function TransactionRepository() {
235
- return function () {};
241
+ return noop
236
242
  }
237
243
  exports.TransactionRepository = TransactionRepository;
238
244
 
239
245
  /* export */ function TreeLevelColumn() {
240
- return function () {};
246
+ return noop
241
247
  }
242
248
  exports.TreeLevelColumn = TreeLevelColumn;
243
249
 
244
250
  /* export */ function TreeParent() {
245
- return function () {};
251
+ return noop
246
252
  }
247
253
  exports.TreeParent = TreeParent;
248
254
 
249
255
  /* export */ function TreeChildren() {
250
- return function () {};
256
+ return noop
251
257
  }
252
258
  exports.TreeChildren = TreeChildren;
253
259
 
254
260
  /* export */ function Tree() {
255
- return function () {};
261
+ return noop
256
262
  }
257
263
  exports.Tree = Tree;
258
264
 
259
265
  /* export */ function Index() {
260
- return function () {};
266
+ return noop
261
267
  }
262
268
  exports.Index = Index;
263
269
 
264
270
  /* export */ function Unique() {
265
- return function () {};
271
+ return noop
266
272
  }
267
273
  exports.Unique = Unique;
268
274
 
269
275
  /* export */ function Check() {
270
- return function () {};
276
+ return noop
271
277
  }
272
278
  exports.Check = Check;
273
279
 
274
280
  /* export */ function Exclusion() {
275
- return function () {};
281
+ return noop
276
282
  }
277
283
  exports.Exclusion = Exclusion;
278
284
 
279
285
  /* export */ function Generated() {
280
- return function () {};
286
+ return noop
281
287
  }
282
288
  exports.Generated = Generated;
283
289
 
284
290
  /* export */ function EntityRepository() {
285
- return function () {};
291
+ return noop
286
292
  }
287
293
  exports.EntityRepository = EntityRepository;
294
+
295
+