interaqt 0.1.0 → 0.2.1

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 (329) hide show
  1. package/agent/.claude/agents/code-generation-handler.md +598 -0
  2. package/agent/.claude/agents/computation-generation-handler.md +290 -0
  3. package/agent/.claude/agents/implement-design-handler.md +179 -0
  4. package/agent/.claude/agents/permission-generation-handler.md +202 -0
  5. package/agent/.claude/agents/requirements-analysis-handler-bak.md +530 -0
  6. package/agent/.claude/agents/requirements-analysis-handler.md +720 -0
  7. package/agent/.claude/settings.local.json +46 -0
  8. package/agent/CLAUDE.md +72 -0
  9. package/dist/index.js +10508 -4
  10. package/dist/index.js.map +1 -1
  11. package/dist/runtime/ComputationSourceMap.d.ts +117 -0
  12. package/dist/runtime/ComputationSourceMap.d.ts.map +1 -0
  13. package/dist/runtime/Controller.d.ts +37 -26
  14. package/dist/runtime/Controller.d.ts.map +1 -1
  15. package/dist/runtime/ExternalSynchronizer.d.ts +6 -0
  16. package/dist/runtime/ExternalSynchronizer.d.ts.map +1 -0
  17. package/dist/runtime/MonoSystem.d.ts +29 -17
  18. package/dist/runtime/MonoSystem.d.ts.map +1 -1
  19. package/dist/runtime/Mysql.d.ts +2 -2
  20. package/dist/runtime/PGLite.d.ts +35 -0
  21. package/dist/runtime/PGLite.d.ts.map +1 -0
  22. package/dist/runtime/PostgreSQL.d.ts +2 -2
  23. package/dist/runtime/SQLite.d.ts +3 -3
  24. package/dist/runtime/SQLite.d.ts.map +1 -1
  25. package/dist/runtime/Scheduler.d.ts +28 -61
  26. package/dist/runtime/Scheduler.d.ts.map +1 -1
  27. package/dist/runtime/System.d.ts +18 -224
  28. package/dist/runtime/System.d.ts.map +1 -1
  29. package/dist/runtime/{ActivityCall.d.ts → activity/ActivityCall.d.ts} +6 -7
  30. package/dist/runtime/activity/ActivityCall.d.ts.map +1 -0
  31. package/dist/runtime/activity/ActivityManager.d.ts +44 -0
  32. package/dist/runtime/activity/ActivityManager.d.ts.map +1 -0
  33. package/dist/runtime/{InteractionCall.d.ts → activity/InteractionCall.d.ts} +28 -41
  34. package/dist/runtime/activity/InteractionCall.d.ts.map +1 -0
  35. package/dist/runtime/computations/Any.d.ts +71 -0
  36. package/dist/runtime/computations/Any.d.ts.map +1 -0
  37. package/dist/runtime/computations/Average.d.ts +69 -0
  38. package/dist/runtime/computations/Average.d.ts.map +1 -0
  39. package/dist/runtime/computations/Computation.d.ts +138 -0
  40. package/dist/runtime/computations/Computation.d.ts.map +1 -0
  41. package/dist/runtime/computations/Count.d.ts +73 -0
  42. package/dist/runtime/computations/Count.d.ts.map +1 -0
  43. package/dist/runtime/computations/Custom.d.ts +45 -0
  44. package/dist/runtime/computations/Custom.d.ts.map +1 -0
  45. package/dist/runtime/computations/Every.d.ts +74 -0
  46. package/dist/runtime/computations/Every.d.ts.map +1 -0
  47. package/dist/runtime/computations/MathResolver.d.ts +60 -0
  48. package/dist/runtime/computations/MathResolver.d.ts.map +1 -0
  49. package/dist/runtime/computations/RealTime.d.ts +66 -0
  50. package/dist/runtime/computations/RealTime.d.ts.map +1 -0
  51. package/dist/runtime/{computedDataHandles → computations}/StateMachine.d.ts +31 -22
  52. package/dist/runtime/computations/StateMachine.d.ts.map +1 -0
  53. package/dist/runtime/computations/Summation.d.ts +66 -0
  54. package/dist/runtime/computations/Summation.d.ts.map +1 -0
  55. package/dist/runtime/computations/Transform.d.ts +29 -0
  56. package/dist/runtime/computations/Transform.d.ts.map +1 -0
  57. package/dist/runtime/computations/TransitionFinder.d.ts +11 -0
  58. package/dist/runtime/computations/TransitionFinder.d.ts.map +1 -0
  59. package/dist/runtime/computations/WeightedSummation.d.ts +71 -0
  60. package/dist/runtime/computations/WeightedSummation.d.ts.map +1 -0
  61. package/dist/runtime/computations/index.d.ts +22 -0
  62. package/dist/runtime/computations/index.d.ts.map +1 -0
  63. package/dist/runtime/errors/ActivityErrors.d.ts +40 -0
  64. package/dist/runtime/errors/ActivityErrors.d.ts.map +1 -0
  65. package/dist/runtime/errors/ComputationErrors.d.ts +61 -0
  66. package/dist/runtime/errors/ComputationErrors.d.ts.map +1 -0
  67. package/dist/runtime/errors/ConditionErrors.d.ts +33 -0
  68. package/dist/runtime/errors/ConditionErrors.d.ts.map +1 -0
  69. package/dist/runtime/errors/FrameworkError.d.ts +77 -0
  70. package/dist/runtime/errors/FrameworkError.d.ts.map +1 -0
  71. package/dist/runtime/errors/InteractionErrors.d.ts +21 -0
  72. package/dist/runtime/errors/InteractionErrors.d.ts.map +1 -0
  73. package/dist/runtime/errors/SystemErrors.d.ts +16 -0
  74. package/dist/runtime/errors/SystemErrors.d.ts.map +1 -0
  75. package/dist/runtime/errors/index.d.ts +37 -0
  76. package/dist/runtime/errors/index.d.ts.map +1 -0
  77. package/dist/runtime/index.d.ts +9 -7
  78. package/dist/runtime/index.d.ts.map +1 -1
  79. package/dist/shared/Action.d.ts +38 -0
  80. package/dist/shared/Action.d.ts.map +1 -0
  81. package/dist/shared/Activity.d.ts +178 -0
  82. package/dist/shared/Activity.d.ts.map +1 -0
  83. package/dist/shared/Any.d.ts +82 -0
  84. package/dist/shared/Any.d.ts.map +1 -0
  85. package/dist/shared/Attributive.d.ts +92 -0
  86. package/dist/shared/Attributive.d.ts.map +1 -0
  87. package/dist/shared/Average.d.ts +59 -0
  88. package/dist/shared/Average.d.ts.map +1 -0
  89. package/dist/shared/BoolExp.d.ts +139 -63
  90. package/dist/shared/BoolExp.d.ts.map +1 -1
  91. package/dist/shared/Computation.d.ts +23 -0
  92. package/dist/shared/Computation.d.ts.map +1 -0
  93. package/dist/shared/Condition.d.ts +43 -0
  94. package/dist/shared/Condition.d.ts.map +1 -0
  95. package/dist/shared/Conditions.d.ts +38 -0
  96. package/dist/shared/Conditions.d.ts.map +1 -0
  97. package/dist/shared/Count.d.ts +77 -0
  98. package/dist/shared/Count.d.ts.map +1 -0
  99. package/dist/shared/Custom.d.ts +108 -0
  100. package/dist/shared/Custom.d.ts.map +1 -0
  101. package/dist/shared/Data.d.ts +121 -0
  102. package/dist/shared/Data.d.ts.map +1 -0
  103. package/dist/shared/DataAttributives.d.ts +38 -0
  104. package/dist/shared/DataAttributives.d.ts.map +1 -0
  105. package/dist/shared/Entity.d.ts +96 -0
  106. package/dist/shared/Entity.d.ts.map +1 -0
  107. package/dist/shared/Event.d.ts +36 -0
  108. package/dist/shared/Event.d.ts.map +1 -0
  109. package/dist/shared/Every.d.ts +85 -0
  110. package/dist/shared/Every.d.ts.map +1 -0
  111. package/dist/shared/Gateway.d.ts +36 -0
  112. package/dist/shared/Gateway.d.ts.map +1 -0
  113. package/dist/shared/Interaction.d.ts +108 -0
  114. package/dist/shared/Interaction.d.ts.map +1 -0
  115. package/dist/shared/Payload.d.ts +39 -0
  116. package/dist/shared/Payload.d.ts.map +1 -0
  117. package/dist/shared/PayloadItem.d.ts +85 -0
  118. package/dist/shared/PayloadItem.d.ts.map +1 -0
  119. package/dist/shared/Property.d.ts +83 -0
  120. package/dist/shared/Property.d.ts.map +1 -0
  121. package/dist/shared/RealDictionary.d.ts +94 -0
  122. package/dist/shared/RealDictionary.d.ts.map +1 -0
  123. package/dist/shared/RealTime.d.ts +66 -0
  124. package/dist/shared/RealTime.d.ts.map +1 -0
  125. package/dist/shared/RefContainer.d.ts +89 -0
  126. package/dist/shared/RefContainer.d.ts.map +1 -0
  127. package/dist/shared/Relation.d.ts +140 -0
  128. package/dist/shared/Relation.d.ts.map +1 -0
  129. package/dist/shared/SideEffect.d.ts +45 -0
  130. package/dist/shared/SideEffect.d.ts.map +1 -0
  131. package/dist/shared/StateMachine.d.ts +55 -0
  132. package/dist/shared/StateMachine.d.ts.map +1 -0
  133. package/dist/shared/StateNode.d.ts +45 -0
  134. package/dist/shared/StateNode.d.ts.map +1 -0
  135. package/dist/shared/StateTransfer.d.ts +63 -0
  136. package/dist/shared/StateTransfer.d.ts.map +1 -0
  137. package/dist/shared/Summation.d.ts +59 -0
  138. package/dist/shared/Summation.d.ts.map +1 -0
  139. package/dist/shared/Transform.d.ts +54 -0
  140. package/dist/shared/Transform.d.ts.map +1 -0
  141. package/dist/shared/User.d.ts +10 -0
  142. package/dist/shared/User.d.ts.map +1 -0
  143. package/dist/shared/WeightedSummation.d.ts +82 -0
  144. package/dist/shared/WeightedSummation.d.ts.map +1 -0
  145. package/dist/shared/index.d.ts +35 -9
  146. package/dist/shared/index.d.ts.map +1 -1
  147. package/dist/shared/init.d.ts +3 -0
  148. package/dist/shared/init.d.ts.map +1 -0
  149. package/dist/shared/interfaces.d.ts +72 -0
  150. package/dist/shared/interfaces.d.ts.map +1 -0
  151. package/dist/shared/types.d.ts +77 -0
  152. package/dist/shared/types.d.ts.map +1 -0
  153. package/dist/shared/utils.d.ts +16 -10
  154. package/dist/shared/utils.d.ts.map +1 -1
  155. package/dist/storage/erstorage/AttributeInfo.d.ts +8 -3
  156. package/dist/storage/erstorage/AttributeInfo.d.ts.map +1 -1
  157. package/dist/storage/erstorage/AttributeQuery.d.ts +4 -3
  158. package/dist/storage/erstorage/AttributeQuery.d.ts.map +1 -1
  159. package/dist/storage/erstorage/EntityQueryHandle.d.ts +18 -17
  160. package/dist/storage/erstorage/EntityQueryHandle.d.ts.map +1 -1
  161. package/dist/storage/erstorage/EntityToTableMap.d.ts +27 -5
  162. package/dist/storage/erstorage/EntityToTableMap.d.ts.map +1 -1
  163. package/dist/storage/erstorage/FilteredEntityManager.d.ts +70 -0
  164. package/dist/storage/erstorage/FilteredEntityManager.d.ts.map +1 -0
  165. package/dist/storage/erstorage/LinkInfo.d.ts +10 -3
  166. package/dist/storage/erstorage/LinkInfo.d.ts.map +1 -1
  167. package/dist/storage/erstorage/MatchExp.d.ts +19 -9
  168. package/dist/storage/erstorage/MatchExp.d.ts.map +1 -1
  169. package/dist/storage/erstorage/MergedItemProcessor.d.ts +25 -0
  170. package/dist/storage/erstorage/MergedItemProcessor.d.ts.map +1 -0
  171. package/dist/storage/erstorage/Modifier.d.ts +1 -1
  172. package/dist/storage/erstorage/NewRecordData.d.ts +16 -9
  173. package/dist/storage/erstorage/NewRecordData.d.ts.map +1 -1
  174. package/dist/storage/erstorage/RecordInfo.d.ts +11 -2
  175. package/dist/storage/erstorage/RecordInfo.d.ts.map +1 -1
  176. package/dist/storage/erstorage/RecordQuery.d.ts +9 -8
  177. package/dist/storage/erstorage/RecordQuery.d.ts.map +1 -1
  178. package/dist/storage/erstorage/RecordQueryAgent.d.ts +26 -13
  179. package/dist/storage/erstorage/RecordQueryAgent.d.ts.map +1 -1
  180. package/dist/storage/erstorage/Setup.d.ts +49 -11
  181. package/dist/storage/erstorage/Setup.d.ts.map +1 -1
  182. package/dist/storage/erstorage/util.d.ts.map +1 -1
  183. package/package.json +44 -20
  184. package/README.md +0 -53
  185. package/dist/runtime/ActivityCall.d.ts.map +0 -1
  186. package/dist/runtime/ActivityCall.js +0 -379
  187. package/dist/runtime/ActivityCall.js.map +0 -1
  188. package/dist/runtime/Controller.js +0 -225
  189. package/dist/runtime/Controller.js.map +0 -1
  190. package/dist/runtime/InteractionCall.d.ts.map +0 -1
  191. package/dist/runtime/InteractionCall.js +0 -385
  192. package/dist/runtime/InteractionCall.js.map +0 -1
  193. package/dist/runtime/MonoSystem.js +0 -331
  194. package/dist/runtime/MonoSystem.js.map +0 -1
  195. package/dist/runtime/Mysql.js +0 -171
  196. package/dist/runtime/Mysql.js.map +0 -1
  197. package/dist/runtime/PostgreSQL.js +0 -172
  198. package/dist/runtime/PostgreSQL.js.map +0 -1
  199. package/dist/runtime/SQLite.js +0 -146
  200. package/dist/runtime/SQLite.js.map +0 -1
  201. package/dist/runtime/Scheduler.js +0 -457
  202. package/dist/runtime/Scheduler.js.map +0 -1
  203. package/dist/runtime/System.js +0 -90
  204. package/dist/runtime/System.js.map +0 -1
  205. package/dist/runtime/asyncInteractionContext.js +0 -3
  206. package/dist/runtime/asyncInteractionContext.js.map +0 -1
  207. package/dist/runtime/boolExpression.js +0 -43
  208. package/dist/runtime/boolExpression.js.map +0 -1
  209. package/dist/runtime/computedDataHandles/Any.d.ts +0 -52
  210. package/dist/runtime/computedDataHandles/Any.d.ts.map +0 -1
  211. package/dist/runtime/computedDataHandles/Any.js +0 -152
  212. package/dist/runtime/computedDataHandles/Any.js.map +0 -1
  213. package/dist/runtime/computedDataHandles/Computation.d.ts +0 -108
  214. package/dist/runtime/computedDataHandles/Computation.d.ts.map +0 -1
  215. package/dist/runtime/computedDataHandles/Computation.js +0 -49
  216. package/dist/runtime/computedDataHandles/Computation.js.map +0 -1
  217. package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts +0 -42
  218. package/dist/runtime/computedDataHandles/ComputedDataHandle.d.ts.map +0 -1
  219. package/dist/runtime/computedDataHandles/ComputedDataHandle.js +0 -4
  220. package/dist/runtime/computedDataHandles/ComputedDataHandle.js.map +0 -1
  221. package/dist/runtime/computedDataHandles/Count.d.ts +0 -45
  222. package/dist/runtime/computedDataHandles/Count.d.ts.map +0 -1
  223. package/dist/runtime/computedDataHandles/Count.js +0 -85
  224. package/dist/runtime/computedDataHandles/Count.js.map +0 -1
  225. package/dist/runtime/computedDataHandles/Every.d.ts +0 -56
  226. package/dist/runtime/computedDataHandles/Every.d.ts.map +0 -1
  227. package/dist/runtime/computedDataHandles/Every.js +0 -178
  228. package/dist/runtime/computedDataHandles/Every.js.map +0 -1
  229. package/dist/runtime/computedDataHandles/StateMachine.d.ts.map +0 -1
  230. package/dist/runtime/computedDataHandles/StateMachine.js +0 -180
  231. package/dist/runtime/computedDataHandles/StateMachine.js.map +0 -1
  232. package/dist/runtime/computedDataHandles/Transform.d.ts +0 -26
  233. package/dist/runtime/computedDataHandles/Transform.d.ts.map +0 -1
  234. package/dist/runtime/computedDataHandles/Transform.js +0 -106
  235. package/dist/runtime/computedDataHandles/Transform.js.map +0 -1
  236. package/dist/runtime/computedDataHandles/TransitionFinder.d.ts +0 -57
  237. package/dist/runtime/computedDataHandles/TransitionFinder.d.ts.map +0 -1
  238. package/dist/runtime/computedDataHandles/TransitionFinder.js +0 -40
  239. package/dist/runtime/computedDataHandles/TransitionFinder.js.map +0 -1
  240. package/dist/runtime/computedDataHandles/WeightedSummation.d.ts +0 -57
  241. package/dist/runtime/computedDataHandles/WeightedSummation.d.ts.map +0 -1
  242. package/dist/runtime/computedDataHandles/WeightedSummation.js +0 -146
  243. package/dist/runtime/computedDataHandles/WeightedSummation.js.map +0 -1
  244. package/dist/runtime/computedDataHandles/index.d.ts +0 -7
  245. package/dist/runtime/computedDataHandles/index.d.ts.map +0 -1
  246. package/dist/runtime/computedDataHandles/index.js +0 -7
  247. package/dist/runtime/computedDataHandles/index.js.map +0 -1
  248. package/dist/runtime/index.js +0 -15
  249. package/dist/runtime/index.js.map +0 -1
  250. package/dist/runtime/server.d.ts +0 -35
  251. package/dist/runtime/server.d.ts.map +0 -1
  252. package/dist/runtime/server.js +0 -171
  253. package/dist/runtime/server.js.map +0 -1
  254. package/dist/runtime/types/boolExpression.js +0 -6
  255. package/dist/runtime/types/boolExpression.js.map +0 -1
  256. package/dist/runtime/util.js +0 -39
  257. package/dist/runtime/util.js.map +0 -1
  258. package/dist/shared/BoolExp.js +0 -252
  259. package/dist/shared/BoolExp.js.map +0 -1
  260. package/dist/shared/activity/Activity.d.ts +0 -465
  261. package/dist/shared/activity/Activity.d.ts.map +0 -1
  262. package/dist/shared/activity/Activity.js +0 -264
  263. package/dist/shared/activity/Activity.js.map +0 -1
  264. package/dist/shared/activity/Condition.d.ts +0 -75
  265. package/dist/shared/activity/Condition.d.ts.map +0 -1
  266. package/dist/shared/activity/Condition.js +0 -51
  267. package/dist/shared/activity/Condition.js.map +0 -1
  268. package/dist/shared/activity/Data.d.ts +0 -115
  269. package/dist/shared/activity/Data.d.ts.map +0 -1
  270. package/dist/shared/activity/Data.js +0 -89
  271. package/dist/shared/activity/Data.js.map +0 -1
  272. package/dist/shared/attributive.d.ts +0 -93
  273. package/dist/shared/attributive.d.ts.map +0 -1
  274. package/dist/shared/attributive.js +0 -59
  275. package/dist/shared/attributive.js.map +0 -1
  276. package/dist/shared/computed.d.ts +0 -607
  277. package/dist/shared/computed.d.ts.map +0 -1
  278. package/dist/shared/computed.js +0 -202
  279. package/dist/shared/computed.js.map +0 -1
  280. package/dist/shared/createClass.d.ts +0 -102
  281. package/dist/shared/createClass.d.ts.map +0 -1
  282. package/dist/shared/createClass.js +0 -276
  283. package/dist/shared/createClass.js.map +0 -1
  284. package/dist/shared/dictionary/Dictionary.d.ts +0 -40
  285. package/dist/shared/dictionary/Dictionary.d.ts.map +0 -1
  286. package/dist/shared/dictionary/Dictionary.js +0 -51
  287. package/dist/shared/dictionary/Dictionary.js.map +0 -1
  288. package/dist/shared/entity/Entity.d.ts +0 -149
  289. package/dist/shared/entity/Entity.d.ts.map +0 -1
  290. package/dist/shared/entity/Entity.js +0 -226
  291. package/dist/shared/entity/Entity.js.map +0 -1
  292. package/dist/shared/index.js +0 -11
  293. package/dist/shared/index.js.map +0 -1
  294. package/dist/shared/user/User.d.ts +0 -21
  295. package/dist/shared/user/User.d.ts.map +0 -1
  296. package/dist/shared/user/User.js +0 -11
  297. package/dist/shared/user/User.js.map +0 -1
  298. package/dist/shared/utils.js +0 -19
  299. package/dist/shared/utils.js.map +0 -1
  300. package/dist/storage/erstorage/AttributeInfo.js +0 -147
  301. package/dist/storage/erstorage/AttributeInfo.js.map +0 -1
  302. package/dist/storage/erstorage/AttributeQuery.js +0 -190
  303. package/dist/storage/erstorage/AttributeQuery.js.map +0 -1
  304. package/dist/storage/erstorage/EntityQueryHandle.js +0 -78
  305. package/dist/storage/erstorage/EntityQueryHandle.js.map +0 -1
  306. package/dist/storage/erstorage/EntityToTableMap.js +0 -262
  307. package/dist/storage/erstorage/EntityToTableMap.js.map +0 -1
  308. package/dist/storage/erstorage/LinkInfo.js +0 -89
  309. package/dist/storage/erstorage/LinkInfo.js.map +0 -1
  310. package/dist/storage/erstorage/MatchExp.js +0 -211
  311. package/dist/storage/erstorage/MatchExp.js.map +0 -1
  312. package/dist/storage/erstorage/Modifier.js +0 -24
  313. package/dist/storage/erstorage/Modifier.js.map +0 -1
  314. package/dist/storage/erstorage/NewRecordData.js +0 -178
  315. package/dist/storage/erstorage/NewRecordData.js.map +0 -1
  316. package/dist/storage/erstorage/RecordInfo.js +0 -111
  317. package/dist/storage/erstorage/RecordInfo.js.map +0 -1
  318. package/dist/storage/erstorage/RecordQuery.js +0 -158
  319. package/dist/storage/erstorage/RecordQuery.js.map +0 -1
  320. package/dist/storage/erstorage/RecordQueryAgent.js +0 -1130
  321. package/dist/storage/erstorage/RecordQueryAgent.js.map +0 -1
  322. package/dist/storage/erstorage/Setup.js +0 -400
  323. package/dist/storage/erstorage/Setup.js.map +0 -1
  324. package/dist/storage/erstorage/util.js +0 -25
  325. package/dist/storage/erstorage/util.js.map +0 -1
  326. package/dist/storage/index.js +0 -13
  327. package/dist/storage/index.js.map +0 -1
  328. package/dist/storage/utils.js +0 -48
  329. package/dist/storage/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecordQueryAgent.js","sourceRoot":"","sources":["../../../src/storage/erstorage/RecordQueryAgent.ts"],"names":[],"mappings":"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"}
