@simplysm/sd-cli 10.0.22 → 10.0.23

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 (239) hide show
  1. package/dist/SdTsIncrementalBuilder.d.ts +1 -1
  2. package/dist/SdTsIncrementalBuilder.js.map +1 -1
  3. package/dist/SdTsIncrementalBuilder.mjs +39 -16
  4. package/package.json +4 -4
  5. package/src/SdTsIncrementalBuilder.ts +29 -4
  6. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.d.ts +0 -20
  7. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.js.map +0 -1
  8. package/dist/sd-core-common/src/decorators/NotifyPropertyChange.mjs +0 -12
  9. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.d.ts +0 -43
  10. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.js.map +0 -1
  11. package/dist/sd-core-common/src/decorators/PropertyGetSetDecoratorBase.mjs +0 -54
  12. package/dist/sd-core-common/src/decorators/PropertyValidate.d.ts +0 -16
  13. package/dist/sd-core-common/src/decorators/PropertyValidate.js.map +0 -1
  14. package/dist/sd-core-common/src/decorators/PropertyValidate.mjs +0 -26
  15. package/dist/sd-core-common/src/decorators/decorator-return-types.d.ts +0 -14
  16. package/dist/sd-core-common/src/decorators/decorator-return-types.js.map +0 -1
  17. package/dist/sd-core-common/src/decorators/decorator-return-types.mjs +0 -2
  18. package/dist/sd-core-common/src/errors/ArgumentError.d.ts +0 -10
  19. package/dist/sd-core-common/src/errors/ArgumentError.js.map +0 -1
  20. package/dist/sd-core-common/src/errors/ArgumentError.mjs +0 -13
  21. package/dist/sd-core-common/src/errors/NeverEntryError.d.ts +0 -10
  22. package/dist/sd-core-common/src/errors/NeverEntryError.js.map +0 -1
  23. package/dist/sd-core-common/src/errors/NeverEntryError.mjs +0 -13
  24. package/dist/sd-core-common/src/errors/NotImplementError.d.ts +0 -10
  25. package/dist/sd-core-common/src/errors/NotImplementError.js.map +0 -1
  26. package/dist/sd-core-common/src/errors/NotImplementError.mjs +0 -13
  27. package/dist/sd-core-common/src/errors/SdError.d.ts +0 -23
  28. package/dist/sd-core-common/src/errors/SdError.js.map +0 -1
  29. package/dist/sd-core-common/src/errors/SdError.mjs +0 -40
  30. package/dist/sd-core-common/src/errors/TimeoutError.d.ts +0 -11
  31. package/dist/sd-core-common/src/errors/TimeoutError.js.map +0 -1
  32. package/dist/sd-core-common/src/errors/TimeoutError.mjs +0 -16
  33. package/dist/sd-core-common/src/extensions/ArrayExtension.d.ts +0 -147
  34. package/dist/sd-core-common/src/extensions/ArrayExtension.js.map +0 -1
  35. package/dist/sd-core-common/src/extensions/ArrayExtension.mjs +0 -448
  36. package/dist/sd-core-common/src/extensions/MapExtension.d.ts +0 -4
  37. package/dist/sd-core-common/src/extensions/MapExtension.js.map +0 -1
  38. package/dist/sd-core-common/src/extensions/MapExtension.mjs +0 -15
  39. package/dist/sd-core-common/src/extensions/SetExtension.d.ts +0 -3
  40. package/dist/sd-core-common/src/extensions/SetExtension.js.map +0 -1
  41. package/dist/sd-core-common/src/extensions/SetExtension.mjs +0 -10
  42. package/dist/sd-core-common/src/index.d.ts +0 -32
  43. package/dist/sd-core-common/src/index.js.map +0 -1
  44. package/dist/sd-core-common/src/index.mjs +0 -33
  45. package/dist/sd-core-common/src/types/DateOnly.d.ts +0 -135
  46. package/dist/sd-core-common/src/types/DateOnly.js.map +0 -1
  47. package/dist/sd-core-common/src/types/DateOnly.mjs +0 -220
  48. package/dist/sd-core-common/src/types/DateTime.d.ts +0 -42
  49. package/dist/sd-core-common/src/types/DateTime.js.map +0 -1
  50. package/dist/sd-core-common/src/types/DateTime.mjs +0 -156
  51. package/dist/sd-core-common/src/types/DeepPartial.d.ts +0 -3
  52. package/dist/sd-core-common/src/types/DeepPartial.js.map +0 -1
  53. package/dist/sd-core-common/src/types/DeepPartial.mjs +0 -2
  54. package/dist/sd-core-common/src/types/ObjectSet.d.ts +0 -4
  55. package/dist/sd-core-common/src/types/ObjectSet.js.map +0 -1
  56. package/dist/sd-core-common/src/types/ObjectSet.mjs +0 -18
  57. package/dist/sd-core-common/src/types/Time.d.ts +0 -27
  58. package/dist/sd-core-common/src/types/Time.js.map +0 -1
  59. package/dist/sd-core-common/src/types/Time.mjs +0 -108
  60. package/dist/sd-core-common/src/types/Type.d.ts +0 -7
  61. package/dist/sd-core-common/src/types/Type.js.map +0 -1
  62. package/dist/sd-core-common/src/types/Type.mjs +0 -2
  63. package/dist/sd-core-common/src/types/UnwrappedType.d.ts +0 -1
  64. package/dist/sd-core-common/src/types/UnwrappedType.js.map +0 -1
  65. package/dist/sd-core-common/src/types/UnwrappedType.mjs +0 -2
  66. package/dist/sd-core-common/src/types/Uuid.d.ts +0 -8
  67. package/dist/sd-core-common/src/types/Uuid.js.map +0 -1
  68. package/dist/sd-core-common/src/types/Uuid.mjs +0 -26
  69. package/dist/sd-core-common/src/types/WrappedType.d.ts +0 -1
  70. package/dist/sd-core-common/src/types/WrappedType.js.map +0 -1
  71. package/dist/sd-core-common/src/types/WrappedType.mjs +0 -2
  72. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.d.ts +0 -12
  73. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.js.map +0 -1
  74. package/dist/sd-core-common/src/utils/DateTimeFormatUtil.mjs +0 -67
  75. package/dist/sd-core-common/src/utils/FunctionQueue.d.ts +0 -8
  76. package/dist/sd-core-common/src/utils/FunctionQueue.js.map +0 -1
  77. package/dist/sd-core-common/src/utils/FunctionQueue.mjs +0 -46
  78. package/dist/sd-core-common/src/utils/FunctionUtil.d.ts +0 -6
  79. package/dist/sd-core-common/src/utils/FunctionUtil.js.map +0 -1
  80. package/dist/sd-core-common/src/utils/FunctionUtil.mjs +0 -31
  81. package/dist/sd-core-common/src/utils/JsonConvert.d.ts +0 -8
  82. package/dist/sd-core-common/src/utils/JsonConvert.js.map +0 -1
  83. package/dist/sd-core-common/src/utils/JsonConvert.mjs +0 -78
  84. package/dist/sd-core-common/src/utils/MathUtil.d.ts +0 -3
  85. package/dist/sd-core-common/src/utils/MathUtil.js.map +0 -1
  86. package/dist/sd-core-common/src/utils/MathUtil.mjs +0 -6
  87. package/dist/sd-core-common/src/utils/NumberUtil.d.ts +0 -6
  88. package/dist/sd-core-common/src/utils/NumberUtil.js.map +0 -1
  89. package/dist/sd-core-common/src/utils/NumberUtil.mjs +0 -32
  90. package/dist/sd-core-common/src/utils/ObjectUtil.d.ts +0 -80
  91. package/dist/sd-core-common/src/utils/ObjectUtil.js.map +0 -1
  92. package/dist/sd-core-common/src/utils/ObjectUtil.mjs +0 -452
  93. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.d.ts +0 -6
  94. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.js.map +0 -1
  95. package/dist/sd-core-common/src/utils/SdSyncEventEmitter.mjs +0 -27
  96. package/dist/sd-core-common/src/utils/StringUtil.d.ts +0 -8
  97. package/dist/sd-core-common/src/utils/StringUtil.js.map +0 -1
  98. package/dist/sd-core-common/src/utils/StringUtil.mjs +0 -77
  99. package/dist/sd-core-common/src/utils/Wait.d.ts +0 -4
  100. package/dist/sd-core-common/src/utils/Wait.js.map +0 -1
  101. package/dist/sd-core-common/src/utils/Wait.mjs +0 -23
  102. package/dist/sd-core-node/src/index.d.ts +0 -6
  103. package/dist/sd-core-node/src/index.js.map +0 -1
  104. package/dist/sd-core-node/src/index.mjs +0 -7
  105. package/dist/sd-core-node/src/utils/FsUtil.d.ts +0 -44
  106. package/dist/sd-core-node/src/utils/FsUtil.js.map +0 -1
  107. package/dist/sd-core-node/src/utils/FsUtil.mjs +0 -493
  108. package/dist/sd-core-node/src/utils/Logger.d.ts +0 -91
  109. package/dist/sd-core-node/src/utils/Logger.js.map +0 -1
  110. package/dist/sd-core-node/src/utils/Logger.mjs +0 -185
  111. package/dist/sd-core-node/src/utils/PathUtil.d.ts +0 -6
  112. package/dist/sd-core-node/src/utils/PathUtil.js.map +0 -1
  113. package/dist/sd-core-node/src/utils/PathUtil.mjs +0 -24
  114. package/dist/sd-core-node/src/utils/SdFsWatcher.d.ts +0 -15
  115. package/dist/sd-core-node/src/utils/SdFsWatcher.js.map +0 -1
  116. package/dist/sd-core-node/src/utils/SdFsWatcher.mjs +0 -43
  117. package/dist/sd-core-node/src/utils/SdProcess.d.ts +0 -5
  118. package/dist/sd-core-node/src/utils/SdProcess.js.map +0 -1
  119. package/dist/sd-core-node/src/utils/SdProcess.mjs +0 -36
  120. package/dist/sd-orm-common/src/CaseQueryHelper.d.ts +0 -12
  121. package/dist/sd-orm-common/src/CaseQueryHelper.js.map +0 -1
  122. package/dist/sd-orm-common/src/CaseQueryHelper.mjs +0 -19
  123. package/dist/sd-orm-common/src/CaseWhenQueryHelper.d.ts +0 -12
  124. package/dist/sd-orm-common/src/CaseWhenQueryHelper.js.map +0 -1
  125. package/dist/sd-orm-common/src/CaseWhenQueryHelper.mjs +0 -20
  126. package/dist/sd-orm-common/src/DbContext.d.ts +0 -81
  127. package/dist/sd-orm-common/src/DbContext.js.map +0 -1
  128. package/dist/sd-orm-common/src/DbContext.mjs +0 -635
  129. package/dist/sd-orm-common/src/IDbConnection.d.ts +0 -15
  130. package/dist/sd-orm-common/src/IDbConnection.js.map +0 -1
  131. package/dist/sd-orm-common/src/IDbConnection.mjs +0 -2
  132. package/dist/sd-orm-common/src/IDbContextExecutor.d.ts +0 -17
  133. package/dist/sd-orm-common/src/IDbContextExecutor.js.map +0 -1
  134. package/dist/sd-orm-common/src/IDbContextExecutor.mjs +0 -2
  135. package/dist/sd-orm-common/src/IDbMigration.d.ts +0 -4
  136. package/dist/sd-orm-common/src/IDbMigration.js.map +0 -1
  137. package/dist/sd-orm-common/src/IDbMigration.mjs +0 -2
  138. package/dist/sd-orm-common/src/QueryBuilder.d.ts +0 -48
  139. package/dist/sd-orm-common/src/QueryBuilder.js.map +0 -1
  140. package/dist/sd-orm-common/src/QueryBuilder.mjs +0 -1022
  141. package/dist/sd-orm-common/src/QueryHelper.d.ts +0 -75
  142. package/dist/sd-orm-common/src/QueryHelper.js.map +0 -1
  143. package/dist/sd-orm-common/src/QueryHelper.mjs +0 -627
  144. package/dist/sd-orm-common/src/QueryUnit.d.ts +0 -10
  145. package/dist/sd-orm-common/src/QueryUnit.js.map +0 -1
  146. package/dist/sd-orm-common/src/QueryUnit.mjs +0 -16
  147. package/dist/sd-orm-common/src/Queryable.d.ts +0 -105
  148. package/dist/sd-orm-common/src/Queryable.js.map +0 -1
  149. package/dist/sd-orm-common/src/Queryable.mjs +0 -1375
  150. package/dist/sd-orm-common/src/SdOrmDataType.d.ts +0 -21
  151. package/dist/sd-orm-common/src/SdOrmDataType.js.map +0 -1
  152. package/dist/sd-orm-common/src/SdOrmDataType.mjs +0 -2
  153. package/dist/sd-orm-common/src/commons.d.ts +0 -400
  154. package/dist/sd-orm-common/src/commons.js.map +0 -1
  155. package/dist/sd-orm-common/src/commons.mjs +0 -8
  156. package/dist/sd-orm-common/src/decorators.d.ts +0 -29
  157. package/dist/sd-orm-common/src/decorators.js.map +0 -1
  158. package/dist/sd-orm-common/src/decorators.mjs +0 -89
  159. package/dist/sd-orm-common/src/index.d.ts +0 -17
  160. package/dist/sd-orm-common/src/index.js.map +0 -1
  161. package/dist/sd-orm-common/src/index.mjs +0 -18
  162. package/dist/sd-orm-common/src/models/SystemMigration.d.ts +0 -3
  163. package/dist/sd-orm-common/src/models/SystemMigration.js.map +0 -1
  164. package/dist/sd-orm-common/src/models/SystemMigration.mjs +0 -13
  165. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.d.ts +0 -14
  166. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.js.map +0 -1
  167. package/dist/sd-orm-common/src/utils/DbDefinitionUtil.mjs +0 -66
  168. package/dist/sd-orm-common/src/utils/SdOrmUtil.d.ts +0 -8
  169. package/dist/sd-orm-common/src/utils/SdOrmUtil.js.map +0 -1
  170. package/dist/sd-orm-common/src/utils/SdOrmUtil.mjs +0 -248
  171. package/dist/sd-orm-node/src/DbConnectionFactory.d.ts +0 -4
  172. package/dist/sd-orm-node/src/DbConnectionFactory.js.map +0 -1
  173. package/dist/sd-orm-node/src/DbConnectionFactory.mjs +0 -17
  174. package/dist/sd-orm-node/src/NodeDbContextExecutor.d.ts +0 -19
  175. package/dist/sd-orm-node/src/NodeDbContextExecutor.js.map +0 -1
  176. package/dist/sd-orm-node/src/NodeDbContextExecutor.mjs +0 -71
  177. package/dist/sd-orm-node/src/SdOrm.d.ts +0 -10
  178. package/dist/sd-orm-node/src/SdOrm.js.map +0 -1
  179. package/dist/sd-orm-node/src/SdOrm.mjs +0 -25
  180. package/dist/sd-orm-node/src/index.d.ts +0 -4
  181. package/dist/sd-orm-node/src/index.js.map +0 -1
  182. package/dist/sd-orm-node/src/index.mjs +0 -5
  183. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.d.ts +0 -25
  184. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.js.map +0 -1
  185. package/dist/sd-orm-node-mssql/src/MssqlDbConnection.mjs +0 -321
  186. package/dist/sd-orm-node-mssql/src/index.d.ts +0 -2
  187. package/dist/sd-orm-node-mssql/src/index.js.map +0 -1
  188. package/dist/sd-orm-node-mssql/src/index.mjs +0 -3
  189. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.d.ts +0 -22
  190. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.js.map +0 -1
  191. package/dist/sd-orm-node-mysql/src/MysqlDbConnection.mjs +0 -200
  192. package/dist/sd-orm-node-mysql/src/index.d.ts +0 -2
  193. package/dist/sd-orm-node-mysql/src/index.js.map +0 -1
  194. package/dist/sd-orm-node-mysql/src/index.mjs +0 -3
  195. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.d.ts +0 -22
  196. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.js.map +0 -1
  197. package/dist/sd-orm-node-sqlite/src/SqliteDbConnection.mjs +0 -172
  198. package/dist/sd-orm-node-sqlite/src/index.d.ts +0 -2
  199. package/dist/sd-orm-node-sqlite/src/index.js.map +0 -1
  200. package/dist/sd-orm-node-sqlite/src/index.mjs +0 -3
  201. package/dist/sd-service-common/src/commons-orm.d.ts +0 -4
  202. package/dist/sd-service-common/src/commons-orm.js.map +0 -1
  203. package/dist/sd-service-common/src/commons-orm.mjs +0 -2
  204. package/dist/sd-service-common/src/commons-smtp.d.ts +0 -29
  205. package/dist/sd-service-common/src/commons-smtp.js.map +0 -1
  206. package/dist/sd-service-common/src/commons-smtp.mjs +0 -2
  207. package/dist/sd-service-common/src/commons.d.ts +0 -57
  208. package/dist/sd-service-common/src/commons.js.map +0 -1
  209. package/dist/sd-service-common/src/commons.mjs +0 -3
  210. package/dist/sd-service-common/src/index.d.ts +0 -3
  211. package/dist/sd-service-common/src/index.js.map +0 -1
  212. package/dist/sd-service-common/src/index.mjs +0 -4
  213. package/dist/sd-service-server/src/ApiServiceError.d.ts +0 -12
  214. package/dist/sd-service-server/src/ApiServiceError.js.map +0 -1
  215. package/dist/sd-service-server/src/ApiServiceError.mjs +0 -15
  216. package/dist/sd-service-server/src/SdServiceServer.d.ts +0 -39
  217. package/dist/sd-service-server/src/SdServiceServer.js.map +0 -1
  218. package/dist/sd-service-server/src/SdServiceServer.mjs +0 -513
  219. package/dist/sd-service-server/src/commons.d.ts +0 -23
  220. package/dist/sd-service-server/src/commons.js.map +0 -1
  221. package/dist/sd-service-server/src/commons.mjs +0 -3
  222. package/dist/sd-service-server/src/index.d.ts +0 -8
  223. package/dist/sd-service-server/src/index.js.map +0 -1
  224. package/dist/sd-service-server/src/index.mjs +0 -9
  225. package/dist/sd-service-server/src/services/SdAutoUpdateService.d.ts +0 -4
  226. package/dist/sd-service-server/src/services/SdAutoUpdateService.js.map +0 -1
  227. package/dist/sd-service-server/src/services/SdAutoUpdateService.mjs +0 -20
  228. package/dist/sd-service-server/src/services/SdCryptoService.d.ts +0 -7
  229. package/dist/sd-service-server/src/services/SdCryptoService.js.map +0 -1
  230. package/dist/sd-service-server/src/services/SdCryptoService.mjs +0 -39
  231. package/dist/sd-service-server/src/services/SdOrmService.d.ts +0 -22
  232. package/dist/sd-service-server/src/services/SdOrmService.js.map +0 -1
  233. package/dist/sd-service-server/src/services/SdOrmService.mjs +0 -115
  234. package/dist/sd-service-server/src/services/SdSmtpClientService.d.ts +0 -6
  235. package/dist/sd-service-server/src/services/SdSmtpClientService.js.map +0 -1
  236. package/dist/sd-service-server/src/services/SdSmtpClientService.mjs +0 -44
  237. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.d.ts +0 -4
  238. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.js.map +0 -1
  239. package/dist/sd-service-server/src/utils/SdServiceServerConfigUtil.mjs +0 -36
