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.
- package/README.md +53 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/ActivityCall.d.ts +68 -0
- package/dist/runtime/ActivityCall.d.ts.map +1 -0
- package/dist/runtime/ActivityCall.js +379 -0
- package/dist/runtime/ActivityCall.js.map +1 -0
- package/dist/runtime/Controller.d.ts +60 -0
- package/dist/runtime/Controller.d.ts.map +1 -0
- package/dist/runtime/Controller.js +225 -0
- package/dist/runtime/Controller.js.map +1 -0
- package/dist/runtime/InteractionCall.d.ts +102 -0
- package/dist/runtime/InteractionCall.d.ts.map +1 -0
- package/dist/runtime/InteractionCall.js +385 -0
- package/dist/runtime/InteractionCall.js.map +1 -0
- package/dist/runtime/MonoSystem.d.ts +26 -0
- package/dist/runtime/MonoSystem.d.ts.map +1 -0
- package/dist/runtime/MonoSystem.js +331 -0
- package/dist/runtime/MonoSystem.js.map +1 -0
- package/dist/runtime/Mysql.d.ts +35 -0
- package/dist/runtime/Mysql.d.ts.map +1 -0
- package/dist/runtime/Mysql.js +171 -0
- package/dist/runtime/Mysql.js.map +1 -0
- package/dist/runtime/PostgreSQL.d.ts +36 -0
- package/dist/runtime/PostgreSQL.d.ts.map +1 -0
- package/dist/runtime/PostgreSQL.js +172 -0
- package/dist/runtime/PostgreSQL.js.map +1 -0
- package/dist/runtime/SQLite.d.ts +34 -0
- package/dist/runtime/SQLite.d.ts.map +1 -0
- package/dist/runtime/SQLite.js +146 -0
- package/dist/runtime/SQLite.js.map +1 -0
- package/dist/runtime/Scheduler.d.ts +81 -0
- package/dist/runtime/Scheduler.d.ts.map +1 -0
- package/dist/runtime/Scheduler.js +457 -0
- package/dist/runtime/Scheduler.js.map +1 -0
- package/dist/runtime/System.d.ts +312 -0
- package/dist/runtime/System.d.ts.map +1 -0
- package/dist/runtime/System.js +90 -0
- package/dist/runtime/System.js.map +1 -0
- package/dist/runtime/asyncInteractionContext.d.ts +3 -0
- package/dist/runtime/asyncInteractionContext.d.ts.map +1 -0
- package/dist/runtime/asyncInteractionContext.js +3 -0
- package/dist/runtime/asyncInteractionContext.js.map +1 -0
- package/dist/runtime/boolExpression.d.ts +23 -0
- package/dist/runtime/boolExpression.d.ts.map +1 -0
- package/dist/runtime/boolExpression.js +43 -0
- package/dist/runtime/boolExpression.js.map +1 -0
- package/dist/runtime/computedDataHandles/Any.d.ts +52 -0
- package/dist/runtime/computedDataHandles/Any.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Any.js +152 -0
- package/dist/runtime/computedDataHandles/Any.js.map +1 -0
- package/dist/runtime/computedDataHandles/Computation.d.ts +108 -0
- package/dist/runtime/computedDataHandles/Computation.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Computation.js +49 -0
- package/dist/runtime/computedDataHandles/Computation.js.map +1 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts +42 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.js +4 -0
- package/dist/runtime/computedDataHandles/ComputedDataHandle.js.map +1 -0
- package/dist/runtime/computedDataHandles/Count.d.ts +45 -0
- package/dist/runtime/computedDataHandles/Count.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Count.js +85 -0
- package/dist/runtime/computedDataHandles/Count.js.map +1 -0
- package/dist/runtime/computedDataHandles/Every.d.ts +56 -0
- package/dist/runtime/computedDataHandles/Every.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Every.js +178 -0
- package/dist/runtime/computedDataHandles/Every.js.map +1 -0
- package/dist/runtime/computedDataHandles/StateMachine.d.ts +74 -0
- package/dist/runtime/computedDataHandles/StateMachine.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/StateMachine.js +180 -0
- package/dist/runtime/computedDataHandles/StateMachine.js.map +1 -0
- package/dist/runtime/computedDataHandles/Transform.d.ts +26 -0
- package/dist/runtime/computedDataHandles/Transform.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/Transform.js +106 -0
- package/dist/runtime/computedDataHandles/Transform.js.map +1 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.d.ts +57 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.js +40 -0
- package/dist/runtime/computedDataHandles/TransitionFinder.js.map +1 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.d.ts +57 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.js +146 -0
- package/dist/runtime/computedDataHandles/WeightedSummation.js.map +1 -0
- package/dist/runtime/computedDataHandles/index.d.ts +7 -0
- package/dist/runtime/computedDataHandles/index.d.ts.map +1 -0
- package/dist/runtime/computedDataHandles/index.js +7 -0
- package/dist/runtime/computedDataHandles/index.js.map +1 -0
- package/dist/runtime/index.d.ts +15 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +15 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/server.d.ts +35 -0
- package/dist/runtime/server.d.ts.map +1 -0
- package/dist/runtime/server.js +171 -0
- package/dist/runtime/server.js.map +1 -0
- package/dist/runtime/types/boolExpression.d.ts +22 -0
- package/dist/runtime/types/boolExpression.d.ts.map +1 -0
- package/dist/runtime/types/boolExpression.js +6 -0
- package/dist/runtime/types/boolExpression.js.map +1 -0
- package/dist/runtime/util.d.ts +10 -0
- package/dist/runtime/util.d.ts.map +1 -0
- package/dist/runtime/util.js +39 -0
- package/dist/runtime/util.js.map +1 -0
- package/dist/shared/BoolExp.d.ts +97 -0
- package/dist/shared/BoolExp.d.ts.map +1 -0
- package/dist/shared/BoolExp.js +252 -0
- package/dist/shared/BoolExp.js.map +1 -0
- package/dist/shared/activity/Activity.d.ts +465 -0
- package/dist/shared/activity/Activity.d.ts.map +1 -0
- package/dist/shared/activity/Activity.js +264 -0
- package/dist/shared/activity/Activity.js.map +1 -0
- package/dist/shared/activity/Condition.d.ts +75 -0
- package/dist/shared/activity/Condition.d.ts.map +1 -0
- package/dist/shared/activity/Condition.js +51 -0
- package/dist/shared/activity/Condition.js.map +1 -0
- package/dist/shared/activity/Data.d.ts +115 -0
- package/dist/shared/activity/Data.d.ts.map +1 -0
- package/dist/shared/activity/Data.js +89 -0
- package/dist/shared/activity/Data.js.map +1 -0
- package/dist/shared/attributive.d.ts +93 -0
- package/dist/shared/attributive.d.ts.map +1 -0
- package/dist/shared/attributive.js +59 -0
- package/dist/shared/attributive.js.map +1 -0
- package/dist/shared/computed.d.ts +607 -0
- package/dist/shared/computed.d.ts.map +1 -0
- package/dist/shared/computed.js +202 -0
- package/dist/shared/computed.js.map +1 -0
- package/dist/shared/createClass.d.ts +102 -0
- package/dist/shared/createClass.d.ts.map +1 -0
- package/dist/shared/createClass.js +276 -0
- package/dist/shared/createClass.js.map +1 -0
- package/dist/shared/dictionary/Dictionary.d.ts +40 -0
- package/dist/shared/dictionary/Dictionary.d.ts.map +1 -0
- package/dist/shared/dictionary/Dictionary.js +51 -0
- package/dist/shared/dictionary/Dictionary.js.map +1 -0
- package/dist/shared/entity/Entity.d.ts +149 -0
- package/dist/shared/entity/Entity.d.ts.map +1 -0
- package/dist/shared/entity/Entity.js +226 -0
- package/dist/shared/entity/Entity.js.map +1 -0
- package/dist/shared/index.d.ts +11 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +11 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/user/User.d.ts +21 -0
- package/dist/shared/user/User.d.ts.map +1 -0
- package/dist/shared/user/User.js +11 -0
- package/dist/shared/user/User.js.map +1 -0
- package/dist/shared/utils.d.ts +11 -0
- package/dist/shared/utils.d.ts.map +1 -0
- package/dist/shared/utils.js +19 -0
- package/dist/shared/utils.js.map +1 -0
- package/dist/storage/erstorage/AttributeInfo.d.ts +40 -0
- package/dist/storage/erstorage/AttributeInfo.d.ts.map +1 -0
- package/dist/storage/erstorage/AttributeInfo.js +147 -0
- package/dist/storage/erstorage/AttributeInfo.js.map +1 -0
- package/dist/storage/erstorage/AttributeQuery.d.ts +33 -0
- package/dist/storage/erstorage/AttributeQuery.d.ts.map +1 -0
- package/dist/storage/erstorage/AttributeQuery.js +190 -0
- package/dist/storage/erstorage/AttributeQuery.js.map +1 -0
- package/dist/storage/erstorage/EntityQueryHandle.d.ts +29 -0
- package/dist/storage/erstorage/EntityQueryHandle.d.ts.map +1 -0
- package/dist/storage/erstorage/EntityQueryHandle.js +78 -0
- package/dist/storage/erstorage/EntityQueryHandle.js.map +1 -0
- package/dist/storage/erstorage/EntityToTableMap.d.ts +85 -0
- package/dist/storage/erstorage/EntityToTableMap.d.ts.map +1 -0
- package/dist/storage/erstorage/EntityToTableMap.js +262 -0
- package/dist/storage/erstorage/EntityToTableMap.js.map +1 -0
- package/dist/storage/erstorage/LinkInfo.d.ts +35 -0
- package/dist/storage/erstorage/LinkInfo.d.ts.map +1 -0
- package/dist/storage/erstorage/LinkInfo.js +89 -0
- package/dist/storage/erstorage/LinkInfo.js.map +1 -0
- package/dist/storage/erstorage/MatchExp.d.ts +37 -0
- package/dist/storage/erstorage/MatchExp.d.ts.map +1 -0
- package/dist/storage/erstorage/MatchExp.js +211 -0
- package/dist/storage/erstorage/MatchExp.js.map +1 -0
- package/dist/storage/erstorage/Modifier.d.ts +23 -0
- package/dist/storage/erstorage/Modifier.d.ts.map +1 -0
- package/dist/storage/erstorage/Modifier.js +24 -0
- package/dist/storage/erstorage/Modifier.js.map +1 -0
- package/dist/storage/erstorage/NewRecordData.d.ts +42 -0
- package/dist/storage/erstorage/NewRecordData.d.ts.map +1 -0
- package/dist/storage/erstorage/NewRecordData.js +178 -0
- package/dist/storage/erstorage/NewRecordData.js.map +1 -0
- package/dist/storage/erstorage/RecordInfo.d.ts +26 -0
- package/dist/storage/erstorage/RecordInfo.d.ts.map +1 -0
- package/dist/storage/erstorage/RecordInfo.js +111 -0
- package/dist/storage/erstorage/RecordInfo.js.map +1 -0
- package/dist/storage/erstorage/RecordQuery.d.ts +73 -0
- package/dist/storage/erstorage/RecordQuery.d.ts.map +1 -0
- package/dist/storage/erstorage/RecordQuery.js +158 -0
- package/dist/storage/erstorage/RecordQuery.js.map +1 -0
- package/dist/storage/erstorage/RecordQueryAgent.d.ts +84 -0
- package/dist/storage/erstorage/RecordQueryAgent.d.ts.map +1 -0
- package/dist/storage/erstorage/RecordQueryAgent.js +1130 -0
- package/dist/storage/erstorage/RecordQueryAgent.js.map +1 -0
- package/dist/storage/erstorage/Setup.d.ts +49 -0
- package/dist/storage/erstorage/Setup.d.ts.map +1 -0
- package/dist/storage/erstorage/Setup.js +400 -0
- package/dist/storage/erstorage/Setup.js.map +1 -0
- package/dist/storage/erstorage/util.d.ts +6 -0
- package/dist/storage/erstorage/util.d.ts.map +1 -0
- package/dist/storage/erstorage/util.js +25 -0
- package/dist/storage/erstorage/util.js.map +1 -0
- package/dist/storage/index.d.ts +13 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +13 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/utils.d.ts +10 -0
- package/dist/storage/utils.d.ts.map +1 -0
- package/dist/storage/utils.js +48 -0
- package/dist/storage/utils.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { assert } from "../utils.js";
|
|
2
|
+
import { AttributeInfo } from "./AttributeInfo.js";
|
|
3
|
+
import { RecordInfo } from "./RecordInfo.js";
|
|
4
|
+
import { LinkInfo } from "./LinkInfo.js";
|
|
5
|
+
import { LINK_SYMBOL } from "./RecordQuery.js";
|
|
6
|
+
export class EntityToTableMap {
|
|
7
|
+
constructor(data) {
|
|
8
|
+
this.data = data;
|
|
9
|
+
}
|
|
10
|
+
getRecordTable(entityName) {
|
|
11
|
+
return this.data.records[entityName].table;
|
|
12
|
+
}
|
|
13
|
+
getRecord(recordName) {
|
|
14
|
+
return this.data.records[recordName];
|
|
15
|
+
}
|
|
16
|
+
getAttributeAndSymmetricDirection(rawAttributeName) {
|
|
17
|
+
return rawAttributeName.includes(':') ? rawAttributeName.split(':') : [rawAttributeName, undefined];
|
|
18
|
+
}
|
|
19
|
+
getAttributeData(recordName, attributeName) {
|
|
20
|
+
return this.data.records[recordName].attributes[this.getAttributeAndSymmetricDirection(attributeName)[0]];
|
|
21
|
+
}
|
|
22
|
+
getRecordInfo(recordName) {
|
|
23
|
+
return new RecordInfo(recordName, this);
|
|
24
|
+
}
|
|
25
|
+
getInfo(entityName, attribute) {
|
|
26
|
+
const result = this.getInfoByPath([entityName, ...(attribute.split('.'))]);
|
|
27
|
+
assert(!!result, `cannot find attribute "${attribute}" in "${entityName}". attributes: ${this.data.records[entityName] && Object.keys(this.data.records[entityName]?.attributes)}`);
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
getLinkInfo(recordName, rawAttribute) {
|
|
31
|
+
const attribute = this.getAttributeAndSymmetricDirection(rawAttribute)[0];
|
|
32
|
+
const linkName = this.data.records[recordName].attributes[attribute].linkName;
|
|
33
|
+
assert(!!linkName, `cannot find relation ${recordName} ${attribute}`);
|
|
34
|
+
return new LinkInfo(linkName, this.data.links[linkName], this);
|
|
35
|
+
}
|
|
36
|
+
getLinkInfoByName(linkName) {
|
|
37
|
+
assert(!!this.data.links[linkName], `cannot find link ${linkName}`);
|
|
38
|
+
return new LinkInfo(linkName, this.data.links[linkName], this);
|
|
39
|
+
}
|
|
40
|
+
getInfoByPath(namePath) {
|
|
41
|
+
const [entityName, ...attributivePath] = namePath;
|
|
42
|
+
assert(this.data.records[entityName], `entity ${entityName} not found`);
|
|
43
|
+
assert(attributivePath.length > 0, 'getInfoByPath should have a name path.');
|
|
44
|
+
let currentEntity = entityName;
|
|
45
|
+
let parentEntity;
|
|
46
|
+
let lastAttribute;
|
|
47
|
+
let attributeData;
|
|
48
|
+
let rawCurrentAttribute;
|
|
49
|
+
let lastSymmetricDirection;
|
|
50
|
+
const stack = [];
|
|
51
|
+
while (rawCurrentAttribute = attributivePath.shift()) {
|
|
52
|
+
stack.push(rawCurrentAttribute);
|
|
53
|
+
// 路径中可能有 symmetric 的方向
|
|
54
|
+
const [currentAttribute, symmetricDirection] = this.getAttributeAndSymmetricDirection(rawCurrentAttribute);
|
|
55
|
+
lastSymmetricDirection = symmetricDirection;
|
|
56
|
+
// 增加了 & 的影响
|
|
57
|
+
if (currentAttribute === LINK_SYMBOL) {
|
|
58
|
+
assert(!!parentEntity && !!lastAttribute, `reading link in wrong path ${stack.join('.')}`);
|
|
59
|
+
parentEntity = this.data.records[parentEntity].attributes[lastAttribute].linkName;
|
|
60
|
+
lastAttribute = undefined;
|
|
61
|
+
currentEntity = attributeData.linkName;
|
|
62
|
+
attributeData = undefined;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const data = this.data.records[currentEntity];
|
|
66
|
+
attributeData = data.attributes[currentAttribute];
|
|
67
|
+
assert(!!attributeData, `attribute ${currentAttribute} not found in ${currentEntity}. namePath: ${namePath.join('.')}`);
|
|
68
|
+
parentEntity = currentEntity;
|
|
69
|
+
currentEntity = attributeData.isRecord ? attributeData.recordName : '';
|
|
70
|
+
lastAttribute = currentAttribute;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (!parentEntity || !lastAttribute)
|
|
74
|
+
return undefined;
|
|
75
|
+
return new AttributeInfo(parentEntity, lastAttribute, this, lastSymmetricDirection);
|
|
76
|
+
}
|
|
77
|
+
getTableAndAliasStack(namePath) {
|
|
78
|
+
const [rootEntityName, ...relationPath] = namePath;
|
|
79
|
+
let lastEntityData = this.data.records[rootEntityName];
|
|
80
|
+
let lastTable = lastEntityData.table;
|
|
81
|
+
let lastTableAlias = rootEntityName;
|
|
82
|
+
let relationTable;
|
|
83
|
+
let relationTableAlias;
|
|
84
|
+
let isLinkRecord = false;
|
|
85
|
+
let info;
|
|
86
|
+
const result = [{
|
|
87
|
+
// 最后一张表名
|
|
88
|
+
table: lastTable,
|
|
89
|
+
// 最后一张表 alias,
|
|
90
|
+
alias: lastTableAlias,
|
|
91
|
+
// 最后表代表的 entity 数据,
|
|
92
|
+
record: lastEntityData,
|
|
93
|
+
isLinkRecord,
|
|
94
|
+
// 上一张表和最后一张表的关联表(如果是 relation 和 entity 的连接,这个link 就是虚拟的,table 是空,因为肯定是个合并的),
|
|
95
|
+
// linkTable: relationTable,
|
|
96
|
+
// 上一张表和最后一张表的关联表的 alias.
|
|
97
|
+
// linkAlias: relationTableAlias,
|
|
98
|
+
// link: currentLink,
|
|
99
|
+
path: [rootEntityName]
|
|
100
|
+
}];
|
|
101
|
+
for (let i = 0; i < relationPath.length; i++) {
|
|
102
|
+
// 对称关系要说明方向,不然 join 表的时候两个方向都用的同一个 alias,逻辑错误。它的格式是 'xxx:source' 或者 ‘xxx:target’
|
|
103
|
+
const [currentAttributeName, symmetricDirection] = this.getAttributeAndSymmetricDirection(relationPath[i]);
|
|
104
|
+
const path = [rootEntityName, ...relationPath.slice(0, i + 1)];
|
|
105
|
+
// 如果是读 link 上的数据
|
|
106
|
+
if (currentAttributeName === LINK_SYMBOL) {
|
|
107
|
+
// 先把上一个 Pop 出来。
|
|
108
|
+
const { linkTable, linkAlias, path } = result.pop();
|
|
109
|
+
assert(!isLinkRecord, `last attribute in path is a link, cannot read link of a link ${path.join('.')}`);
|
|
110
|
+
lastTable = linkTable;
|
|
111
|
+
lastTableAlias = linkAlias;
|
|
112
|
+
lastEntityData = this.data.records[info.linkName];
|
|
113
|
+
isLinkRecord = true;
|
|
114
|
+
relationTable = '';
|
|
115
|
+
relationTableAlias = '';
|
|
116
|
+
info = undefined;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
info = this.getInfoByPath(path);
|
|
120
|
+
const currentEntityAttribute = lastEntityData.attributes[currentAttributeName];
|
|
121
|
+
assert(info.isRecord, `${relationPath.slice(0, i + 1).join('.')} is not a entity attribute`);
|
|
122
|
+
const currentEntityData = this.data.records[currentEntityAttribute.recordName];
|
|
123
|
+
// 处理 symmetric 中的:
|
|
124
|
+
const currentTableAlias = `${lastTableAlias}_${currentAttributeName}${symmetricDirection ? `_${symmetricDirection.toUpperCase()}` : ''}`;
|
|
125
|
+
// CAUTION 一定要先处理 linkAlias,因为依赖于上一次 tableAlias。
|
|
126
|
+
if (info.isMergedWithParent() || info.isLinkMergedWithParent()) {
|
|
127
|
+
// 和上一个表同名。当前表也就是上一个
|
|
128
|
+
relationTableAlias = lastTableAlias;
|
|
129
|
+
// link 没有合并的情况也要生成新的 alias。否则就和 lastTableAlias 同名
|
|
130
|
+
}
|
|
131
|
+
else if (info.isLinkIsolated()) {
|
|
132
|
+
// link 表独立,给个新名字
|
|
133
|
+
// CAUTION symmetric 路径要手动指定关系
|
|
134
|
+
relationTableAlias = `REL_${currentTableAlias}`;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
// link 表合并了,名字和当前一样。
|
|
138
|
+
relationTableAlias = currentTableAlias;
|
|
139
|
+
}
|
|
140
|
+
// CAUTION 只要不是合表的,就要生成新的 alias.
|
|
141
|
+
if (!info.isMergedWithParent()) {
|
|
142
|
+
lastTableAlias = currentTableAlias;
|
|
143
|
+
}
|
|
144
|
+
lastTable = info.table;
|
|
145
|
+
lastEntityData = currentEntityData;
|
|
146
|
+
// TODO 找到 relationTable ,生成 relationTableName
|
|
147
|
+
// relation table 有三种情况: 独立的/往n 方向合表了,与 1:1 合成一张表了。
|
|
148
|
+
relationTable = info.getLinkInfo()?.table;
|
|
149
|
+
// relationTable 的 alias 始终保持和 tableAlias 一致的规律
|
|
150
|
+
isLinkRecord = false;
|
|
151
|
+
}
|
|
152
|
+
result.push({
|
|
153
|
+
table: lastTable,
|
|
154
|
+
alias: lastTableAlias,
|
|
155
|
+
record: lastEntityData,
|
|
156
|
+
isLinkRecord,
|
|
157
|
+
linkTable: relationTable,
|
|
158
|
+
linkAlias: relationTableAlias,
|
|
159
|
+
path
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
getTableAliasAndFieldName(namePath, attributeName, dontShrink = false) {
|
|
165
|
+
const stack = this.getTableAndAliasStack(namePath);
|
|
166
|
+
const { table, alias, record, path, linkAlias, linkTable, isLinkRecord } = stack.at(-1);
|
|
167
|
+
const attrInfo = (!isLinkRecord && stack.length > 1) ? this.getInfoByPath(path) : null;
|
|
168
|
+
const canShrinkIdPath = !dontShrink &&
|
|
169
|
+
attributeName === 'id' &&
|
|
170
|
+
!isLinkRecord &&
|
|
171
|
+
namePath.length > 1 &&
|
|
172
|
+
(attrInfo?.isLinkMergedWithParent() || attrInfo?.isLinkIsolated());
|
|
173
|
+
// 获取 id 时,可以直接从关系表上获得,不需要额外的 table
|
|
174
|
+
if (canShrinkIdPath) {
|
|
175
|
+
if (attrInfo?.isLinkMergedWithParent()) {
|
|
176
|
+
// 和父亲合并了,应该用父亲的 alias 和 表上用于记录关系 id 的 field
|
|
177
|
+
const { alias: parentAlias, table: parentTable } = stack.at(-2);
|
|
178
|
+
return [parentAlias, attrInfo.linkField, parentTable];
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
// isolated。应该用关系表上的记录 id 的 source/target 字段
|
|
182
|
+
const linkInfoRecord = attrInfo.getLinkInfo().record;
|
|
183
|
+
const fieldName = attrInfo?.isLinkManyToManySymmetric() ?
|
|
184
|
+
(attrInfo?.symmetricDirection === 'source' ? linkInfoRecord?.attributes.target.field : linkInfoRecord?.attributes.source.field) :
|
|
185
|
+
(attrInfo.isRecordSource() ? linkInfoRecord?.attributes.target.field : linkInfoRecord?.attributes.source.field);
|
|
186
|
+
return [linkAlias, fieldName, linkTable];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
const fieldName = record.attributes[this.getAttributeAndSymmetricDirection(attributeName)[0]].field;
|
|
191
|
+
return [alias, fieldName, table];
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
findManyToManySymmetricPath(namePath) {
|
|
195
|
+
const result = [namePath[0]];
|
|
196
|
+
let found = false;
|
|
197
|
+
// 注意是从 1 开始的。
|
|
198
|
+
for (let i = 1; i < namePath.length; i++) {
|
|
199
|
+
result.push(namePath[i]);
|
|
200
|
+
const info = this.getInfoByPath(namePath.slice(0, i + 1));
|
|
201
|
+
if (info?.isRecord && info.isLinkManyToManySymmetric()) {
|
|
202
|
+
found = true;
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// 用 found 来判断,这样即使是最后一个也算找到了。
|
|
207
|
+
return found ? result : undefined;
|
|
208
|
+
}
|
|
209
|
+
spawnManyToManySymmetricPath(namePath) {
|
|
210
|
+
const foundPath = this.findManyToManySymmetricPath(namePath);
|
|
211
|
+
if (!foundPath)
|
|
212
|
+
return undefined;
|
|
213
|
+
const head = foundPath.slice(0, -1);
|
|
214
|
+
const splitPoint = foundPath.at(-1);
|
|
215
|
+
const rest = namePath.slice(foundPath.length, Infinity);
|
|
216
|
+
return [
|
|
217
|
+
[...head, `${splitPoint}:source`, ...rest],
|
|
218
|
+
[...head, `${splitPoint}:target`, ...rest],
|
|
219
|
+
];
|
|
220
|
+
}
|
|
221
|
+
getReverseAttribute(entityName, attribute) {
|
|
222
|
+
assert(this.data.records[entityName], `entity ${entityName} not found`);
|
|
223
|
+
const relationName = this.data.records[entityName].attributes[attribute].linkName;
|
|
224
|
+
const relationData = this.data.links[relationName];
|
|
225
|
+
if (relationData.sourceRecord === entityName && relationData.sourceProperty === attribute) {
|
|
226
|
+
return relationData.targetProperty;
|
|
227
|
+
}
|
|
228
|
+
else if (relationData.targetRecord === entityName && relationData.targetProperty === attribute) {
|
|
229
|
+
return relationData.sourceProperty;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
assert(false, `wrong relation data ${entityName}.${attribute}`);
|
|
233
|
+
return '';
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
groupAttributes(entityName, attributeNames) {
|
|
237
|
+
assert(this.data.records[entityName], `entity ${entityName} not found`);
|
|
238
|
+
const valueAttributes = [];
|
|
239
|
+
const entityIdAttributes = [];
|
|
240
|
+
const entityAttributes = [];
|
|
241
|
+
attributeNames.forEach(attributeName => {
|
|
242
|
+
if (this.data.records[entityName].attributes[attributeName]) {
|
|
243
|
+
const info = this.getInfo(entityName, attributeName);
|
|
244
|
+
if (info.isValue) {
|
|
245
|
+
valueAttributes.push(info);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// link record 的 source/target 字段有 field
|
|
249
|
+
// if (info.isLinkSourceRelation()) {
|
|
250
|
+
if (this.data.records[entityName].attributes[attributeName].field) {
|
|
251
|
+
entityIdAttributes.push(info);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
entityAttributes.push(info);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
return [valueAttributes, entityAttributes, entityIdAttributes];
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=EntityToTableMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityToTableMap.js","sourceRoot":"","sources":["../../../src/storage/erstorage/EntityToTableMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAyF7C,MAAM,OAAO,gBAAgB;IACzB,YAAmB,IAAa;QAAb,SAAI,GAAJ,IAAI,CAAS;IAAG,CAAC;IACpC,cAAc,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAA;IAC9C,CAAC;IACD,SAAS,CAAC,UAAiB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;IACD,iCAAiC,CAAC,gBAAuB;QACrD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAgC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IACtI,CAAC;IACD,gBAAgB,CAAC,UAAiB,EAAE,aAAqB;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,iCAAiC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7G,CAAC;IACD,aAAa,CAAC,UAAiB;QAC3B,OAAO,IAAI,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,CAAC,UAAkB,EAAE,SAAiB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1E,MAAM,CAAC,CAAC,CAAC,MAAM,EACX,0BAA0B,SAAS,SAAS,UAAU,kBAAkB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,CACpK,CAAA;QACD,OAAO,MAAO,CAAA;IAClB,CAAC;IACD,WAAW,CAAC,UAAkB,EAAE,YAAoB;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,iCAAiC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,SAAS,CAAqB,CAAC,QAAQ,CAAA;QAClG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,wBAAwB,UAAU,IAAI,SAAS,EAAE,CAAC,CAAA;QACrE,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;IAClE,CAAC;IACD,iBAAiB,CAAC,QAAgB;QAC9B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,oBAAoB,QAAQ,EAAE,CAAC,CAAA;QACnE,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;IAClE,CAAC;IAED,aAAa,CAAC,QAAkB;QAC5B,MAAM,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,GAAG,QAAQ,CAAA;QACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,UAAU,YAAY,CAAC,CAAA;QACvE,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,wCAAwC,CAAC,CAAA;QAC5E,IAAI,aAAa,GAAG,UAAU,CAAA;QAC9B,IAAI,YAA8B,CAAA;QAClC,IAAI,aAA+B,CAAA;QACnC,IAAI,aAAuD,CAAA;QAE3D,IAAI,mBAA0B,CAAA;QAC9B,IAAI,sBAAsB,CAAA;QAC1B,MAAM,KAAK,GAAG,EAAE,CAAA;QAChB,OAAM,mBAAmB,GAAG,eAAe,CAAC,KAAK,EAAG,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC/B,uBAAuB;YACvB,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,mBAAmB,CAAC,CAAA;YAC1G,sBAAsB,GAAG,kBAAkB,CAAA;YAE3C,YAAY;YACZ,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,aAAa,EAAE,8BAA8B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC1F,YAAY,GAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,CAAC,UAAU,CAAC,aAAc,CAAqB,CAAC,QAAQ,CAAA;gBACxG,aAAa,GAAG,SAAS,CAAA;gBACzB,aAAa,GAAI,aAAkC,CAAC,QAAQ,CAAA;gBAC5D,aAAa,GAAG,SAAS,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;gBAC7C,aAAa,GAAG,IAAK,CAAC,UAAU,CAAC,gBAAiB,CAAoB,CAAA;gBACtE,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,gBAAgB,iBAAiB,aAAa,eAAe,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACvH,YAAY,GAAG,aAAa,CAAA;gBAC5B,aAAa,GAAI,aAAiC,CAAC,QAAQ,CAAC,CAAC,CAAE,aAAiC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChH,aAAa,GAAG,gBAAgB,CAAA;YACpC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAA;QACrD,OAAO,IAAI,aAAa,CAAE,YAAa,EAAE,aAAc,EAAE,IAAI,EAAE,sBAAuB,CAAC,CAAA;IAC3F,CAAC;IACD,qBAAqB,CAAC,QAAkB;QACpC,MAAM,CAAC,cAAc,EAAE,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAA;QAClD,IAAI,cAAc,GAAkB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACrE,IAAI,SAAS,GAAU,cAAc,CAAC,KAAK,CAAA;QAC3C,IAAI,cAAc,GAAU,cAAc,CAAA;QAE1C,IAAI,aAAoB,CAAA;QACxB,IAAI,kBAAyB,CAAA;QAC7B,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,IAAI,IAA6B,CAAA;QAEjC,MAAM,MAAM,GAAuB,CAAC;gBAChC,SAAS;gBACT,KAAK,EAAE,SAAS;gBAChB,eAAe;gBACf,KAAK,EAAE,cAAc;gBACrB,oBAAoB;gBACpB,MAAM,EAAE,cAAc;gBACtB,YAAY;gBACZ,8EAA8E;gBAC9E,4BAA4B;gBAC5B,yBAAyB;gBACzB,iCAAiC;gBACjC,qBAAqB;gBACrB,IAAI,EAAE,CAAC,cAAc,CAAC;aACzB,CAAC,CAAA;QAEF,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,kFAAkF;YAClF,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1G,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA;YAC5D,iBAAiB;YACjB,IAAI,oBAAoB,KAAK,WAAW,EAAE,CAAC;gBAEvC,gBAAgB;gBAChB,MAAM,EAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC,GAAG,MAAM,CAAC,GAAG,EAAG,CAAA;gBAClD,MAAM,CAAC,CAAC,YAAY,EAAE,gEAAgE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACvG,SAAS,GAAG,SAAU,CAAA;gBACtB,cAAc,GAAG,SAAU,CAAA;gBAC3B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAA;gBAClD,YAAY,GAAG,IAAI,CAAA;gBACnB,aAAa,GAAG,EAAE,CAAA;gBAClB,kBAAkB,GAAG,EAAE,CAAA;gBACvB,IAAI,GAAG,SAAS,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACJ,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAE,CAAA;gBAChC,MAAM,sBAAsB,GAAG,cAAc,CAAC,UAAU,CAAC,oBAAqB,CAAoB,CAAA;gBAClG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;gBAE1F,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAkB,CAAA;gBAE/F,mBAAmB;gBACnB,MAAM,iBAAiB,GAAG,GAAG,cAAc,IAAI,oBAAoB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;gBAExI,gDAAgD;gBAChD,IAAI,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;oBAC7D,oBAAoB;oBACpB,kBAAkB,GAAG,cAAc,CAAA;oBACnC,kDAAkD;gBACtD,CAAC;qBAAM,IAAI,IAAI,CAAC,cAAc,EAAE,EAAC,CAAC;oBAC9B,iBAAiB;oBACjB,8BAA8B;oBAC9B,kBAAkB,GAAG,OAAO,iBAAiB,EAAE,CAAA;gBACnD,CAAC;qBAAM,CAAC;oBACJ,qBAAqB;oBACrB,kBAAkB,GAAG,iBAAiB,CAAA;gBAC1C,CAAC;gBAGD,gCAAgC;gBAChC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBAC7B,cAAc,GAAG,iBAAiB,CAAA;gBACtC,CAAC;gBAED,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;gBACtB,cAAc,GAAG,iBAAiB,CAAA;gBAElC,8CAA8C;gBAC9C,mDAAmD;gBACnD,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAA;gBACzC,+CAA+C;gBAC/C,YAAY,GAAG,KAAK,CAAA;YACxB,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,cAAc;gBACtB,YAAY;gBACZ,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,kBAAmB;gBAC9B,IAAI;aACP,CAAC,CAAA;QACN,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,yBAAyB,CAAC,QAAkB,EAAE,aAAqB,EAAE,UAAU,GAAG,KAAK;QACnF,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;QAClD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;QAEtF,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACtF,MAAM,eAAe,GACjB,CAAC,UAAU;YACX,aAAa,KAAK,IAAI;YACtB,CAAC,YAAY;YACb,QAAQ,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,QAAQ,EAAE,sBAAsB,EAAE,IAAI,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA;QAEtE,mCAAmC;QACnC,IAAI,eAAe,EAAE,CAAC;YAClB,IAAI,QAAQ,EAAE,sBAAsB,EAAE,EAAE,CAAC;gBACrC,4CAA4C;gBAC5C,MAAM,EAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;gBAC9D,OAAO,CAAC,WAAW,EAAE,QAAS,CAAC,SAAU,EAAE,WAAW,CAAC,CAAA;YAC3D,CAAC;iBAAM,CAAC;gBACJ,4CAA4C;gBAC5C,MAAM,cAAc,GAAG,QAAS,CAAC,WAAW,EAAE,CAAC,MAAM,CAAA;gBACrD,MAAM,SAAS,GAAG,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;oBACrD,CAAC,QAAQ,EAAE,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,MAAO,CAAC,KAAM,CAAC,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,MAAO,CAAC,KAAM,CAAC,CAAC,CAAC;oBACrI,CAAC,QAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,MAAO,CAAC,KAAM,CAAC,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,MAAO,CAAC,KAAM,CAAC,CAAA;gBAExH,OAAO,CAAC,SAAU,EAAE,SAAS,EAAE,SAAU,CAAC,CAAA;YAC9C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,iCAAiC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YACnG,OAAO,CAAC,KAAK,EAAE,SAAU,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;IACD,2BAA2B,CAAE,QAAkB;QAC3C,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,KAAK,GAAG,KAAK,CAAA;QACjB,cAAc;QACd,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA;YACvD,IAAI,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC;gBACrD,KAAK,GAAG,IAAI,CAAA;gBACZ,MAAK;YACT,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,SAAS,CAAA;IACpC,CAAC;IACD,4BAA4B,CAAE,QAAkB;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAA;QAC5D,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAA;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAEvD,OAAO;YACH,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,SAAS,EAAE,GAAG,IAAI,CAAC;YAC1C,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,SAAS,EAAE,GAAG,IAAI,CAAC;SAC7C,CAAA;IACL,CAAC;IAED,mBAAmB,CAAC,UAAkB,EAAE,SAAiB;QACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,UAAU,YAAY,CAAC,CAAA;QACvE,MAAM,YAAY,GAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,SAAS,CAAqB,CAAC,QAAQ,CAAA;QACtG,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAClD,IAAI,YAAY,CAAC,YAAY,KAAK,UAAU,IAAI,YAAY,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACxF,OAAO,YAAY,CAAC,cAAe,CAAA;QACvC,CAAC;aAAM,IAAI,YAAY,CAAC,YAAY,KAAK,UAAU,IAAI,YAAY,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/F,OAAO,YAAY,CAAC,cAAc,CAAA;QACtC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,EAAE,uBAAuB,UAAU,IAAI,SAAS,EAAE,CAAC,CAAA;YAC/D,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;IACD,eAAe,CAAC,UAAkB,EAAE,cAAwB;QACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,UAAU,YAAY,CAAC,CAAA;QACvE,MAAM,eAAe,GAAoB,EAAE,CAAA;QAC3C,MAAM,kBAAkB,GAAoB,EAAE,CAAA;QAC9C,MAAM,gBAAgB,GAAoB,EAAE,CAAA;QAC5C,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YACnC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;gBACpD,IAAI,IAAI,CAAC,OAAO,EAAI,CAAC;oBACjB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC9B,CAAC;qBAAM,CAAC;oBACJ,wCAAwC;oBACxC,qCAAqC;oBACrC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;wBAChE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACjC,CAAC;yBAAM,CAAC;wBACJ,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC/B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAA;IAClE,CAAC;CACJ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { RecordInfo } from "./RecordInfo.js";
|
|
2
|
+
import { EntityToTableMap, LinkMapItem, RecordMapItem } from "./EntityToTableMap.js";
|
|
3
|
+
export declare class LinkInfo {
|
|
4
|
+
name: string;
|
|
5
|
+
data: LinkMapItem;
|
|
6
|
+
map: EntityToTableMap;
|
|
7
|
+
constructor(name: string, data: LinkMapItem, map: EntityToTableMap);
|
|
8
|
+
get isManyToOne(): boolean;
|
|
9
|
+
get isManyToMany(): boolean;
|
|
10
|
+
get isOneToOne(): boolean;
|
|
11
|
+
get isOneToMany(): boolean;
|
|
12
|
+
get isXToOne(): boolean;
|
|
13
|
+
get isOneToX(): boolean;
|
|
14
|
+
get isXToMany(): boolean;
|
|
15
|
+
get sourceRecord(): string;
|
|
16
|
+
get sourceRecordInfo(): RecordInfo;
|
|
17
|
+
get targetRecordInfo(): RecordInfo;
|
|
18
|
+
get targetRecord(): string;
|
|
19
|
+
get sourceProperty(): string;
|
|
20
|
+
get targetProperty(): string | undefined;
|
|
21
|
+
get record(): RecordMapItem;
|
|
22
|
+
get recordInfo(): RecordInfo;
|
|
23
|
+
get table(): string;
|
|
24
|
+
get isTargetReliance(): boolean | undefined;
|
|
25
|
+
isMerged(): boolean;
|
|
26
|
+
isSourceRelation(): boolean;
|
|
27
|
+
isMergedToSource(): boolean;
|
|
28
|
+
isMergedToTarget(): boolean;
|
|
29
|
+
isCombined(): boolean;
|
|
30
|
+
isIsolated(): boolean;
|
|
31
|
+
isSymmetric(): boolean;
|
|
32
|
+
isRelationSource(recordName: string, attribute: string): boolean;
|
|
33
|
+
getAttributeName(recordName: string, attribute: string): string[];
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=LinkInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkInfo.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/LinkInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEnF,qBAAa,QAAQ;IACE,IAAI,EAAE,MAAM;IAAS,IAAI,EAAE,WAAW;IAAS,GAAG,EAAE,gBAAgB;gBAApE,IAAI,EAAE,MAAM,EAAS,IAAI,EAAE,WAAW,EAAS,GAAG,EAAE,gBAAgB;IAGvF,IAAI,WAAW,YAEd;IAED,IAAI,YAAY,YAEf;IAED,IAAI,UAAU,YAEb;IAED,IAAI,WAAW,YAEd;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,YAAY,WAEf;IAED,IAAI,gBAAgB,eAEnB;IAED,IAAI,gBAAgB,eAEnB;IAED,IAAI,YAAY,WAEf;IAED,IAAI,cAAc,WAEjB;IAED,IAAI,cAAc,uBAEjB;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IACD,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,KAAK,WAER;IAED,IAAI,gBAAgB,wBAEnB;IAED,QAAQ;IAIR,gBAAgB;IAIhB,gBAAgB;IAIhB,gBAAgB;IAIhB,UAAU;IAGV,UAAU;IAIV,WAAW;IAGX,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAMtD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAIzD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { RecordInfo } from "./RecordInfo.js";
|
|
2
|
+
import { assert } from "../utils.js";
|
|
3
|
+
export class LinkInfo {
|
|
4
|
+
constructor(name, data, map) {
|
|
5
|
+
this.name = name;
|
|
6
|
+
this.data = data;
|
|
7
|
+
this.map = map;
|
|
8
|
+
}
|
|
9
|
+
get isManyToOne() {
|
|
10
|
+
return this.data.relType[0] === 'n' && this.data.relType[1] === '1';
|
|
11
|
+
}
|
|
12
|
+
get isManyToMany() {
|
|
13
|
+
return this.data.relType[0] === 'n' && this.data.relType[1] === 'n';
|
|
14
|
+
}
|
|
15
|
+
get isOneToOne() {
|
|
16
|
+
return this.data.relType[0] === '1' && this.data.relType[1] === '1';
|
|
17
|
+
}
|
|
18
|
+
get isOneToMany() {
|
|
19
|
+
return this.data.relType[0] === '1' && this.data.relType[1] === 'n';
|
|
20
|
+
}
|
|
21
|
+
get isXToOne() {
|
|
22
|
+
return this.isManyToOne || this.isOneToOne;
|
|
23
|
+
}
|
|
24
|
+
get isOneToX() {
|
|
25
|
+
return this.isOneToMany || this.isOneToOne;
|
|
26
|
+
}
|
|
27
|
+
get isXToMany() {
|
|
28
|
+
return this.isManyToMany || this.isOneToMany;
|
|
29
|
+
}
|
|
30
|
+
get sourceRecord() {
|
|
31
|
+
return this.data.sourceRecord;
|
|
32
|
+
}
|
|
33
|
+
get sourceRecordInfo() {
|
|
34
|
+
return new RecordInfo(this.data.sourceRecord, this.map);
|
|
35
|
+
}
|
|
36
|
+
get targetRecordInfo() {
|
|
37
|
+
return new RecordInfo(this.data.targetRecord, this.map);
|
|
38
|
+
}
|
|
39
|
+
get targetRecord() {
|
|
40
|
+
return this.data.targetRecord;
|
|
41
|
+
}
|
|
42
|
+
get sourceProperty() {
|
|
43
|
+
return this.data.sourceProperty;
|
|
44
|
+
}
|
|
45
|
+
get targetProperty() {
|
|
46
|
+
return this.data.targetProperty;
|
|
47
|
+
}
|
|
48
|
+
get record() {
|
|
49
|
+
return this.map.getRecord(this.name);
|
|
50
|
+
}
|
|
51
|
+
get recordInfo() {
|
|
52
|
+
return this.map.getRecordInfo(this.name);
|
|
53
|
+
}
|
|
54
|
+
get table() {
|
|
55
|
+
return this.record?.table;
|
|
56
|
+
}
|
|
57
|
+
get isTargetReliance() {
|
|
58
|
+
return this.data.isTargetReliance;
|
|
59
|
+
}
|
|
60
|
+
isMerged() {
|
|
61
|
+
return !!this.data.mergedTo;
|
|
62
|
+
}
|
|
63
|
+
isSourceRelation() {
|
|
64
|
+
return !!this.data.isSourceRelation;
|
|
65
|
+
}
|
|
66
|
+
isMergedToSource() {
|
|
67
|
+
return this.data.mergedTo === 'source';
|
|
68
|
+
}
|
|
69
|
+
isMergedToTarget() {
|
|
70
|
+
return this.data.mergedTo === 'target';
|
|
71
|
+
}
|
|
72
|
+
isCombined() {
|
|
73
|
+
return this.data.mergedTo === 'combined';
|
|
74
|
+
}
|
|
75
|
+
isIsolated() {
|
|
76
|
+
return !this.data.mergedTo;
|
|
77
|
+
}
|
|
78
|
+
isSymmetric() {
|
|
79
|
+
return this.data.sourceRecord === this.data.targetRecord && this.data.sourceProperty === this.data.targetProperty;
|
|
80
|
+
}
|
|
81
|
+
isRelationSource(recordName, attribute) {
|
|
82
|
+
return this.data.sourceRecord === recordName && this.data.sourceProperty === attribute;
|
|
83
|
+
}
|
|
84
|
+
getAttributeName(recordName, attribute) {
|
|
85
|
+
assert(!!recordName && !!attribute, `${recordName}, ${attribute} cannot be empty`);
|
|
86
|
+
return this.isRelationSource(recordName, attribute) ? ['source', 'target'] : ['target', 'source'];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=LinkInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkInfo.js","sourceRoot":"","sources":["../../../src/storage/erstorage/LinkInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BoolExp } from "@shared";
|
|
2
|
+
import { EntityToTableMap } from "./EntityToTableMap.js";
|
|
3
|
+
import { RecordQueryTree } from "./RecordQuery.js";
|
|
4
|
+
import { Database } from "@runtime";
|
|
5
|
+
import { PlaceholderGen } from "./RecordQueryAgent.js";
|
|
6
|
+
export type MatchAtom = {
|
|
7
|
+
key: string;
|
|
8
|
+
value: [string, any];
|
|
9
|
+
isReferenceValue?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type MatchExpressionData = BoolExp<MatchAtom>;
|
|
12
|
+
export type FieldMatchAtom = MatchAtom & {
|
|
13
|
+
isInnerQuery?: boolean;
|
|
14
|
+
fieldName?: [string, string];
|
|
15
|
+
fieldValue?: string;
|
|
16
|
+
fieldParams?: any[];
|
|
17
|
+
namePath?: string[];
|
|
18
|
+
isFunctionMatch?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare class MatchExp {
|
|
21
|
+
entityName: string;
|
|
22
|
+
map: EntityToTableMap;
|
|
23
|
+
data?: MatchExpressionData | undefined;
|
|
24
|
+
contextRootEntity?: string | undefined;
|
|
25
|
+
fromRelation?: boolean | undefined;
|
|
26
|
+
static atom(condition: MatchAtom): BoolExp<MatchAtom>;
|
|
27
|
+
static fromObject(condition: Object): BoolExp<MatchAtom>;
|
|
28
|
+
xToOneQueryTree: RecordQueryTree;
|
|
29
|
+
constructor(entityName: string, map: EntityToTableMap, data?: MatchExpressionData | undefined, contextRootEntity?: string | undefined, fromRelation?: boolean | undefined);
|
|
30
|
+
buildQueryTree(matchData: MatchExpressionData, recordQueryTree: RecordQueryTree): void;
|
|
31
|
+
getFinalFieldName(matchAttributePath: string[]): [string, string];
|
|
32
|
+
getReferenceFieldValue(valueStr: string): string;
|
|
33
|
+
getFinalFieldValue(isReferenceValue: boolean, key: string, value: [string, any], fieldName: string, fieldType: string | undefined, p: PlaceholderGen, db?: Database): [string, any[]];
|
|
34
|
+
buildFieldMatchExpression(p: PlaceholderGen, db?: Database): BoolExp<FieldMatchAtom> | null;
|
|
35
|
+
and(condition: MatchAtom | MatchExp): MatchExp;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=MatchExp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MatchExp.d.ts","sourceRoot":"","sources":["../../../src/storage/erstorage/MatchExp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AACzF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAEpD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IAEnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAA;AAED,qBAAa,QAAQ;IAsBE,UAAU,EAAE,MAAM;IAAS,GAAG,EAAE,gBAAgB;IAAS,IAAI,CAAC,EAAE,mBAAmB;IAAS,iBAAiB,CAAC,EAAE,MAAM;IAAS,YAAY,CAAC,EAAE,OAAO;WArB1J,IAAI,CAAC,SAAS,EAAE,SAAS;WAOzB,UAAU,CAAC,SAAS,EAAE,MAAM;IAYnC,eAAe,EAAE,eAAe,CAAA;gBAEpB,UAAU,EAAE,MAAM,EAAS,GAAG,EAAE,gBAAgB,EAAS,IAAI,CAAC,EAAE,mBAAmB,YAAA,EAAS,iBAAiB,CAAC,EAAE,MAAM,YAAA,EAAS,YAAY,CAAC,EAAE,OAAO,YAAA;IAQxK,cAAc,CAAC,SAAS,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe;IA2C/E,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAKjE,sBAAsB,CAAC,QAAQ,EAAE,MAAM;IASvC,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAC,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IAyClL,yBAAyB,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAsF3F,GAAG,CAAC,SAAS,EAAE,SAAS,GAAC,QAAQ,GAAG,QAAQ;CAW/C"}
|