interaqt 0.1.0

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 (214) hide show
  1. package/README.md +53 -0
  2. package/dist/index.d.ts +4 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +4 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/runtime/ActivityCall.d.ts +68 -0
  7. package/dist/runtime/ActivityCall.d.ts.map +1 -0
  8. package/dist/runtime/ActivityCall.js +379 -0
  9. package/dist/runtime/ActivityCall.js.map +1 -0
  10. package/dist/runtime/Controller.d.ts +60 -0
  11. package/dist/runtime/Controller.d.ts.map +1 -0
  12. package/dist/runtime/Controller.js +225 -0
  13. package/dist/runtime/Controller.js.map +1 -0
  14. package/dist/runtime/InteractionCall.d.ts +102 -0
  15. package/dist/runtime/InteractionCall.d.ts.map +1 -0
  16. package/dist/runtime/InteractionCall.js +385 -0
  17. package/dist/runtime/InteractionCall.js.map +1 -0
  18. package/dist/runtime/MonoSystem.d.ts +26 -0
  19. package/dist/runtime/MonoSystem.d.ts.map +1 -0
  20. package/dist/runtime/MonoSystem.js +331 -0
  21. package/dist/runtime/MonoSystem.js.map +1 -0
  22. package/dist/runtime/Mysql.d.ts +35 -0
  23. package/dist/runtime/Mysql.d.ts.map +1 -0
  24. package/dist/runtime/Mysql.js +171 -0
  25. package/dist/runtime/Mysql.js.map +1 -0
  26. package/dist/runtime/PostgreSQL.d.ts +36 -0
  27. package/dist/runtime/PostgreSQL.d.ts.map +1 -0
  28. package/dist/runtime/PostgreSQL.js +172 -0
  29. package/dist/runtime/PostgreSQL.js.map +1 -0
  30. package/dist/runtime/SQLite.d.ts +34 -0
  31. package/dist/runtime/SQLite.d.ts.map +1 -0
  32. package/dist/runtime/SQLite.js +146 -0
  33. package/dist/runtime/SQLite.js.map +1 -0
  34. package/dist/runtime/Scheduler.d.ts +81 -0
  35. package/dist/runtime/Scheduler.d.ts.map +1 -0
  36. package/dist/runtime/Scheduler.js +457 -0
  37. package/dist/runtime/Scheduler.js.map +1 -0
  38. package/dist/runtime/System.d.ts +312 -0
  39. package/dist/runtime/System.d.ts.map +1 -0
  40. package/dist/runtime/System.js +90 -0
  41. package/dist/runtime/System.js.map +1 -0
  42. package/dist/runtime/asyncInteractionContext.d.ts +3 -0
  43. package/dist/runtime/asyncInteractionContext.d.ts.map +1 -0
  44. package/dist/runtime/asyncInteractionContext.js +3 -0
  45. package/dist/runtime/asyncInteractionContext.js.map +1 -0
  46. package/dist/runtime/boolExpression.d.ts +23 -0
  47. package/dist/runtime/boolExpression.d.ts.map +1 -0
  48. package/dist/runtime/boolExpression.js +43 -0
  49. package/dist/runtime/boolExpression.js.map +1 -0
  50. package/dist/runtime/computedDataHandles/Any.d.ts +52 -0
  51. package/dist/runtime/computedDataHandles/Any.d.ts.map +1 -0
  52. package/dist/runtime/computedDataHandles/Any.js +152 -0
  53. package/dist/runtime/computedDataHandles/Any.js.map +1 -0
  54. package/dist/runtime/computedDataHandles/Computation.d.ts +108 -0
  55. package/dist/runtime/computedDataHandles/Computation.d.ts.map +1 -0
  56. package/dist/runtime/computedDataHandles/Computation.js +49 -0
  57. package/dist/runtime/computedDataHandles/Computation.js.map +1 -0
  58. package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts +42 -0
  59. package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts.map +1 -0
  60. package/dist/runtime/computedDataHandles/ComputedDataHandle.js +4 -0
  61. package/dist/runtime/computedDataHandles/ComputedDataHandle.js.map +1 -0
  62. package/dist/runtime/computedDataHandles/Count.d.ts +45 -0
  63. package/dist/runtime/computedDataHandles/Count.d.ts.map +1 -0
  64. package/dist/runtime/computedDataHandles/Count.js +85 -0
  65. package/dist/runtime/computedDataHandles/Count.js.map +1 -0
  66. package/dist/runtime/computedDataHandles/Every.d.ts +56 -0
  67. package/dist/runtime/computedDataHandles/Every.d.ts.map +1 -0
  68. package/dist/runtime/computedDataHandles/Every.js +178 -0
  69. package/dist/runtime/computedDataHandles/Every.js.map +1 -0
  70. package/dist/runtime/computedDataHandles/StateMachine.d.ts +74 -0
  71. package/dist/runtime/computedDataHandles/StateMachine.d.ts.map +1 -0
  72. package/dist/runtime/computedDataHandles/StateMachine.js +180 -0
  73. package/dist/runtime/computedDataHandles/StateMachine.js.map +1 -0
  74. package/dist/runtime/computedDataHandles/Transform.d.ts +26 -0
  75. package/dist/runtime/computedDataHandles/Transform.d.ts.map +1 -0
  76. package/dist/runtime/computedDataHandles/Transform.js +106 -0
  77. package/dist/runtime/computedDataHandles/Transform.js.map +1 -0
  78. package/dist/runtime/computedDataHandles/TransitionFinder.d.ts +57 -0
  79. package/dist/runtime/computedDataHandles/TransitionFinder.d.ts.map +1 -0
  80. package/dist/runtime/computedDataHandles/TransitionFinder.js +40 -0
  81. package/dist/runtime/computedDataHandles/TransitionFinder.js.map +1 -0
  82. package/dist/runtime/computedDataHandles/WeightedSummation.d.ts +57 -0
  83. package/dist/runtime/computedDataHandles/WeightedSummation.d.ts.map +1 -0
  84. package/dist/runtime/computedDataHandles/WeightedSummation.js +146 -0
  85. package/dist/runtime/computedDataHandles/WeightedSummation.js.map +1 -0
  86. package/dist/runtime/computedDataHandles/index.d.ts +7 -0
  87. package/dist/runtime/computedDataHandles/index.d.ts.map +1 -0
  88. package/dist/runtime/computedDataHandles/index.js +7 -0
  89. package/dist/runtime/computedDataHandles/index.js.map +1 -0
  90. package/dist/runtime/index.d.ts +15 -0
  91. package/dist/runtime/index.d.ts.map +1 -0
  92. package/dist/runtime/index.js +15 -0
  93. package/dist/runtime/index.js.map +1 -0
  94. package/dist/runtime/server.d.ts +35 -0
  95. package/dist/runtime/server.d.ts.map +1 -0
  96. package/dist/runtime/server.js +171 -0
  97. package/dist/runtime/server.js.map +1 -0
  98. package/dist/runtime/types/boolExpression.d.ts +22 -0
  99. package/dist/runtime/types/boolExpression.d.ts.map +1 -0
  100. package/dist/runtime/types/boolExpression.js +6 -0
  101. package/dist/runtime/types/boolExpression.js.map +1 -0
  102. package/dist/runtime/util.d.ts +10 -0
  103. package/dist/runtime/util.d.ts.map +1 -0
  104. package/dist/runtime/util.js +39 -0
  105. package/dist/runtime/util.js.map +1 -0
  106. package/dist/shared/BoolExp.d.ts +97 -0
  107. package/dist/shared/BoolExp.d.ts.map +1 -0
  108. package/dist/shared/BoolExp.js +252 -0
  109. package/dist/shared/BoolExp.js.map +1 -0
  110. package/dist/shared/activity/Activity.d.ts +465 -0
  111. package/dist/shared/activity/Activity.d.ts.map +1 -0
  112. package/dist/shared/activity/Activity.js +264 -0
  113. package/dist/shared/activity/Activity.js.map +1 -0
  114. package/dist/shared/activity/Condition.d.ts +75 -0
  115. package/dist/shared/activity/Condition.d.ts.map +1 -0
  116. package/dist/shared/activity/Condition.js +51 -0
  117. package/dist/shared/activity/Condition.js.map +1 -0
  118. package/dist/shared/activity/Data.d.ts +115 -0
  119. package/dist/shared/activity/Data.d.ts.map +1 -0
  120. package/dist/shared/activity/Data.js +89 -0
  121. package/dist/shared/activity/Data.js.map +1 -0
  122. package/dist/shared/attributive.d.ts +93 -0
  123. package/dist/shared/attributive.d.ts.map +1 -0
  124. package/dist/shared/attributive.js +59 -0
  125. package/dist/shared/attributive.js.map +1 -0
  126. package/dist/shared/computed.d.ts +607 -0
  127. package/dist/shared/computed.d.ts.map +1 -0
  128. package/dist/shared/computed.js +202 -0
  129. package/dist/shared/computed.js.map +1 -0
  130. package/dist/shared/createClass.d.ts +102 -0
  131. package/dist/shared/createClass.d.ts.map +1 -0
  132. package/dist/shared/createClass.js +276 -0
  133. package/dist/shared/createClass.js.map +1 -0
  134. package/dist/shared/dictionary/Dictionary.d.ts +40 -0
  135. package/dist/shared/dictionary/Dictionary.d.ts.map +1 -0
  136. package/dist/shared/dictionary/Dictionary.js +51 -0
  137. package/dist/shared/dictionary/Dictionary.js.map +1 -0
  138. package/dist/shared/entity/Entity.d.ts +149 -0
  139. package/dist/shared/entity/Entity.d.ts.map +1 -0
  140. package/dist/shared/entity/Entity.js +226 -0
  141. package/dist/shared/entity/Entity.js.map +1 -0
  142. package/dist/shared/index.d.ts +11 -0
  143. package/dist/shared/index.d.ts.map +1 -0
  144. package/dist/shared/index.js +11 -0
  145. package/dist/shared/index.js.map +1 -0
  146. package/dist/shared/user/User.d.ts +21 -0
  147. package/dist/shared/user/User.d.ts.map +1 -0
  148. package/dist/shared/user/User.js +11 -0
  149. package/dist/shared/user/User.js.map +1 -0
  150. package/dist/shared/utils.d.ts +11 -0
  151. package/dist/shared/utils.d.ts.map +1 -0
  152. package/dist/shared/utils.js +19 -0
  153. package/dist/shared/utils.js.map +1 -0
  154. package/dist/storage/erstorage/AttributeInfo.d.ts +40 -0
  155. package/dist/storage/erstorage/AttributeInfo.d.ts.map +1 -0
  156. package/dist/storage/erstorage/AttributeInfo.js +147 -0
  157. package/dist/storage/erstorage/AttributeInfo.js.map +1 -0
  158. package/dist/storage/erstorage/AttributeQuery.d.ts +33 -0
  159. package/dist/storage/erstorage/AttributeQuery.d.ts.map +1 -0
  160. package/dist/storage/erstorage/AttributeQuery.js +190 -0
  161. package/dist/storage/erstorage/AttributeQuery.js.map +1 -0
  162. package/dist/storage/erstorage/EntityQueryHandle.d.ts +29 -0
  163. package/dist/storage/erstorage/EntityQueryHandle.d.ts.map +1 -0
  164. package/dist/storage/erstorage/EntityQueryHandle.js +78 -0
  165. package/dist/storage/erstorage/EntityQueryHandle.js.map +1 -0
  166. package/dist/storage/erstorage/EntityToTableMap.d.ts +85 -0
  167. package/dist/storage/erstorage/EntityToTableMap.d.ts.map +1 -0
  168. package/dist/storage/erstorage/EntityToTableMap.js +262 -0
  169. package/dist/storage/erstorage/EntityToTableMap.js.map +1 -0
  170. package/dist/storage/erstorage/LinkInfo.d.ts +35 -0
  171. package/dist/storage/erstorage/LinkInfo.d.ts.map +1 -0
  172. package/dist/storage/erstorage/LinkInfo.js +89 -0
  173. package/dist/storage/erstorage/LinkInfo.js.map +1 -0
  174. package/dist/storage/erstorage/MatchExp.d.ts +37 -0
  175. package/dist/storage/erstorage/MatchExp.d.ts.map +1 -0
  176. package/dist/storage/erstorage/MatchExp.js +211 -0
  177. package/dist/storage/erstorage/MatchExp.js.map +1 -0
  178. package/dist/storage/erstorage/Modifier.d.ts +23 -0
  179. package/dist/storage/erstorage/Modifier.d.ts.map +1 -0
  180. package/dist/storage/erstorage/Modifier.js +24 -0
  181. package/dist/storage/erstorage/Modifier.js.map +1 -0
  182. package/dist/storage/erstorage/NewRecordData.d.ts +42 -0
  183. package/dist/storage/erstorage/NewRecordData.d.ts.map +1 -0
  184. package/dist/storage/erstorage/NewRecordData.js +178 -0
  185. package/dist/storage/erstorage/NewRecordData.js.map +1 -0
  186. package/dist/storage/erstorage/RecordInfo.d.ts +26 -0
  187. package/dist/storage/erstorage/RecordInfo.d.ts.map +1 -0
  188. package/dist/storage/erstorage/RecordInfo.js +111 -0
  189. package/dist/storage/erstorage/RecordInfo.js.map +1 -0
  190. package/dist/storage/erstorage/RecordQuery.d.ts +73 -0
  191. package/dist/storage/erstorage/RecordQuery.d.ts.map +1 -0
  192. package/dist/storage/erstorage/RecordQuery.js +158 -0
  193. package/dist/storage/erstorage/RecordQuery.js.map +1 -0
  194. package/dist/storage/erstorage/RecordQueryAgent.d.ts +84 -0
  195. package/dist/storage/erstorage/RecordQueryAgent.d.ts.map +1 -0
  196. package/dist/storage/erstorage/RecordQueryAgent.js +1130 -0
  197. package/dist/storage/erstorage/RecordQueryAgent.js.map +1 -0
  198. package/dist/storage/erstorage/Setup.d.ts +49 -0
  199. package/dist/storage/erstorage/Setup.d.ts.map +1 -0
  200. package/dist/storage/erstorage/Setup.js +400 -0
  201. package/dist/storage/erstorage/Setup.js.map +1 -0
  202. package/dist/storage/erstorage/util.d.ts +6 -0
  203. package/dist/storage/erstorage/util.d.ts.map +1 -0
  204. package/dist/storage/erstorage/util.js +25 -0
  205. package/dist/storage/erstorage/util.js.map +1 -0
  206. package/dist/storage/index.d.ts +13 -0
  207. package/dist/storage/index.d.ts.map +1 -0
  208. package/dist/storage/index.js +13 -0
  209. package/dist/storage/index.js.map +1 -0
  210. package/dist/storage/utils.d.ts +10 -0
  211. package/dist/storage/utils.d.ts.map +1 -0
  212. package/dist/storage/utils.js +48 -0
  213. package/dist/storage/utils.js.map +1 -0
  214. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordQueryAgent.js","sourceRoot":"","sources":["../../../src/storage/erstorage/RecordQueryAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Entity, KlassInstance, Relation } from '@shared';