@@ -1,105 +0,0 @@
1
- import { DbContext } from "./DbContext";
2
- import { Type, UnwrappedType } from "@simplysm/sd-core-common";
3
- import { IDeleteQueryDef, IInsertIfNotExistsQueryDef, IInsertQueryDef, IQueryableDef, IQueryTableNameDef, ISelectQueryDef, ITableDef, IUpdateQueryDef, IUpsertQueryDef, TEntity, TEntityUnwrap, TEntityValue, TEntityValueOrQueryableOrArray, TIncludeEntity, TInsertObject, TQueryBuilderValue, TQueryValue, TSelectEntity, TUpdateObject } from "./commons";
4
- export declare class Queryable<D extends DbContext, T> {
5
- readonly db: D;
6
- T?: T;
7
- readonly tableType?: Type<T>;
8
- private readonly _as?;
9
- readonly tableDef?: ITableDef;
10
- private readonly _entity;
11
- private readonly _isCustomEntity;
12
- private readonly _def;
13
- get tableName(): string;
14
- hasMultiJoin: boolean;
15
- get tableDescription(): string;
16
- get tableNameDef(): IQueryTableNameDef;
17
- constructor(db: D, cloneQueryable: Queryable<D, T>);
18
- constructor(db: D, cloneQueryable: Queryable<D, any>, entity: TEntity<T>);
19
- constructor(db: D, tableType: Type<T>, as?: string);
20
- constructor(db: D, tableType: Type<T> | undefined, as: string | undefined, entity: TEntity<T>, defs: IQueryableDef);
21
- static union<ND extends DbContext, NT>(qrs: Queryable<ND, NT>[], as?: string): Queryable<ND, NT>;
22
- lock(): Queryable<D, T>;
23
- select<A, B extends TEntityUnwrap<A>>(fwd: (entity: TEntity<T>) => A): Queryable<D, B>;
24
- select<R>(fwd: (entity: TEntity<T>) => TSelectEntity<R>): Queryable<D, R>;
25
- selectByType<A>(tableType: Type<A>): Queryable<D, A>;
26
- ofType<A>(): Queryable<D, A>;
27
- where(predicate: (entity: TEntity<T>) => TEntityValueOrQueryableOrArray<D, any>[]): Queryable<D, T>;
28
- distinct(): Queryable<D, T>;
29
- top(count: number): Queryable<D, T>;
30
- orderBy(arg1: ((entity: TEntity<T>) => TEntityValue<TQueryValue>) | string, desc?: boolean): Queryable<D, T>;
31
- clearOrderBy(): Queryable<D, T>;
32
- limit(skip: number, take: number): Queryable<D, T>;
33
- sample(rowCount: number): Queryable<D, T>;
34
- pivot<V extends TQueryValue, P extends string>(valueFwd: ((entity: TEntity<T>) => TEntityValue<V>), valueDupFwd: ((value: TEntityValue<V>) => TEntityValue<V>), emptyValue: V, pivotFwd: ((entity: TEntity<T>) => TEntityValue<any>), pivotKeys: P[]): Queryable<D, T & Record<P, V>>;
35
- unpivot<VC extends string, PC extends string, RT extends TQueryValue>(valueColumn: VC, pivotColumn: PC, pivotKeys: string[], resultType: Type<RT>): Queryable<D, T & Record<PC, string> & Record<VC, UnwrappedType<RT> | undefined>>;
36
- groupBy(fwd: (entity: TEntity<T>) => TEntityValue<TQueryValue>[]): Queryable<D, T>;
37
- having(predicate: (entity: TEntity<T>) => TEntityValueOrQueryableOrArray<D, any>[]): Queryable<D, T>;
38
- join<A extends string, J, R>(joinTypeOrQrs: Type<J> | Queryable<D, J>[], as: A, fwd: (qr: Queryable<D, J>, en: TEntity<T>) => Queryable<D, R>): Queryable<D, T & {
39
- [K in A]: R[];
40
- }>;
41
- joinSingle<A extends string, J, R>(joinTypeOrQrs: Type<J> | Queryable<D, J>[], as: A, fwd: (qr: Queryable<D, J>, en: TEntity<T>) => Queryable<D, R>): Queryable<D, T & {
42
- [K in A]: Partial<R>;
43
- }>;
44
- includeByTableChainedName(tableChainedName: string): Queryable<D, T>;
45
- include(arg: (entity: TIncludeEntity<T>) => (TIncludeEntity<any> | TIncludeEntity<any>[])): Queryable<D, T>;
46
- private _include;
47
- search(fwd: (entity: TEntity<T>) => TEntityValue<String | string | undefined>[], searchText: string): Queryable<D, T>;
48
- searchEveryStringFields(searchText: string): Queryable<D, T>;
49
- wrap(): Queryable<D, T>;
50
- wrap<R extends Partial<T>>(tableType: Type<R>): Queryable<D, R>;
51
- getSelectQueryDef(): ISelectQueryDef & {
52
- select: Record<string, TQueryBuilderValue>;
53
- };
54
- private _getParentEntity;
55
- getInsertQueryDef(obj: TInsertObject<T>, outputColumns: (keyof T)[] | undefined): IInsertQueryDef;
56
- getUpdateQueryDef(obj: TUpdateObject<T>, outputColumns: (keyof T)[] | undefined): IUpdateQueryDef;
57
- getInsertIfNotExistsQueryDef(insertObj: TInsertObject<T>, outputColumns: (keyof T)[] | undefined): IInsertIfNotExistsQueryDef;
58
- getUpsertQueryDef<U extends TUpdateObject<T>>(updateObj: U, insertObj: TInsertObject<T> | undefined, outputColumns: (keyof T)[] | undefined): IUpsertQueryDef;
59
- getDeleteQueryDef(outputColumns: (keyof T)[] | undefined): IDeleteQueryDef;
60
- insertIntoAsync(tableType: Type<T>): Promise<void>;
61
- resultAsync(): Promise<T[]>;
62
- singleAsync(): Promise<T | undefined>;
63
- countAsync(): Promise<number>;
64
- existsAsync(): Promise<boolean>;
65
- bulkInsertAsync(arg: TInsertObject<T> | (TInsertObject<T>[])): Promise<void>;
66
- insertAsync(records: TInsertObject<T>[]): Promise<void>;
67
- insertAsync<OK extends keyof T>(records: TInsertObject<T>[], outputColumns: OK[]): Promise<{
68
- [K in OK]: T[K];
69
- }[]>;
70
- insertWithoutFkCheckAsync(records: TInsertObject<T>[]): Promise<void>;
71
- insertWithoutFkCheckAsync<OK extends keyof T>(records: TInsertObject<T>[], outputColumns: OK[]): Promise<{
72
- [K in OK]: T[K];
73
- }[]>;
74
- private _insertAsync;
75
- insertPrepare(records: TInsertObject<T>[]): void;
76
- insertWithoutFkCheckPrepare(records: TInsertObject<T>[]): void;
77
- private _insertPrepare;
78
- private _getInsertDefs;
79
- updateAsync(recordFwd: (entity: TEntity<T>) => (TUpdateObject<T> | Promise<TUpdateObject<T>>)): Promise<void>;
80
- updateAsync<OK extends keyof T>(recordFwd: (entity: TEntity<T>) => (TUpdateObject<T> | Promise<TUpdateObject<T>>), outputColumns: OK[]): Promise<{
81
- [K in OK]: T[K];
82
- }[]>;
83
- updatePrepare(recordFwd: (entity: TEntity<T>) => TUpdateObject<T>): void;
84
- private _getUpdateDefs;
85
- deleteAsync(): Promise<void>;
86
- deleteAsync<OK extends keyof T>(outputColumns: OK[]): Promise<{
87
- [K in OK]: T[K];
88
- }[]>;
89
- deletePrepare(): void;
90
- private _getDeleteDefs;
91
- upsertAsync(insertFwd: (entity: TEntity<T>) => (TInsertObject<T> | Promise<TInsertObject<T>>)): Promise<void>;
92
- upsertAsync<OK extends keyof T>(insertFwd: (entity: TEntity<T>) => (TInsertObject<T> | Promise<TInsertObject<T>>), outputColumns: OK[]): Promise<{
93
- [K in OK]: T[K];
94
- }[]>;
95
- upsertAsync<U extends TUpdateObject<T>>(updateFwd: (entity: TEntity<T>) => (U | Promise<U>), insertFwd: (updateRecord: U) => (TInsertObject<T> | Promise<TInsertObject<T>>)): Promise<void>;
96
- upsertAsync<U extends TUpdateObject<T>, OK extends keyof T>(updateFwd: (entity: TEntity<T>) => (U | Promise<U>), insertFwd: (updateRecord: U) => (TInsertObject<T> | Promise<TInsertObject<T>>), outputColumns: OK[]): Promise<{
97
- [K in OK]: T[K];
98
- }[]>;
99
- upsertPrepare<U extends TUpdateObject<T>>(updateObjOrFwd: U | ((entity: TEntity<T>) => U), insertObjOrFwd?: TInsertObject<T> | ((updateRecord: U) => TInsertObject<T>)): void;
100
- private _getUpsertDefs;
101
- configIdentityInsert(state: "on" | "off"): void;
102
- private _getParseOption;
103
- private _setEntityChainValue;
104
- private _getEntityChainValue;
105
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Queryable.js","sourceRoot":"","sources":["../../../../sd-orm-common/src/Queryable.ts"],"names":[],"mappings":"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"}