vona-module-a-orm 5.1.28 → 5.1.30

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bean.model_view.d.ts","sourceRoot":"","sources":["../../../src/lib/bean.model/bean.model_view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,qBAAa,aAAa,CAAC,OAAO,SAAS,EAAE,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAC;IACrE,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,GAAG,GAChD,OAAO,CAAC,IAAI,CAAC;IA0BV,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO;IASxD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,GAAG,GAChD,OAAO,CAAC,IAAI,CAAC;IASV,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,KAAK,GAAG,GACvD,OAAO,CAAC,IAAI,CAAC;IAIV,SAAS,CAAC,SAAS,EAAE,MAAM;IAI3B,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,KAAK,GAAG,EACxD,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC;IAcV,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOnD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAa9C,wBAAwB;YAoBxB,yBAAyB;CAexC"}
1
+ {"version":3,"file":"bean.model_view.d.ts","sourceRoot":"","sources":["../../../src/lib/bean.model/bean.model_view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,qBAAa,aAAa,CAAC,OAAO,SAAS,EAAE,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAC;IACrE,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,GAAG,GAChD,OAAO,CAAC,IAAI,CAAC;IA0BV,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO;IASxD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,GAAG,GAChD,OAAO,CAAC,IAAI,CAAC;IASV,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,KAAK,GAAG,GACvD,OAAO,CAAC,IAAI,CAAC;IAKV,SAAS,CAAC,SAAS,EAAE,MAAM;IAK3B,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,KAAK,GAAG,EACxD,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC;IAgBV,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOnD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAa9C,wBAAwB;YAoBxB,yBAAyB;CAexC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dtoCreate.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoCreate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,wBAAgB,SAAS,CACvB,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EAE7D,SAAS,EAAE,SAAS,SAAS,aAAa,GACtC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAC3D,SAAS,EACb,MAAM,CAAC,EAAE,CAAC,GACT,aAAa,CACd,mBAAmB,CACjB,SAAS,EACT,CAAC,EACD,QAAQ,EACR,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,EACpD,IAAI,CACL,CACF,CASA"}
1
+ {"version":3,"file":"dtoCreate.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoCreate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,wBAAgB,SAAS,CACvB,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EAE7D,SAAS,EAAE,SAAS,SAAS,aAAa,GACtC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAC3D,SAAS,EACb,MAAM,CAAC,EAAE,CAAC,GACT,aAAa,CACd,mBAAmB,CACjB,SAAS,EACT,CAAC,EACD,QAAQ,EACR,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,EACpD,IAAI,CACL,CACF,CAWA"}
@@ -1 +1 @@
1
- {"version":3,"file":"dtoUpdate.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,wBAAgB,SAAS,CACvB,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EAE7D,SAAS,EAAE,SAAS,SAAS,aAAa,GACtC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAC3D,SAAS,EACb,MAAM,CAAC,EAAE,CAAC,GACT,aAAa,CACd,mBAAmB,CACjB,SAAS,EACT,CAAC,EACD,QAAQ,EACR,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,EACpD,IAAI,CACL,CACF,CASA"}
1
+ {"version":3,"file":"dtoUpdate.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,wBAAgB,SAAS,CACvB,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EAE7D,SAAS,EAAE,SAAS,SAAS,aAAa,GACtC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAC3D,SAAS,EACb,MAAM,CAAC,EAAE,CAAC,GACT,aAAa,CACd,mBAAmB,CACjB,SAAS,EACT,CAAC,EACD,QAAQ,EACR,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,EACpD,IAAI,CACL,CACF,CAWA"}
@@ -1 +1 @@
1
- {"version":3,"file":"columns_.d.ts","sourceRoot":"","sources":["../../src/service/columns_.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,qBACa,cAAe,SAAQ,QAAQ;IAC1C,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,oBAAoB,CAAsB;IAElD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS;IAIhC,OAAO,KAAK,EAAE,GAEb;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAEK,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBnD,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAepE,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM;CAGhC"}
1
+ {"version":3,"file":"columns_.d.ts","sourceRoot":"","sources":["../../src/service/columns_.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,qBACa,cAAe,SAAQ,QAAQ;IAC1C,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,oBAAoB,CAAsB;IAElD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS;IAIhC,OAAO,KAAK,EAAE,GAEb;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAEK,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAenD,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAepE,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM;CAGhC"}
@@ -15,9 +15,12 @@ export declare class ServiceDatabaseDialectBase extends BeanBase {
15
15
  fetchIndexes(_schemaBuilder: Knex.SchemaBuilder, _tableName: string): Promise<IFetchIndexesResultItem[]>;
16
16
  insert(_builder: Knex.QueryBuilder, _datas: any[]): Promise<[TableIdentity[], Knex.QueryBuilder]>;
17
17
  select(_builder: Knex.QueryBuilder, datas: any[], _fn: TypeDatabaseDialectTableColumnsFn): Promise<any[]>;
18
+ fetchColumns(connection: Knex, tableName: string): Promise<Record<string, Knex.ColumnInfo>>;
18
19
  query(_result: any): void;
19
20
  viewDependents(_builder: Knex.QueryBuilder, _viewName: string): Promise<string[]>;
20
21
  coerceColumn(column: Knex.ColumnInfo): ITableColumn;
22
+ protected _isMysqlBooleanColumn(column: ITableColumn): boolean;
23
+ protected selectAsMysql(_builder: Knex.QueryBuilder, datas: any[], fn: TypeDatabaseDialectTableColumnsFn): Promise<any[]>;
21
24
  protected selectAsSqlite3(_builder: Knex.QueryBuilder, datas: any[], fn: TypeDatabaseDialectTableColumnsFn): Promise<any[]>;
22
25
  protected insertAsMysql(builder: Knex.QueryBuilder, datas: any[]): Promise<[TableIdentity[], Knex.QueryBuilder]>;
23
26
  protected insertAsPg(builder: Knex.QueryBuilder, datas: any[]): Promise<[TableIdentity[], Knex.QueryBuilder]>;
@@ -1 +1 @@
1
- {"version":3,"file":"databaseDialectBase_.d.ts","sourceRoot":"","sources":["../../src/service/databaseDialectBase_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAW,MAAM,MAAM,CAAC;AAGzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACvB,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAe7B,qBAEa,0BAA2B,SAAQ,QAAQ;IACtD,SAAS,CAAC,aAAa,CAAC,EAAE,4BAA4B,CAAC;IACvD,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEtD,IAAI,YAAY,iCAGf;IAED,IAAI,UAAU,8CAEb;IAEK,cAAc,CAClB,cAAc,EAAE,IAAI,CAAC,aAAa,EAClC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAIjC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1F,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItF,YAAY,CAChB,cAAc,EAAE,IAAI,CAAC,aAAa,EAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAI/B,MAAM,CACV,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,MAAM,EAAE,GAAG,EAAE,GACZ,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAI1C,MAAM,CACV,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,KAAK,EAAE,GAAG,EAAE,EACZ,GAAG,EAAE,iCAAiC,GACrC,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjB,KAAK,CAAC,OAAO,KAAA;IAIP,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIvF,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY;cAMnC,eAAe,CAC7B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,KAAK,EAAE,GAAG,EAAE,EACZ,EAAE,EAAE,iCAAiC,GACpC,OAAO,CAAC,GAAG,EAAE,CAAC;cAmBD,aAAa,CAC3B,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;cAoBhC,UAAU,CACxB,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAahD,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,KAAA;IAsBhD,SAAS,CAAC,WAAW,CAAC,KAAK,KAAA;IAK3B,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;CAG/D"}
1
+ {"version":3,"file":"databaseDialectBase_.d.ts","sourceRoot":"","sources":["../../src/service/databaseDialectBase_.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,7 @@ export declare class ServiceTransactionFiber extends BeanBase {
10
10
  compensate(cb: FunctionAny): void;
11
11
  doCommit(): Promise<void>;
12
12
  doRollback(): Promise<void>;
13
+ commitsDone(): Promise<void>;
14
+ compensatesDone(): Promise<void>;
13
15
  }
14
16
  //# sourceMappingURL=transactionFiber_.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactionFiber_.d.ts","sourceRoot":"","sources":["../../src/service/transactionFiber_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAKhC,qBACa,uBAAwB,SAAQ,QAAQ;IACnD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,uBAAuB,CAAiC;IAEhE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;IAKpD,IAAW,UAAU,sCAEpB;IAED,MAAM,CAAC,EAAE,EAAE,WAAW;IAItB,UAAU,CAAC,EAAE,EAAE,WAAW;IAIpB,QAAQ;IAMR,UAAU;CAKjB"}
1
+ {"version":3,"file":"transactionFiber_.d.ts","sourceRoot":"","sources":["../../src/service/transactionFiber_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAKhC,qBACa,uBAAwB,SAAQ,QAAQ;IACnD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,uBAAuB,CAAiC;IAEhE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;IAKpD,IAAW,UAAU,sCAEpB;IAED,MAAM,CAAC,EAAE,EAAE,WAAW;IAItB,UAAU,CAAC,EAAE,EAAE,WAAW;IAIpB,QAAQ;IAKR,UAAU;IAKV,WAAW;IAIX,eAAe;CAGtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction_.d.ts","sourceRoot":"","sources":["../../src/service/transaction_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EACV,oCAAoC,EACpC,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAKtE,qBACa,kBAAmB,SAAQ,QAAQ;IAC9C,OAAO,CAAC,GAAG,CAAY;IAEvB,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS;IAIhC,IAAI,gBAAgB,wDAEnB;IAED,IAAI,gBAAgB,IAAI,uBAAuB,GAAG,SAAS,CAE1D;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAElD;IAEK,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,oCAAoC;IAW5E,UAAU,CAAC,EAAE,EAAE,WAAW;IAOpB,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;YAiDhF,uBAAuB;CAsCtC"}
1
+ {"version":3,"file":"transaction_.d.ts","sourceRoot":"","sources":["../../src/service/transaction_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EACV,oCAAoC,EACpC,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAKtE,qBACa,kBAAmB,SAAQ,QAAQ;IAC9C,OAAO,CAAC,GAAG,CAAY;IAEvB,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS;IAIhC,IAAI,gBAAgB,wDAEnB;IAED,IAAI,gBAAgB,IAAI,uBAAuB,GAAG,SAAS,CAE1D;IAED,IAAI,aAAa,YAEhB;IAED,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAElD;IAEK,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,oCAAoC;IAW5E,UAAU,CAAC,EAAE,EAAE,WAAW;IAOpB,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;YAiDhF,uBAAuB;CAmCtC"}
@@ -1,6 +1,7 @@
1
1
  export interface ITableColumn {
2
2
  type: string;
3
3
  default: any;
4
+ columnType?: string;
4
5
  }
5
6
  export type ITableColumns = Record<string, ITableColumn>;
6
7
  export type ITableColumnsDefault = Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../src/types/columns.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../src/types/columns.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-a-orm",
3
- "version": "5.1.28",
4
- "gitHead": "e86b8ee51b837417b7b28b2c67862877d4092371",
3
+ "version": "5.1.30",
4
+ "gitHead": "eb85d771ef75776a439e56df3af8be6a3a36c1c2",
5
5
  "description": "db",
6
6
  "keywords": [
7
7
  "Cabloy Module"
@@ -4,15 +4,15 @@ export * from '../bean/aopMethod.transaction.ts';
4
4
  import type { IAopMethodOptionsTransaction } from '../bean/aopMethod.transaction.ts';
5
5
  import 'vona-module-a-aspect';
6
6
  declare module 'vona-module-a-aspect' {
7
-
7
+
8
8
  export interface IAopMethodRecord {
9
9
  'a-orm:transaction': IAopMethodOptionsTransaction;
10
10
  }
11
11
 
12
-
12
+
13
13
  }
14
14
  declare module 'vona-module-a-orm' {
15
-
15
+
16
16
  export interface AopMethodTransaction {
17
17
  /** @internal */
18
18
  get scope(): ScopeModuleAOrm;
@@ -22,7 +22,7 @@ declare module 'vona-module-a-orm' {
22
22
  get $beanFullName(): 'a-orm.aopMethod.transaction';
23
23
  get $onionName(): 'a-orm:transaction';
24
24
  get $onionOptions(): IAopMethodOptionsTransaction;
25
- }
25
+ }
26
26
  }
27
27
  /** aopMethod: end */
28
28
  /** bean: begin */
@@ -31,15 +31,15 @@ export * from '../bean/bean.model.ts';
31
31
 
32
32
  import 'vona';
33
33
  declare module 'vona' {
34
-
35
-
34
+
35
+
36
36
  }
37
37
  declare module 'vona-module-a-orm' {
38
-
38
+
39
39
  export interface BeanDatabase {
40
40
  /** @internal */
41
41
  get scope(): ScopeModuleAOrm;
42
- }
42
+ }
43
43
  }
44
44
  /** bean: end */
45
45
  /** bean: begin */
@@ -74,15 +74,15 @@ export * from '../service/transaction_.ts';
74
74
 
75
75
  import 'vona-module-a-bean';
76
76
  declare module 'vona-module-a-bean' {
77
-
77
+
78
78
  export interface IServiceRecord {
79
79
  'a-orm:database': never;
80
80
  }
81
81
 
82
-
82
+
83
83
  }
84
84
  declare module 'vona-module-a-orm' {
85
-
85
+
86
86
  export interface ServiceDatabase {
87
87
  /** @internal */
88
88
  get scope(): ScopeModuleAOrm;
@@ -91,8 +91,7 @@ declare module 'vona-module-a-orm' {
91
91
  export interface ServiceDatabase {
92
92
  get $beanFullName(): 'a-orm.service.database';
93
93
  get $onionName(): 'a-orm:database';
94
-
95
- }
94
+ }
96
95
  }
97
96
  /** service: end */
98
97
  /** service: begin */
@@ -115,15 +114,15 @@ export * from '../bean/broadcast.columnsClear.ts';
115
114
 
116
115
  import { type IDecoratorBroadcastOptions } from 'vona-module-a-broadcast';
117
116
  declare module 'vona-module-a-broadcast' {
118
-
117
+
119
118
  export interface IBroadcastRecord {
120
119
  'a-orm:columnsClear': IDecoratorBroadcastOptions;
121
120
  }
122
121
 
123
-
122
+
124
123
  }
125
124
  declare module 'vona-module-a-orm' {
126
-
125
+
127
126
  export interface BroadcastColumnsClear {
128
127
  /** @internal */
129
128
  get scope(): ScopeModuleAOrm;
@@ -133,7 +132,7 @@ declare module 'vona-module-a-orm' {
133
132
  get $beanFullName(): 'a-orm.broadcast.columnsClear';
134
133
  get $onionName(): 'a-orm:columnsClear';
135
134
  get $onionOptions(): IDecoratorBroadcastOptions;
136
- }
135
+ }
137
136
  }
138
137
  /** broadcast: end */
139
138
  /** broadcast: begin */
@@ -148,11 +147,11 @@ export * from '../bean/event.columnsClear.ts';
148
147
 
149
148
  import 'vona';
150
149
  declare module 'vona' {
151
-
152
-
150
+
151
+
153
152
  }
154
153
  declare module 'vona-module-a-orm' {
155
-
154
+
156
155
  export interface EventClientNameReal {
157
156
  /** @internal */
158
157
  get scope(): ScopeModuleAOrm;
@@ -161,7 +160,6 @@ declare module 'vona-module-a-orm' {
161
160
  export interface EventClientNameReal {
162
161
  get $beanFullName(): 'a-orm.event.clientNameReal';
163
162
  get $onionName(): 'a-orm:clientNameReal';
164
-
165
163
  }
166
164
 
167
165
  export interface EventColumnsClear {
@@ -172,8 +170,7 @@ declare module 'vona-module-a-orm' {
172
170
  export interface EventColumnsClear {
173
171
  get $beanFullName(): 'a-orm.event.columnsClear';
174
172
  get $onionName(): 'a-orm:columnsClear';
175
-
176
- }
173
+ }
177
174
  }
178
175
  /** event: end */
179
176
  /** event: begin */
@@ -187,7 +184,7 @@ export interface IModuleEvent {
187
184
  /** event: begin */
188
185
  import type { TypeEventClientNameRealData, TypeEventClientNameRealResult } from '../bean/event.clientNameReal.ts';
189
186
  import type { TypeEventColumnsClearData, TypeEventColumnsClearResult } from '../bean/event.columnsClear.ts';
190
- import type { EventOn } from 'vona-module-a-event';
187
+ import type { EventOn } from 'vona-module-a-event';
191
188
  declare module 'vona-module-a-event' {
192
189
  export interface IEventRecord {
193
190
  'a-orm:clientNameReal': EventOn<TypeEventClientNameRealData, TypeEventClientNameRealResult>;
@@ -201,16 +198,16 @@ export * from '../bean/hmr.model.ts';
201
198
 
202
199
  import 'vona';
203
200
  declare module 'vona' {
204
-
201
+
205
202
  export interface IHmrRecord {
206
203
  'a-orm:entity': never;
207
204
  'a-orm:model': never;
208
205
  }
209
206
 
210
-
207
+
211
208
  }
212
209
  declare module 'vona-module-a-orm' {
213
-
210
+
214
211
  export interface HmrEntity {
215
212
  /** @internal */
216
213
  get scope(): ScopeModuleAOrm;
@@ -219,7 +216,6 @@ declare module 'vona-module-a-orm' {
219
216
  export interface HmrEntity {
220
217
  get $beanFullName(): 'a-orm.hmr.entity';
221
218
  get $onionName(): 'a-orm:entity';
222
-
223
219
  }
224
220
 
225
221
  export interface HmrModel {
@@ -230,8 +226,7 @@ declare module 'vona-module-a-orm' {
230
226
  export interface HmrModel {
231
227
  get $beanFullName(): 'a-orm.hmr.model';
232
228
  get $onionName(): 'a-orm:model';
233
-
234
- }
229
+ }
235
230
  }
236
231
  /** hmr: end */
237
232
  /** queue: begin */
@@ -239,15 +234,15 @@ export * from '../bean/queue.doubleDelete.ts';
239
234
 
240
235
  import { type IDecoratorQueueOptions } from 'vona-module-a-queue';
241
236
  declare module 'vona-module-a-queue' {
242
-
237
+
243
238
  export interface IQueueRecord {
244
239
  'a-orm:doubleDelete': IDecoratorQueueOptions;
245
240
  }
246
241
 
247
-
242
+
248
243
  }
249
244
  declare module 'vona-module-a-orm' {
250
-
245
+
251
246
  export interface QueueDoubleDelete {
252
247
  /** @internal */
253
248
  get scope(): ScopeModuleAOrm;
@@ -257,7 +252,7 @@ declare module 'vona-module-a-orm' {
257
252
  get $beanFullName(): 'a-orm.queue.doubleDelete';
258
253
  get $onionName(): 'a-orm:doubleDelete';
259
254
  get $onionOptions(): IDecoratorQueueOptions;
260
- }
255
+ }
261
256
  }
262
257
  /** queue: end */
263
258
  /** queue: begin */
@@ -271,15 +266,15 @@ export * from '../bean/schedule.softDeletionPrune.ts';
271
266
 
272
267
  import { type IDecoratorScheduleOptions } from 'vona-module-a-schedule';
273
268
  declare module 'vona-module-a-schedule' {
274
-
269
+
275
270
  export interface IScheduleRecord {
276
271
  'a-orm:softDeletionPrune': IDecoratorScheduleOptions;
277
272
  }
278
273
 
279
-
274
+
280
275
  }
281
276
  declare module 'vona-module-a-orm' {
282
-
277
+
283
278
  export interface ScheduleSoftDeletionPrune {
284
279
  /** @internal */
285
280
  get scope(): ScopeModuleAOrm;
@@ -289,7 +284,7 @@ declare module 'vona-module-a-orm' {
289
284
  get $beanFullName(): 'a-orm.schedule.softDeletionPrune';
290
285
  get $onionName(): 'a-orm:softDeletionPrune';
291
286
  get $onionOptions(): IDecoratorScheduleOptions;
292
- }
287
+ }
293
288
  }
294
289
  /** schedule: end */
295
290
  /** config: begin */
@@ -333,7 +328,7 @@ declare module 'vona' {
333
328
  export interface IBeanScopeContainer {
334
329
  orm: ScopeModuleAOrm;
335
330
  }
336
-
331
+
337
332
  export interface IBeanScopeConfig {
338
333
  'a-orm': ReturnType<typeof config>;
339
334
  }
@@ -62,10 +62,12 @@ export class BeanModelView<TRecord extends {}> extends BeanModelKnex<TRecord> {
62
62
  callback: (tableBuilder: Knex.CreateTableBuilder) => any,
63
63
  ): Promise<void> {
64
64
  await this.schema.createTable(tableName, callback);
65
+ this.db.columns.columnsClear(tableName);
65
66
  }
66
67
 
67
68
  async dropTable(tableName: string) {
68
69
  await this.schema.dropTable(tableName);
70
+ this.db.columns.columnsClear(tableName);
69
71
  }
70
72
 
71
73
  async alterTable(
@@ -75,15 +77,17 @@ export class BeanModelView<TRecord extends {}> extends BeanModelKnex<TRecord> {
75
77
  ): Promise<void> {
76
78
  if (!alterViewAuto) {
77
79
  // alter table
78
- return await this.schema.alterTable(tableName, table => {
79
- return callback(table);
80
- });
81
- }
82
- await this._viewDependentsAll_handle(tableName, async () => {
83
80
  await this.schema.alterTable(tableName, table => {
84
81
  return callback(table);
85
82
  });
86
- });
83
+ } else {
84
+ await this._viewDependentsAll_handle(tableName, async () => {
85
+ await this.schema.alterTable(tableName, table => {
86
+ return callback(table);
87
+ });
88
+ });
89
+ }
90
+ this.db.columns.columnsClear(tableName);
87
91
  }
88
92
 
89
93
  async viewDependents(viewName: string): Promise<string[]> {
@@ -1,5 +1,7 @@
1
1
  import type { Constructable } from 'vona';
2
2
 
3
+ import { mergeTargetDecoratorDtoOpenapi } from 'vona-module-a-openapiutils';
4
+
3
5
  import type { IDtoMutateParams, TypeDtoMutateResult } from '../../types/dto/dtoMutate.ts';
4
6
  import type { IModelClassRecord } from '../../types/onion/model.ts';
5
7
  import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
@@ -23,7 +25,7 @@ export function DtoCreate<
23
25
  true
24
26
  >
25
27
  > {
26
- return _DtoMutate_raw(
28
+ const dtoClass = _DtoMutate_raw(
27
29
  modelLike,
28
30
  params,
29
31
  'create',
@@ -31,4 +33,6 @@ export function DtoCreate<
31
33
  true,
32
34
  undefined,
33
35
  );
36
+ mergeTargetDecoratorDtoOpenapi({ rest: { schemaScene: 'form-create' } }, dtoClass.prototype);
37
+ return dtoClass;
34
38
  }
@@ -1,5 +1,7 @@
1
1
  import type { Constructable } from 'vona';
2
2
 
3
+ import { mergeTargetDecoratorDtoOpenapi } from 'vona-module-a-openapiutils';
4
+
3
5
  import type { IDtoMutateParams, TypeDtoMutateResult } from '../../types/dto/dtoMutate.ts';
4
6
  import type { IModelClassRecord } from '../../types/onion/model.ts';
5
7
  import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
@@ -23,7 +25,7 @@ export function DtoUpdate<
23
25
  true
24
26
  >
25
27
  > {
26
- return _DtoMutate_raw(
28
+ const dtoClass = _DtoMutate_raw(
27
29
  modelLike,
28
30
  params,
29
31
  'update',
@@ -31,6 +33,8 @@ export function DtoUpdate<
31
33
  true,
32
34
  undefined,
33
35
  );
36
+ mergeTargetDecoratorDtoOpenapi({ rest: { schemaScene: 'form' } }, dtoClass.prototype);
37
+ return dtoClass;
34
38
  }
35
39
 
36
40
  // not use Partial/$Class.partial, for form render at frontend
@@ -32,8 +32,7 @@ export class ServiceColumns extends BeanBase {
32
32
  let columns = this.serviceColumnsCache.getColumnsCache(tableName);
33
33
  if (!columns) {
34
34
  const dialect = this.db.dialect;
35
- const connection = this.db.connection;
36
- const map = await connection(tableName).columnInfo();
35
+ const map = await dialect.fetchColumns(this.db.connection, tableName);
37
36
  columns = {};
38
37
  for (const name in map) {
39
38
  columns[name] = dialect.coerceColumn(map[name]);
@@ -79,6 +79,13 @@ export class ServiceDatabaseDialectBase extends BeanBase {
79
79
  return datas;
80
80
  }
81
81
 
82
+ async fetchColumns(
83
+ connection: Knex,
84
+ tableName: string,
85
+ ): Promise<Record<string, Knex.ColumnInfo>> {
86
+ return await connection(tableName).columnInfo();
87
+ }
88
+
82
89
  query(_result) {
83
90
  throw new Error('Not Implemented');
84
91
  }
@@ -90,9 +97,36 @@ export class ServiceDatabaseDialectBase extends BeanBase {
90
97
  coerceColumn(column: Knex.ColumnInfo): ITableColumn {
91
98
  const result = { type: column.type } as ITableColumn;
92
99
  result.default = this._coerceColumnValue(column.type, column.defaultValue);
100
+ const columnType = (column as Knex.ColumnInfo & { columnType?: string }).columnType;
101
+ if (columnType) result.columnType = columnType;
93
102
  return result;
94
103
  }
95
104
 
105
+ protected _isMysqlBooleanColumn(column: ITableColumn) {
106
+ return column.columnType?.trim().toLowerCase() === 'tinyint(1)';
107
+ }
108
+
109
+ protected async selectAsMysql(
110
+ _builder: Knex.QueryBuilder,
111
+ datas: any[],
112
+ fn: TypeDatabaseDialectTableColumnsFn,
113
+ ): Promise<any[]> {
114
+ const columns = await fn();
115
+ for (const data of datas) {
116
+ for (const columnName in columns) {
117
+ const column = columns[columnName];
118
+ if (
119
+ Object.prototype.hasOwnProperty.call(data, columnName) &&
120
+ this._isMysqlBooleanColumn(column)
121
+ ) {
122
+ const value = data[columnName];
123
+ if (!isNil(value)) data[columnName] = safeBoolean(value);
124
+ }
125
+ }
126
+ }
127
+ return datas;
128
+ }
129
+
96
130
  protected async selectAsSqlite3(
97
131
  _builder: Knex.QueryBuilder,
98
132
  datas: any[],
@@ -105,7 +139,9 @@ export class ServiceDatabaseDialectBase extends BeanBase {
105
139
  const column = columns[columnName];
106
140
  if (Object.prototype.hasOwnProperty.call(data, columnName)) {
107
141
  const value = data[columnName];
108
- if (column.type === 'json' && !isNil(value) && typeof value === 'string') {
142
+ if (BOOLEAN_COLUMN_TYPES.includes(column.type) && !isNil(value)) {
143
+ data[columnName] = safeBoolean(value);
144
+ } else if (column.type === 'json' && !isNil(value) && typeof value === 'string') {
109
145
  data[columnName] = JSON.parse(value);
110
146
  } else if (column.type === 'datetime' && !isNil(value)) {
111
147
  data[columnName] = new Date(value);
@@ -30,13 +30,19 @@ export class ServiceTransactionFiber extends BeanBase {
30
30
 
31
31
  async doCommit() {
32
32
  await this._connection.commit();
33
- await this._transactionConsistency.commitsDone();
34
33
  this._connection = undefined as any;
35
34
  }
36
35
 
37
36
  async doRollback() {
38
37
  await this._connection.rollback();
39
- await this._transactionConsistency.compensatesDone();
40
38
  this._connection = undefined as any;
41
39
  }
40
+
41
+ async commitsDone() {
42
+ await this._transactionConsistency.commitsDone();
43
+ }
44
+
45
+ async compensatesDone() {
46
+ await this._transactionConsistency.compensatesDone();
47
+ }
42
48
  }
@@ -127,20 +127,17 @@ export class ServiceTransaction extends BeanBase {
127
127
  if (fiber) {
128
128
  await fiber.doRollback();
129
129
  this.transactionState.remove(this._db);
130
+ await fiber.compensatesDone();
130
131
  }
131
132
  throw err;
132
133
  }
133
- try {
134
- if (fiber) {
134
+ if (fiber) {
135
+ try {
135
136
  await fiber.doCommit();
137
+ } finally {
136
138
  this.transactionState.remove(this._db);
137
139
  }
138
- } catch (err) {
139
- if (fiber) {
140
- await fiber.doRollback();
141
- this.transactionState.remove(this._db);
142
- }
143
- throw err;
140
+ await fiber.commitsDone();
144
141
  }
145
142
  return res;
146
143
  }
@@ -1,6 +1,7 @@
1
1
  export interface ITableColumn {
2
2
  type: string;
3
3
  default: any;
4
+ columnType?: string;
4
5
  }
5
6
 
6
7
  export type ITableColumns = Record<string, ITableColumn>;