@@ -1,400 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Setup.js","sourceRoot":"","sources":["../../../src/storage/erstorage/Setup.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- export function flatten(arr) {
2
- const result = [];
3
- arr.forEach(i => result.push(...(Array.isArray(i) ? i : [i])));
4
- return result;
5
- }
6
- export async function someAsync(arr, handle) {
7
- for (let i of arr) {
8
- if (await handle(i))
9
- return true;
10
- }
11
- return false;
12
- }
13
- export function isRelation(relation) {
14
- return relation.source !== undefined && relation.target !== undefined;
15
- }
16
- export function indexBy(arr, key) {
17
- return Object.fromEntries(arr.map(o => [o[key], o]));
18
- }
19
- export function assert(condition, message) {
20
- if (!condition) {
21
- // if (__DEV__) debugger
22
- throw new Error(message);
23
- }
24
- }
25
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/storage/erstorage/util.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,OAAO,CAAI,GAAc;IACrC,MAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAU,EAAE,MAAmC;IAC3E,KAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IACpC,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAa;IACpC,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAA;AACzE,CAAC;AAID,MAAM,UAAU,OAAO,CAAC,GAAU,EAAE,GAAW;IAC3C,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,SAAc,EAAE,OAAe;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,wBAAwB;QACxB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;AACL,CAAC"}
@@ -1,13 +0,0 @@
1
- export * from './erstorage/AttributeInfo.js';
2
- export * from './erstorage/AttributeQuery.js';
3
- export * from './erstorage/EntityQueryHandle.js';
4
- export * from './erstorage/EntityToTableMap.js';
5
- export * from './erstorage/LinkInfo.js';
6
- export * from './erstorage/MatchExp.js';
7
- export * from './erstorage/Modifier.js';
8
- export * from './erstorage/NewRecordData.js';
9
- export * from './erstorage/RecordInfo.js';
10
- export * from './erstorage/RecordQuery.js';
11
- export * from './erstorage/RecordQueryAgent.js';
12
- export * from './erstorage/Setup.js';
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA"}