2
+ import { LinkMapItem, MapData, RecordMapItem } from "./EntityToTableMap.js";
3
+ import { Database } from "@runtime";
4
+ type ColumnData = {
5
+ name: string;
6
+ type: string;
7
+ fieldType?: string;
8
+ collection?: boolean;
9
+ notNull?: boolean;
10
+ defaultValue?: () => any;
11
+ };
12
+ export type TableData = {
13
+ [k: string]: {
14
+ columns: {
15
+ [k: string]: ColumnData;
16
+ };
17
+ hasId?: boolean;
18
+ };
19
+ };
20
+ export type MergeLinks = string[];
21
+ export declare class DBSetup {
22
+ entities: KlassInstance<typeof Entity>[];
23
+ relations: KlassInstance<typeof Relation>[];
24
+ database?: Database | undefined;
25
+ mergeLinks: MergeLinks;
26
+ recordToTableMap: Map<string, string>;
27
+ tableToRecordsMap: Map<string, Set<string>>;
28
+ mergeLog: any[];
29
+ tables: TableData;
30
+ map: MapData;
31
+ constructor(entities: KlassInstance<typeof Entity>[], relations: KlassInstance<typeof Relation>[], database?: Database | undefined, mergeLinks?: MergeLinks);
32
+ createRecordToTable(item: string, table: string): void;
33
+ joinTables(joinTargetRecord: string, record: string, link: string): string[] | undefined;
34
+ combineRecordTable(mergeTarget: string, toMerge: string, link: string): string[] | undefined;
35
+ renameTableWithJoinedEntities(originTableName: string): void;
36
+ createRecord(entity: KlassInstance<typeof Entity> | KlassInstance<typeof Relation>, isRelation?: boolean): RecordMapItem;
37
+ createLink(relationName: string, relation: KlassInstance<typeof Relation>): LinkMapItem;
38
+ getRecordName(rawRecord: KlassInstance<typeof Entity> | KlassInstance<typeof Relation>): string;
39
+ createLinkOfRelationAndEntity(relationEntityName: string, relationName: string, relation: KlassInstance<typeof Relation>, isSource: boolean): LinkMapItem;
40
+ getRelationNameOfRelationAndEntity(relationName: string, isSource: boolean): string;
41
+ buildMap(): void;
42
+ mergeRecords(): void;
43
+ assignTableAndField(): void;
44
+ buildTables(): void;
45
+ createTableSQL(): string[];
46
+ createTables(): Promise<any[]>;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=Setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setup.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/Setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAY,QAAQ,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAmB,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAG7G,OAAO,EAAuB,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIzD,KAAK,UAAU,GAAG;IACd,IAAI,EAAC,MAAM,CAAC;IACZ,IAAI,EAAC,MAAM,CAAC;IACZ,SAAS,CAAC,EAAC,MAAM,CAAC;IAClB,UAAU,CAAC,EAAC,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAK,GAAG,CAAA;CAC1B,CAAA;AAGD,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,CAAC,EAAC,MAAM,GAAG;QACR,OAAO,EAAE;YAAC,CAAC,CAAC,EAAC,MAAM,GAAG,UAAU,CAAA;SAAC,CAAC;QAClC,KAAK,CAAC,EAAE,OAAO,CAAA;KAClB,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,EAAE,CAAA;AAGjC,qBAAa,OAAO;IAOL,QAAQ,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,EAAE;IACxC,SAAS,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE;IAC3C,QAAQ,CAAC,EAAE,QAAQ;IACnB,UAAU,EAAE,UAAU;IAT1B,gBAAgB,sBAA2B;IAC3C,iBAAiB,2BAAiC;IAClD,QAAQ,EAAE,GAAG,EAAE,CAAK;IACpB,MAAM,EAAC,SAAS,CAAK;IACrB,GAAG,EAAE,OAAO,CAA4B;gBAEpC,QAAQ,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,EAAE,EACxC,SAAS,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE,EAC3C,QAAQ,CAAC,EAAE,QAAQ,YAAA,EACnB,UAAU,GAAE,UAAe;IAKtC,mBAAmB,CAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM;IAM7C,UAAU,CAAC,gBAAgB,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAE,SAAS;IAoCrF,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAUrE,6BAA6B,CAAC,eAAe,EAAE,MAAM;IAiBrD,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GA4B/F,aAAa;IAEtB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,GAYhE,WAAW;IAEpB,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,QAAQ,CAAC,GAAG,MAAM;IAU/F,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,GAalI,WAAW;IAEpB,kCAAkC,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAI1E,QAAQ;IA6DR,YAAY;IAuHZ,mBAAmB;IAuDnB,WAAW;IA6BX,cAAc;IAUd,YAAY;CAKf"}
@@ -0,0 +1,400 @@
1
+ import { assert } from "../utils.js";
2
+ import { isRelation } from "./util.js";
3
+ import { ID_ATTR, ROW_ID_ATTR } from "@runtime";
4
+ export class DBSetup {
5
+ constructor(entities, relations, database, mergeLinks = []) {
6
+ this.entities = entities;
7
+ this.relations = relations;
8
+ this.database = database;
9
+ this.mergeLinks = mergeLinks;
10
+ this.recordToTableMap = new Map();
11
+ this.tableToRecordsMap = new Map();
12
+ this.mergeLog = [];
13
+ this.tables = {};
14
+ this.map = { links: {}, records: {} };
15
+ this.buildMap();
16
+ this.buildTables();
17
+ }
18
+ createRecordToTable(item, table) {
19
+ this.recordToTableMap.set(item, table);
20
+ assert(!this.tableToRecordsMap.get(table), `create table for ${item} ${table} failed, ${table} already exist.`);
21
+ this.tableToRecordsMap.set(table, new Set([item]));
22
+ }
23
+ // CAUTION 把一个 item 拉过来,等于把它所有同表的 item 拉过来
24
+ joinTables(joinTargetRecord, record, link) {
25
+ assert(joinTargetRecord !== record, `join entity should not equal, ${record}`);
26
+ const moveTable = this.recordToTableMap.get(record);
27
+ const joinTargetTable = this.recordToTableMap.get(joinTargetRecord);
28
+ const joinTargetSameTableRecords = this.tableToRecordsMap.get(joinTargetTable);
29
+ assert(!!moveTable && !!joinTargetTable, `table not exists for ${record} ${moveTable} to join ${joinTargetRecord} ${joinTargetTable}`);
30
+ if (moveTable == joinTargetTable)
31
+ return;
32
+ const sameTableRecordsToMove = this.tableToRecordsMap.get(moveTable);
33
+ // 0 检测是否有环。CAUTION 就是检测 joinTargetTable 里面是否已经有了重复的。
34
+ const conflicts = [];
35
+ sameTableRecordsToMove.forEach(sameTableRecordToMove => {
36
+ // TODO 还要提供 merge 的关系信息?
37
+ if (joinTargetSameTableRecords.has(sameTableRecordToMove))
38
+ conflicts.push(sameTableRecordToMove);
39
+ });
40
+ if (conflicts.length) {
41
+ this.mergeLog.push({ joinTargetRecord, record, link, conflicts });
42
+ return conflicts;
43
+ }
44
+ // 1. 清空原来 table 里的 records
45
+ this.tableToRecordsMap.set(moveTable, new Set());
46
+ // 2. 移除的 record 对 table 的指针也都修改过来
47
+ sameTableRecordsToMove.forEach(sameTableRecord => this.recordToTableMap.set(sameTableRecord, joinTargetTable));
48
+ // 3. 新 table 合并数据
49
+ this.tableToRecordsMap.set(joinTargetTable, new Set(Array.from(joinTargetSameTableRecords).concat(Array.from(sameTableRecordsToMove))));
50
+ // 4. 记录 log
51
+ this.mergeLog.push({ joinTargetRecord, record, link });
52
+ }
53
+ combineRecordTable(mergeTarget, toMerge, link) {
54
+ let linkConflict;
55
+ // target/toMerge 一定是不同实体才能merge 所以这里可以用这个判断方向
56
+ const virtualLinkName = this.map.records[link].attributes.source.linkName;
57
+ linkConflict = this.joinTables(mergeTarget, link, virtualLinkName);
58
+ if (linkConflict)
59
+ return linkConflict;
60
+ return this.joinTables(mergeTarget, toMerge, link);
61
+ }
62
+ renameTableWithJoinedEntities(originTableName) {
63
+ const records = Array.from(this.tableToRecordsMap.get(originTableName));
64
+ if (!records.length)
65
+ return;
66
+ // CAUTION 有合并的情况的话,里面一定有 entity,只用 entity 的名字。除非TableName 始终只用其中 的 entity 名字
67
+ const entities = records.filter(recordName => !this.map.records[recordName].isRelation);
68
+ const newTableName = entities.length ? entities.join('_') : originTableName;
69
+ this.tableToRecordsMap.delete(originTableName);
70
+ this.tableToRecordsMap.set(newTableName, new Set(records));
71
+ records.forEach(record => {
72
+ this.recordToTableMap.set(record, newTableName);
73
+ });
74
+ }
75
+ createRecord(entity, isRelation) {
76
+ const entityWithProps = entity;
77
+ const attributes = Object.fromEntries(entityWithProps.properties.map((property) => {
78
+ const prop = property;
79
+ return [
80
+ prop.name,
81
+ {
82
+ type: prop.type,
83
+ computed: prop.computed,
84
+ collection: prop.collection,
85
+ defaultValue: prop.defaultValue
86
+ }
87
+ ];
88
+ }));
89
+ // 自动补充
90
+ attributes[ID_ATTR] = {
91
+ type: 'id'
92
+ };
93
+ if (isRelation) {
94
+ assert(!attributes.source && !attributes.target, 'source and target is reserved name for relation attributes');
95
+ }
96
+ return {
97
+ table: entityWithProps.name,
98
+ attributes,
99
+ isRelation,
100
+ };
101
+ }
102
+ createLink(relationName, relation) {
103
+ const relationWithProps = relation;
104
+ if (!relationWithProps.type)
105
+ debugger;
106
+ return {
107
+ table: relationName,
108
+ relType: relationWithProps.type.split(':'),
109
+ sourceRecord: this.getRecordName(relationWithProps.source),
110
+ sourceProperty: relationWithProps.sourceProperty,
111
+ targetRecord: this.getRecordName(relationWithProps.target),
112
+ targetProperty: relationWithProps.targetProperty,
113
+ recordName: relationName,
114
+ isTargetReliance: relationWithProps.isTargetReliance
115
+ };
116
+ }
117
+ getRecordName(rawRecord) {
118
+ if (isRelation(rawRecord)) {
119
+ const record = rawRecord;
120
+ return `${record.source.name}_${record.sourceProperty}_${record.targetProperty}_${record.target.name}`;
121
+ }
122
+ else {
123
+ const record = rawRecord;
124
+ return record.name;
125
+ }
126
+ }
127
+ //虚拟 link
128
+ createLinkOfRelationAndEntity(relationEntityName, relationName, relation, isSource) {
129
+ const relationWithProps = relation;
130
+ const [sourceRelType, targetRelType] = relationWithProps.type.split(':');
131
+ return {
132
+ table: undefined, // 虚拟 link 没有表
133
+ sourceRecord: relationEntityName,
134
+ sourceProperty: isSource ? 'source' : 'target',
135
+ targetRecord: isSource ? this.getRecordName(relationWithProps.source) : this.getRecordName(relationWithProps.target),
136
+ // targetRecord: isSource ? relation.source.name: relation.target.name,
137
+ targetProperty: undefined, // 不能从 entity 来获取关系表
138
+ relType: [isSource ? targetRelType : sourceRelType, '1'],
139
+ isSourceRelation: true,
140
+ mergedTo: 'combined'
141
+ };
142
+ }
143
+ getRelationNameOfRelationAndEntity(relationName, isSource) {
144
+ return `${relationName}_${isSource ? 'source' : 'target'}`;
145
+ }
146
+ buildMap() {
147
+ // 1. 按照范式生成基础 entity record
148
+ this.entities.forEach(entity => {
149
+ const entityWithProps = entity;
150
+ assert(!this.map.records[entityWithProps.name], `entity name ${entityWithProps.name} is duplicated`);
151
+ this.map.records[entityWithProps.name] = this.createRecord(entity);
152
+ // 记录一下 entity 和 表的关系。后面用于合并的时候做计算。
153
+ this.createRecordToTable(entityWithProps.name, entityWithProps.name);
154
+ });
155
+ // 2. 生成 relation record 以及所有的 link
156
+ this.relations.forEach(relation => {
157
+ const sourceName = this.getRecordName(relation.source);
158
+ const targetName = this.getRecordName(relation.target);
159
+ const relationName = relation.name || `${sourceName}_${relation.sourceProperty}_${relation.targetProperty}_${targetName}`;
160
+ assert(!this.map.records[relationName], `relation name ${relationName} is duplicated`);
161
+ this.map.records[relationName] = this.createRecord(relation, true);
162
+ this.createRecordToTable(relationName, relationName);
163
+ // 记录 relation 里面的 Entity 和 Entity 的关系
164
+ this.map.links[relationName] = this.createLink(relationName, relation);
165
+ // 记录 relation 和实体之间的关系。这个关系是单向的,只能从 relation 发起。
166
+ const virtualSourceRelationName = this.getRelationNameOfRelationAndEntity(relationName, true);
167
+ this.map.links[virtualSourceRelationName] = this.createLinkOfRelationAndEntity(relationName, virtualSourceRelationName, relation, true);
168
+ const virtualTargetRelationName = this.getRelationNameOfRelationAndEntity(relationName, false);
169
+ this.map.links[virtualTargetRelationName] = this.createLinkOfRelationAndEntity(relationName, virtualTargetRelationName, relation, false);
170
+ });
171
+ // 3. 根据 Link 补充 record attribute 到 record 里面。方便之后的查询。
172
+ Object.entries(this.map.links).forEach(([relation, relationData]) => {
173
+ assert(!relationData.isSourceRelation || (relationData.sourceProperty === 'source' || relationData.sourceProperty === 'target'), 'virtual relation sourceProperty should only be source/target');
174
+ if (!this.map.records[relationData.sourceRecord])
175
+ debugger;
176
+ this.map.records[relationData.sourceRecord].attributes[relationData.sourceProperty] = {
177
+ type: 'id',
178
+ isRecord: true,
179
+ relType: relationData.relType,
180
+ recordName: relationData.targetRecord,
181
+ linkName: relation,
182
+ isSource: true,
183
+ // CAUTION 这里是表示这个 target 是 reliance
184
+ isReliance: relationData.isTargetReliance
185
+ };
186
+ // CAUTION 关联查询时,不可能出现从实体来获取一个关系的情况,语义不正确。
187
+ assert(!(relationData.isSourceRelation && relationData.targetProperty), 'virtual relation should not have targetProperty');
188
+ if (relationData.targetProperty) {
189
+ this.map.records[relationData.targetRecord].attributes[relationData.targetProperty] = {
190
+ type: 'id',
191
+ isRecord: true,
192
+ // CAUTION 这里翻转了!在 AttributeInfo 中方便判断。不能用 Array.reverse(),因为不会返回新数组。
193
+ relType: [relationData.relType[1], relationData.relType[0]],
194
+ recordName: relationData.sourceRecord,
195
+ linkName: relation,
196
+ isSource: false,
197
+ };
198
+ }
199
+ });
200
+ this.mergeRecords();
201
+ this.assignTableAndField();
202
+ }
203
+ mergeRecords() {
204
+ // 基本合表策略:
205
+ // 1. 从用户指定的 mergeLinks 里面开始合并三表合一
206
+ // 2. reliance 三表合一。这里有一个不能有链的检测。
207
+ // 3. 剩余的 x:1 关系只合并关系表。
208
+ // 合并后要做的事:
209
+ // 1) 修改 links 里面的数据。以里面的 mergeTo 作为判断标准
210
+ // TODO 可能有 reliance 实体声明自己不合并。
211
+ // 0. 做好数据准备,先把 reliance 关系和 非 reliance 的 xToOne 找出来等待处理。CAUTION oneToOneReliance 肯定不是 symmetric ?
212
+ const oneToOneRelianceLinks = Object.fromEntries(Object.entries(this.map.links).filter(([, linkData]) => {
213
+ return !linkData.isSourceRelation && linkData.relType[0] === '1' && linkData.relType[1] === '1' && linkData.isTargetReliance;
214
+ }));
215
+ const xToOneNotRelianceLinks = Object.fromEntries(Object.entries(this.map.links).filter(([, linkData]) => {
216
+ // CAUTION 一定要过滤掉虚拟 link
217
+ return !linkData.isSourceRelation && !linkData.isTargetReliance &&
218
+ ((linkData.relType[0] === '1' && linkData.relType[1] === '1') ||
219
+ (linkData.relType[0] === 'n' && linkData.relType[1] === '1') ||
220
+ (linkData.relType[0] === '1' && linkData.relType[1] === 'n'));
221
+ }));
222
+ const mergedLinks = [];
223
+ // 1. 遍历用户指定的 merge 路径。
224
+ this.mergeLinks.forEach(path => {
225
+ const [rootRecord, ...attributePath] = path.split('.');
226
+ let currentRecord = rootRecord;
227
+ for (let i = 0; i < attributePath.length; i++) {
228
+ const currentAttribute = attributePath[i];
229
+ const attributeData = this.map.records[currentRecord].attributes[currentAttribute];
230
+ const linkName = attributeData.linkName;
231
+ const linkData = this.map.links[linkName];
232
+ const { relType, sourceRecord, targetRecord } = linkData;
233
+ assert(relType[0] === '1' && relType[1] === '1' && sourceRecord !== targetRecord, `only 1:1 can merge: ${rootRecord}.${attributePath.slice(0, i + 1).join('.')}`);
234
+ const recordToMove = sourceRecord === currentRecord ? targetRecord : sourceRecord;
235
+ const conflicts = this.combineRecordTable(currentRecord, recordToMove, linkName);
236
+ if (conflicts) {
237
+ throw new Error(`conflict found when join ${linkName}, ${conflicts.join(',')} already merged with ${currentRecord}`);
238
+ }
239
+ // 成功要修改 map 的数据
240
+ linkData.mergedTo = 'combined';
241
+ mergedLinks.push(linkData);
242
+ // 路径下一个
243
+ currentRecord = attributeData.recordName;
244
+ // 处理完了 在上面的 links 里面删除这个 link
245
+ delete oneToOneRelianceLinks[linkName];
246
+ delete xToOneNotRelianceLinks[linkName];
247
+ }
248
+ });
249
+ // 2. reliance 三表合一。这里有一个不能有链的检测。
250
+ Object.values(oneToOneRelianceLinks).forEach(linkData => {
251
+ const { sourceRecord, targetRecord, recordName: linkRecord } = linkData;
252
+ // 只是尝试。有冲突就不会处理
253
+ const conflicts = this.combineRecordTable(sourceRecord, targetRecord, linkRecord);
254
+ if (!conflicts) {
255
+ linkData.mergedTo = 'combined';
256
+ mergedLinks.push(linkData);
257
+ }
258
+ else {
259
+ // 改为 尝试 merge link
260
+ const linkToRecordLinkName = this.map.records[linkRecord].attributes.source.linkName;
261
+ const linkConflicts = this.joinTables(sourceRecord, linkRecord, linkToRecordLinkName);
262
+ if (!linkConflicts) {
263
+ this.mergeLog.push(conflicts);
264
+ linkData.mergedTo = 'source';
265
+ mergedLinks.push(linkData);
266
+ }
267
+ }
268
+ });
269
+ // CAUTION 这些关系里面没有虚拟关系。上面过滤掉了。
270
+ // FIXME 还要加上 reliance 不是 1:1 的?
271
+ // 3. 剩余的 x:1 关系只合并关系表。
272
+ Object.values(xToOneNotRelianceLinks).forEach(linkData => {
273
+ const { relType, sourceRecord, targetRecord, recordName: linkRecord } = linkData;
274
+ const mergeWithSource = relType[1] !== 'n';
275
+ const mergeTarget = mergeWithSource ? sourceRecord : targetRecord;
276
+ const linkToRecordLinkName = this.map.records[linkRecord].attributes[mergeWithSource ? 'source' : 'target'].linkName;
277
+ // 只是尝试。有冲突就不会处理
278
+ const linkConflicts = this.joinTables(mergeTarget, linkRecord, linkToRecordLinkName);
279
+ if (!linkConflicts) {
280
+ linkData.mergedTo = mergeWithSource ? 'source' : 'target';
281
+ mergedLinks.push(linkData);
282
+ }
283
+ });
284
+ // 4. 先给所有的 virtualLink 赋予默认 的 mergeTo,下一步再按照实际情况修改该
285
+ Object.values(this.map.links).forEach(linkData => {
286
+ if (linkData.isSourceRelation) {
287
+ linkData.mergedTo = 'source';
288
+ }
289
+ });
290
+ // 4.1 给 virtualLink 也更新 map
291
+ mergedLinks.forEach(mergedLinkData => {
292
+ if (mergedLinkData.mergedTo === 'combined' || mergedLinkData.mergedTo === 'source') {
293
+ const sourceLinkName = this.map.records[mergedLinkData.recordName].attributes.source.linkName;
294
+ this.map.links[sourceLinkName].mergedTo = 'combined';
295
+ }
296
+ if (mergedLinkData.mergedTo === 'combined' || mergedLinkData.mergedTo === 'target') {
297
+ const sourceLinkName = this.map.records[mergedLinkData.recordName].attributes.target.linkName;
298
+ this.map.links[sourceLinkName].mergedTo = 'combined';
299
+ }
300
+ });
301
+ // TODO 独立字段的处理
302
+ }
303
+ assignTableAndField() {
304
+ // 1. 给所有的 record 分配表(表名重命名过了)
305
+ const originTableNames = Array.from(this.tableToRecordsMap.keys());
306
+ for (let originTableName of originTableNames) {
307
+ this.renameTableWithJoinedEntities(originTableName);
308
+ }
309
+ // 2. 给所有 record 分配 table,给 value 字段分配 field
310
+ Object.entries(this.map.records).forEach(([recordName, record]) => {
311
+ record.table = this.recordToTableMap.get(recordName);
312
+ Object.entries(record.attributes).forEach(([attributeName, attributeData]) => {
313
+ if (attributeData.isRecord)
314
+ return;
315
+ const valueAttributeData = attributeData;
316
+ valueAttributeData.field = `${recordName}_${attributeName}`;
317
+ valueAttributeData.fieldType = this.database.mapToDBFieldType(valueAttributeData.type, valueAttributeData.collection);
318
+ });
319
+ });
320
+ // 2.1 给所有 relation record 的 table 信息同步到 map.link 上
321
+ Object.entries(this.map.links).forEach(([linkName, link]) => {
322
+ if (link.isSourceRelation)
323
+ return;
324
+ link.table = this.recordToTableMap.get(linkName);
325
+ });
326
+ // 3. 开始决定合表后的 source/target 字段分配。这里只要处理作为 relation 的 record 的 source/target 字段
327
+ // CAUTION 因为后面无论是处理 join 还是其他的,都是从 record 上去找字段。不是从 link 中
328
+ Object.entries(this.map.records).forEach(([recordName, record]) => {
329
+ if (!record.isRelation)
330
+ return;
331
+ const link = this.map.links[recordName];
332
+ const sourceAttribute = record.attributes.source;
333
+ const targetAttribute = record.attributes.target;
334
+ if (!link.mergedTo) {
335
+ sourceAttribute.field = `${recordName}_source`;
336
+ sourceAttribute.fieldType = this.database.mapToDBFieldType(sourceAttribute.type, false);
337
+ targetAttribute.field = `${recordName}_target`;
338
+ targetAttribute.fieldType = this.database.mapToDBFieldType(targetAttribute.type, false);
339
+ }
340
+ else if (link.mergedTo === 'source') {
341
+ // field 名字以 sourceRecord 里面的称呼为主
342
+ targetAttribute.field = `${link.sourceRecord}_${link.sourceProperty}`;
343
+ targetAttribute.fieldType = this.database.mapToDBFieldType(targetAttribute.type, false);
344
+ }
345
+ else if (link.mergedTo === 'target') {
346
+ sourceAttribute.field = `${link.targetRecord}_${link.targetProperty}`;
347
+ sourceAttribute.fieldType = this.database.mapToDBFieldType(sourceAttribute.type, false);
348
+ }
349
+ else {
350
+ // combined 情况
351
+ // const sourceRecord = this.map.records[link.sourceRecord]
352
+ // const targetRecord = this.map.records[link.targetRecord]
353
+ // record.attributes.source.field = sourceRecord.attributes[ID_ATTR].field
354
+ // record.attributes.target.field = targetRecord.attributes[ID_ATTR].field
355
+ }
356
+ });
357
+ }
358
+ buildTables() {
359
+ // 先添加 valueAttributes 的字段。
360
+ Object.entries(this.map.records).forEach(([recordName, record]) => {
361
+ if (!this.tables[record.table]) {
362
+ this.tables[record.table] = { columns: {
363
+ [ROW_ID_ATTR]: {
364
+ name: ROW_ID_ATTR,
365
+ type: 'pk',
366
+ fieldType: this.database.mapToDBFieldType('pk'),
367
+ }
368
+ } };
369
+ }
370
+ // 有分配 field 的都说明在这张表内
371
+ Object.entries(record.attributes).forEach(([attributeName, attribute]) => {
372
+ if (!attribute.field || this.tables[record.table].columns[attribute.field])
373
+ return;
374
+ if (!attribute.fieldType) {
375
+ throw new Error(`fieldType not found for ${attribute.field} ${attribute.type}`);
376
+ }
377
+ this.tables[record.table].columns[attribute.field] = {
378
+ name: attribute.field,
379
+ type: attribute.type,
380
+ fieldType: attribute.fieldType,
381
+ defaultValue: attribute.defaultValue
382
+ };
383
+ });
384
+ });
385
+ }
386
+ createTableSQL() {
387
+ return Object.keys(this.tables).map(tableName => (`
388
+ CREATE TABLE "${tableName}" (
389
+ ${Object.values(this.tables[tableName].columns).map(column => (`
390
+ "${column.name}" ${column.fieldType} ${column.defaultValue ? `DEFAULT ${JSON.stringify(column.defaultValue())}` : ''}`)).join(',')}
391
+ )
392
+ `));
393
+ }
394
+ createTables() {
395
+ return Promise.all(this.createTableSQL().map(sql => {
396
+ return this.database.scheme(sql);
397
+ }));
398
+ }
399
+ }
400
+ //# sourceMappingURL=Setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setup.js","sourceRoot":"","sources":["../../../src/storage/erstorage/Setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function flatten<T>(arr: (T | T[])[]): T[];
2
+ export declare function someAsync<T>(arr: T[], handle: (t: T) => Promise<boolean>): Promise<boolean>;
3
+ export declare function isRelation(relation: any): boolean;
4
+ export declare function indexBy(arr: any[], key: string): any;
5
+ export declare function assert(condition: any, message: string): void;
6
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/util.ts"],"names":[],"mappings":"AACA,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,OAIxC;AACD,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAQjG,wBAAgB,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAEjD;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,OAE9C;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,QAKrD"}