@acmekit/link-modules 2.13.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 (222) hide show
  1. package/dist/definitions/cart-payment-collection.d.ts +3 -0
  2. package/dist/definitions/cart-payment-collection.d.ts.map +1 -0
  3. package/dist/definitions/cart-payment-collection.js +71 -0
  4. package/dist/definitions/cart-payment-collection.js.map +1 -0
  5. package/dist/definitions/cart-promotion.d.ts +3 -0
  6. package/dist/definitions/cart-promotion.d.ts.map +1 -0
  7. package/dist/definitions/cart-promotion.js +63 -0
  8. package/dist/definitions/cart-promotion.js.map +1 -0
  9. package/dist/definitions/customer-account-holder.d.ts +3 -0
  10. package/dist/definitions/customer-account-holder.d.ts.map +1 -0
  11. package/dist/definitions/customer-account-holder.js +75 -0
  12. package/dist/definitions/customer-account-holder.js.map +1 -0
  13. package/dist/definitions/fulfillment-provider-location.d.ts +3 -0
  14. package/dist/definitions/fulfillment-provider-location.d.ts.map +1 -0
  15. package/dist/definitions/fulfillment-provider-location.js +75 -0
  16. package/dist/definitions/fulfillment-provider-location.js.map +1 -0
  17. package/dist/definitions/fulfillment-set-location.d.ts +3 -0
  18. package/dist/definitions/fulfillment-set-location.d.ts.map +1 -0
  19. package/dist/definitions/fulfillment-set-location.js +75 -0
  20. package/dist/definitions/fulfillment-set-location.js.map +1 -0
  21. package/dist/definitions/index.d.ts +22 -0
  22. package/dist/definitions/index.d.ts.map +1 -0
  23. package/dist/definitions/index.js +38 -0
  24. package/dist/definitions/index.js.map +1 -0
  25. package/dist/definitions/invite-rbac-role.d.ts +3 -0
  26. package/dist/definitions/invite-rbac-role.d.ts.map +1 -0
  27. package/dist/definitions/invite-rbac-role.js +76 -0
  28. package/dist/definitions/invite-rbac-role.js.map +1 -0
  29. package/dist/definitions/order-cart.d.ts +3 -0
  30. package/dist/definitions/order-cart.d.ts.map +1 -0
  31. package/dist/definitions/order-cart.js +71 -0
  32. package/dist/definitions/order-cart.js.map +1 -0
  33. package/dist/definitions/order-claim-payment-collection.d.ts +3 -0
  34. package/dist/definitions/order-claim-payment-collection.d.ts.map +1 -0
  35. package/dist/definitions/order-claim-payment-collection.js +77 -0
  36. package/dist/definitions/order-claim-payment-collection.js.map +1 -0
  37. package/dist/definitions/order-exchange-payment-collection.d.ts +3 -0
  38. package/dist/definitions/order-exchange-payment-collection.d.ts.map +1 -0
  39. package/dist/definitions/order-exchange-payment-collection.js +77 -0
  40. package/dist/definitions/order-exchange-payment-collection.js.map +1 -0
  41. package/dist/definitions/order-fulfillment.d.ts +3 -0
  42. package/dist/definitions/order-fulfillment.d.ts.map +1 -0
  43. package/dist/definitions/order-fulfillment.js +75 -0
  44. package/dist/definitions/order-fulfillment.js.map +1 -0
  45. package/dist/definitions/order-payment-collection.d.ts +3 -0
  46. package/dist/definitions/order-payment-collection.d.ts.map +1 -0
  47. package/dist/definitions/order-payment-collection.js +75 -0
  48. package/dist/definitions/order-payment-collection.js.map +1 -0
  49. package/dist/definitions/order-promotion.d.ts +3 -0
  50. package/dist/definitions/order-promotion.d.ts.map +1 -0
  51. package/dist/definitions/order-promotion.js +80 -0
  52. package/dist/definitions/order-promotion.js.map +1 -0
  53. package/dist/definitions/order-return-fulfillment.d.ts +3 -0
  54. package/dist/definitions/order-return-fulfillment.d.ts.map +1 -0
  55. package/dist/definitions/order-return-fulfillment.js +72 -0
  56. package/dist/definitions/order-return-fulfillment.js.map +1 -0
  57. package/dist/definitions/product-sales-channel.d.ts +3 -0
  58. package/dist/definitions/product-sales-channel.d.ts.map +1 -0
  59. package/dist/definitions/product-sales-channel.js +76 -0
  60. package/dist/definitions/product-sales-channel.js.map +1 -0
  61. package/dist/definitions/product-shipping-profile.d.ts +3 -0
  62. package/dist/definitions/product-shipping-profile.d.ts.map +1 -0
  63. package/dist/definitions/product-shipping-profile.js +75 -0
  64. package/dist/definitions/product-shipping-profile.js.map +1 -0
  65. package/dist/definitions/product-variant-inventory-item.d.ts +3 -0
  66. package/dist/definitions/product-variant-inventory-item.d.ts.map +1 -0
  67. package/dist/definitions/product-variant-inventory-item.js +86 -0
  68. package/dist/definitions/product-variant-inventory-item.js.map +1 -0
  69. package/dist/definitions/product-variant-price-set.d.ts +3 -0
  70. package/dist/definitions/product-variant-price-set.d.ts.map +1 -0
  71. package/dist/definitions/product-variant-price-set.js +80 -0
  72. package/dist/definitions/product-variant-price-set.js.map +1 -0
  73. package/dist/definitions/publishable-api-key-sales-channel.d.ts +3 -0
  74. package/dist/definitions/publishable-api-key-sales-channel.d.ts.map +1 -0
  75. package/dist/definitions/publishable-api-key-sales-channel.js +82 -0
  76. package/dist/definitions/publishable-api-key-sales-channel.js.map +1 -0
  77. package/dist/definitions/readonly/cart-customer.d.ts +3 -0
  78. package/dist/definitions/readonly/cart-customer.d.ts.map +1 -0
  79. package/dist/definitions/readonly/cart-customer.js +40 -0
  80. package/dist/definitions/readonly/cart-customer.js.map +1 -0
  81. package/dist/definitions/readonly/cart-product.d.ts +3 -0
  82. package/dist/definitions/readonly/cart-product.d.ts.map +1 -0
  83. package/dist/definitions/readonly/cart-product.js +52 -0
  84. package/dist/definitions/readonly/cart-product.js.map +1 -0
  85. package/dist/definitions/readonly/cart-region.d.ts +3 -0
  86. package/dist/definitions/readonly/cart-region.d.ts.map +1 -0
  87. package/dist/definitions/readonly/cart-region.js +40 -0
  88. package/dist/definitions/readonly/cart-region.js.map +1 -0
  89. package/dist/definitions/readonly/cart-sales-channel.d.ts +3 -0
  90. package/dist/definitions/readonly/cart-sales-channel.d.ts.map +1 -0
  91. package/dist/definitions/readonly/cart-sales-channel.js +40 -0
  92. package/dist/definitions/readonly/cart-sales-channel.js.map +1 -0
  93. package/dist/definitions/readonly/cart-shipping-option.d.ts +3 -0
  94. package/dist/definitions/readonly/cart-shipping-option.d.ts.map +1 -0
  95. package/dist/definitions/readonly/cart-shipping-option.js +24 -0
  96. package/dist/definitions/readonly/cart-shipping-option.js.map +1 -0
  97. package/dist/definitions/readonly/index.d.ts +15 -0
  98. package/dist/definitions/readonly/index.d.ts.map +1 -0
  99. package/dist/definitions/readonly/index.js +31 -0
  100. package/dist/definitions/readonly/index.js.map +1 -0
  101. package/dist/definitions/readonly/inventory-level-stock-location.d.ts +3 -0
  102. package/dist/definitions/readonly/inventory-level-stock-location.d.ts.map +1 -0
  103. package/dist/definitions/readonly/inventory-level-stock-location.js +26 -0
  104. package/dist/definitions/readonly/inventory-level-stock-location.js.map +1 -0
  105. package/dist/definitions/readonly/line-item-adjustment-promotion.d.ts +3 -0
  106. package/dist/definitions/readonly/line-item-adjustment-promotion.d.ts.map +1 -0
  107. package/dist/definitions/readonly/line-item-adjustment-promotion.js +25 -0
  108. package/dist/definitions/readonly/line-item-adjustment-promotion.js.map +1 -0
  109. package/dist/definitions/readonly/order-customer.d.ts +3 -0
  110. package/dist/definitions/readonly/order-customer.d.ts.map +1 -0
  111. package/dist/definitions/readonly/order-customer.js +40 -0
  112. package/dist/definitions/readonly/order-customer.js.map +1 -0
  113. package/dist/definitions/readonly/order-product.d.ts +3 -0
  114. package/dist/definitions/readonly/order-product.d.ts.map +1 -0
  115. package/dist/definitions/readonly/order-product.js +54 -0
  116. package/dist/definitions/readonly/order-product.js.map +1 -0
  117. package/dist/definitions/readonly/order-region.d.ts +3 -0
  118. package/dist/definitions/readonly/order-region.d.ts.map +1 -0
  119. package/dist/definitions/readonly/order-region.js +40 -0
  120. package/dist/definitions/readonly/order-region.js.map +1 -0
  121. package/dist/definitions/readonly/order-sales-channel.d.ts +3 -0
  122. package/dist/definitions/readonly/order-sales-channel.d.ts.map +1 -0
  123. package/dist/definitions/readonly/order-sales-channel.js +40 -0
  124. package/dist/definitions/readonly/order-sales-channel.js.map +1 -0
  125. package/dist/definitions/readonly/product-translation.d.ts +3 -0
  126. package/dist/definitions/readonly/product-translation.d.ts.map +1 -0
  127. package/dist/definitions/readonly/product-translation.js +147 -0
  128. package/dist/definitions/readonly/product-translation.js.map +1 -0
  129. package/dist/definitions/readonly/store-currency.d.ts +3 -0
  130. package/dist/definitions/readonly/store-currency.d.ts.map +1 -0
  131. package/dist/definitions/readonly/store-currency.js +25 -0
  132. package/dist/definitions/readonly/store-currency.js.map +1 -0
  133. package/dist/definitions/readonly/store-locale.d.ts +3 -0
  134. package/dist/definitions/readonly/store-locale.d.ts.map +1 -0
  135. package/dist/definitions/readonly/store-locale.js +27 -0
  136. package/dist/definitions/readonly/store-locale.js.map +1 -0
  137. package/dist/definitions/region-payment-provider.d.ts +3 -0
  138. package/dist/definitions/region-payment-provider.d.ts.map +1 -0
  139. package/dist/definitions/region-payment-provider.js +78 -0
  140. package/dist/definitions/region-payment-provider.js.map +1 -0
  141. package/dist/definitions/sales-channel-location.d.ts +3 -0
  142. package/dist/definitions/sales-channel-location.d.ts.map +1 -0
  143. package/dist/definitions/sales-channel-location.js +80 -0
  144. package/dist/definitions/sales-channel-location.js.map +1 -0
  145. package/dist/definitions/shipping-option-price-set.d.ts +3 -0
  146. package/dist/definitions/shipping-option-price-set.d.ts.map +1 -0
  147. package/dist/definitions/shipping-option-price-set.js +78 -0
  148. package/dist/definitions/shipping-option-price-set.js.map +1 -0
  149. package/dist/definitions/user-rbac-role.d.ts +3 -0
  150. package/dist/definitions/user-rbac-role.d.ts.map +1 -0
  151. package/dist/definitions/user-rbac-role.js +76 -0
  152. package/dist/definitions/user-rbac-role.js.map +1 -0
  153. package/dist/index.d.ts +6 -0
  154. package/dist/index.d.ts.map +1 -0
  155. package/dist/index.js +22 -0
  156. package/dist/index.js.map +1 -0
  157. package/dist/initialize/index.d.ts +16 -0
  158. package/dist/initialize/index.d.ts.map +1 -0
  159. package/dist/initialize/index.js +165 -0
  160. package/dist/initialize/index.js.map +1 -0
  161. package/dist/initialize/module-definition.d.ts +3 -0
  162. package/dist/initialize/module-definition.d.ts.map +1 -0
  163. package/dist/initialize/module-definition.js +18 -0
  164. package/dist/initialize/module-definition.js.map +1 -0
  165. package/dist/loaders/connection.d.ts +4 -0
  166. package/dist/loaders/connection.d.ts.map +1 -0
  167. package/dist/loaders/connection.js +19 -0
  168. package/dist/loaders/connection.js.map +1 -0
  169. package/dist/loaders/container.d.ts +3 -0
  170. package/dist/loaders/container.d.ts.map +1 -0
  171. package/dist/loaders/container.js +32 -0
  172. package/dist/loaders/container.js.map +1 -0
  173. package/dist/loaders/index.d.ts +7 -0
  174. package/dist/loaders/index.d.ts.map +1 -0
  175. package/dist/loaders/index.js +14 -0
  176. package/dist/loaders/index.js.map +1 -0
  177. package/dist/migration/index.d.ts +104 -0
  178. package/dist/migration/index.d.ts.map +1 -0
  179. package/dist/migration/index.js +391 -0
  180. package/dist/migration/index.js.map +1 -0
  181. package/dist/repositories/index.d.ts +3 -0
  182. package/dist/repositories/index.d.ts.map +1 -0
  183. package/dist/repositories/index.js +8 -0
  184. package/dist/repositories/index.js.map +1 -0
  185. package/dist/repositories/link.d.ts +36 -0
  186. package/dist/repositories/link.d.ts.map +1 -0
  187. package/dist/repositories/link.js +33 -0
  188. package/dist/repositories/link.js.map +1 -0
  189. package/dist/services/dynamic-service-class.d.ts +8 -0
  190. package/dist/services/dynamic-service-class.d.ts.map +1 -0
  191. package/dist/services/dynamic-service-class.js +29 -0
  192. package/dist/services/dynamic-service-class.js.map +1 -0
  193. package/dist/services/index.d.ts +4 -0
  194. package/dist/services/index.d.ts.map +1 -0
  195. package/dist/services/index.js +26 -0
  196. package/dist/services/index.js.map +1 -0
  197. package/dist/services/link-module-service.d.ts +42 -0
  198. package/dist/services/link-module-service.d.ts.map +1 -0
  199. package/dist/services/link-module-service.js +296 -0
  200. package/dist/services/link-module-service.js.map +1 -0
  201. package/dist/services/link.d.ts +18 -0
  202. package/dist/services/link.d.ts.map +1 -0
  203. package/dist/services/link.js +139 -0
  204. package/dist/services/link.js.map +1 -0
  205. package/dist/tsconfig.tsbuildinfo +1 -0
  206. package/dist/types/index.d.ts +5 -0
  207. package/dist/types/index.d.ts.map +1 -0
  208. package/dist/types/index.js +3 -0
  209. package/dist/types/index.js.map +1 -0
  210. package/dist/utils/generate-entity.d.ts +12 -0
  211. package/dist/utils/generate-entity.d.ts.map +1 -0
  212. package/dist/utils/generate-entity.js +118 -0
  213. package/dist/utils/generate-entity.js.map +1 -0
  214. package/dist/utils/generate-schema.d.ts +5 -0
  215. package/dist/utils/generate-schema.d.ts.map +1 -0
  216. package/dist/utils/generate-schema.js +156 -0
  217. package/dist/utils/generate-schema.js.map +1 -0
  218. package/dist/utils/index.d.ts +3 -0
  219. package/dist/utils/index.d.ts.map +1 -0
  220. package/dist/utils/index.js +19 -0
  221. package/dist/utils/index.js.map +1 -0
  222. package/package.json +42 -0
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.initialize = void 0;
37
+ exports.getMigrationPlanner = getMigrationPlanner;
38
+ const modules_sdk_1 = require("@acmekit/framework/modules-sdk");
39
+ const utils_1 = require("@acmekit/framework/utils");
40
+ const linkDefinitions = __importStar(require("../definitions"));
41
+ const migration_1 = require("../migration");
42
+ const utils_2 = require("../utils");
43
+ const module_definition_1 = require("./module-definition");
44
+ const initialize = async (options, pluginLinksDefinitions, injectedDependencies, cwd, migrationOnly, schemaOnly) => {
45
+ const allLinks = {};
46
+ const modulesLoadedKeys = modules_sdk_1.AcmeKitModule.getLoadedModules().map((mod) => Object.keys(mod)[0]);
47
+ const allLinksToLoad = Object.values(linkDefinitions)
48
+ .concat(pluginLinksDefinitions ?? [])
49
+ .filter((linkDefinition) => !(0, utils_1.isFileSkipped)(linkDefinition));
50
+ await (0, utils_1.promiseAll)(allLinksToLoad.map(async (linkDefinition) => {
51
+ const definition = JSON.parse(JSON.stringify(linkDefinition));
52
+ const [primary, foreign] = definition.relationships ?? [];
53
+ if (definition.relationships?.length !== 2 &&
54
+ !definition.isReadOnlyLink) {
55
+ throw new Error(`Link module ${definition.serviceName} can only link 2 modules.`);
56
+ }
57
+ else if (foreign?.foreignKey?.split(",").length > 1 &&
58
+ !definition.isReadOnlyLink) {
59
+ throw new Error(`Foreign key cannot be a composed key.`);
60
+ }
61
+ if (Array.isArray(definition.extraDataFields)) {
62
+ const extraDataFields = definition.extraDataFields;
63
+ const definedDbFields = Object.keys(definition.databaseConfig?.extraFields || {});
64
+ const difference = (0, utils_1.arrayDifference)(extraDataFields, definedDbFields);
65
+ if (difference.length) {
66
+ throw new Error(`extraDataFields (fieldNames: ${difference.join(",")}) need to be configured under databaseConfig (serviceName: ${definition.serviceName}).`);
67
+ }
68
+ }
69
+ const serviceKey = !definition.isReadOnlyLink
70
+ ? definition.serviceName ??
71
+ (0, utils_1.composeLinkName)(primary.serviceName, primary.foreignKey, foreign.serviceName, foreign.foreignKey)
72
+ : (0, utils_1.simpleHash)(JSON.stringify(definition.extends));
73
+ if (modulesLoadedKeys.includes(serviceKey)) {
74
+ return;
75
+ }
76
+ else if (serviceKey in allLinks) {
77
+ throw new Error(`Link module ${serviceKey} already defined.`);
78
+ }
79
+ if (definition.isReadOnlyLink) {
80
+ const extended = [];
81
+ for (const extension of definition.extends ?? []) {
82
+ if (modulesLoadedKeys.includes(extension.serviceName) &&
83
+ modulesLoadedKeys.includes(extension.relationship.serviceName)) {
84
+ extended.push(extension);
85
+ }
86
+ }
87
+ definition.extends = extended;
88
+ if (extended.length === 0) {
89
+ return;
90
+ }
91
+ }
92
+ else if (!modulesLoadedKeys.includes(primary.serviceName) ||
93
+ !modulesLoadedKeys.includes(foreign.serviceName)) {
94
+ return;
95
+ }
96
+ const logger = injectedDependencies?.[utils_1.ContainerRegistrationKeys.LOGGER] ?? console;
97
+ definition.schema = (0, utils_2.generateGraphQLSchema)(definition, primary, foreign, {
98
+ logger,
99
+ });
100
+ if (!Array.isArray(definition.alias)) {
101
+ definition.alias = definition.alias ? [definition.alias] : [];
102
+ }
103
+ for (const alias of definition.alias) {
104
+ alias.args ??= {};
105
+ alias.entity = (0, utils_1.toPascalCase)("Link_" +
106
+ (definition.databaseConfig?.tableName ??
107
+ (0, utils_1.composeTableName)(primary.serviceName, primary.foreignKey, foreign.serviceName, foreign.foreignKey)));
108
+ }
109
+ const moduleDefinition = (0, module_definition_1.getLinkModuleDefinition)(definition, primary, foreign);
110
+ const linkModuleDefinition = {
111
+ key: serviceKey,
112
+ label: serviceKey,
113
+ dependencies: [utils_1.Modules.EVENT_BUS],
114
+ defaultModuleDeclaration: {
115
+ scope: modules_sdk_1.MODULE_SCOPE.INTERNAL,
116
+ },
117
+ };
118
+ const loaded = await modules_sdk_1.AcmeKitModule.bootstrapLink({
119
+ definition: linkModuleDefinition,
120
+ declaration: options,
121
+ moduleExports: moduleDefinition,
122
+ injectedDependencies,
123
+ cwd,
124
+ migrationOnly,
125
+ schemaOnly,
126
+ });
127
+ allLinks[serviceKey] = Object.values(loaded)[0];
128
+ }));
129
+ return allLinks;
130
+ };
131
+ exports.initialize = initialize;
132
+ /**
133
+ * Prepare an execution plan and run the migrations accordingly.
134
+ * It includes creating, updating, deleting the tables according to the execution plan.
135
+ * If any unsafe sql is identified then we will notify the user to act manually.
136
+ *
137
+ * @param options
138
+ * @param pluginLinksDefinition
139
+ */
140
+ function getMigrationPlanner(options, pluginLinksDefinition) {
141
+ const modulesLoadedKeys = modules_sdk_1.AcmeKitModule.getLoadedModules().map((mod) => Object.keys(mod)[0]);
142
+ const allLinksToLoad = Object.values(linkDefinitions).concat(pluginLinksDefinition ?? []);
143
+ const allLinks = new Set();
144
+ for (const definition of allLinksToLoad) {
145
+ if (definition.isReadOnlyLink) {
146
+ continue;
147
+ }
148
+ if (definition.relationships?.length !== 2) {
149
+ throw new Error(`Link module ${definition.serviceName} must have 2 relationships.`);
150
+ }
151
+ const [primary, foreign] = definition.relationships ?? [];
152
+ const serviceKey = definition.serviceName ??
153
+ (0, utils_1.composeLinkName)(primary.serviceName, primary.foreignKey, foreign.serviceName, foreign.foreignKey);
154
+ if (allLinks.has(serviceKey)) {
155
+ throw new Error(`Link module ${serviceKey} already exists.`);
156
+ }
157
+ allLinks.add(serviceKey);
158
+ if (!modulesLoadedKeys.includes(primary.serviceName) ||
159
+ !modulesLoadedKeys.includes(foreign.serviceName)) {
160
+ continue;
161
+ }
162
+ }
163
+ return new migration_1.MigrationsExecutionPlanner(allLinksToLoad, options);
164
+ }
165
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/initialize/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { JoinerRelationship, ModuleExports, ModuleJoinerConfig } from "@acmekit/framework/types";
2
+ export declare function getLinkModuleDefinition(joinerConfig: ModuleJoinerConfig, primary: JoinerRelationship, foreign: JoinerRelationship): ModuleExports;
3
+ //# sourceMappingURL=module-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-definition.d.ts","sourceRoot":"","sources":["../../src/initialize/module-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAA;AAIjC,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,kBAAkB,GAC1B,aAAa,CAWf"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLinkModuleDefinition = getLinkModuleDefinition;
4
+ const _services_1 = require("../services");
5
+ const loaders_1 = require("../loaders");
6
+ function getLinkModuleDefinition(joinerConfig, primary, foreign) {
7
+ return {
8
+ service: joinerConfig.isReadOnlyLink
9
+ ? (0, _services_1.getReadOnlyModuleService)(joinerConfig)
10
+ : (0, _services_1.getModuleService)(joinerConfig),
11
+ loaders: (0, loaders_1.getLoaders)({
12
+ joinerConfig,
13
+ primary,
14
+ foreign,
15
+ }),
16
+ };
17
+ }
18
+ //# sourceMappingURL=module-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-definition.js","sourceRoot":"","sources":["../../src/initialize/module-definition.ts"],"names":[],"mappings":";;AAQA,0DAeC;AAlBD,yCAAsE;AACtE,wCAAuC;AAEvC,SAAgB,uBAAuB,CACrC,YAAgC,EAChC,OAA2B,EAC3B,OAA2B;IAE3B,OAAO;QACL,OAAO,EAAE,YAAY,CAAC,cAAc;YAClC,CAAC,CAAC,IAAA,oCAAwB,EAAC,YAAY,CAAC;YACxC,CAAC,CAAC,IAAA,4BAAgB,EAAC,YAAY,CAAC;QAClC,OAAO,EAAE,IAAA,oBAAU,EAAC;YAClB,YAAY;YACZ,OAAO;YACP,OAAO;SACR,CAAC;KACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { InternalModuleDeclaration, LoaderOptions, ModuleServiceInitializeCustomDataLayerOptions, ModuleServiceInitializeOptions } from "@acmekit/framework/types";
2
+ import { EntitySchema } from "@acmekit/framework/mikro-orm/core";
3
+ export declare function connectionLoader(entity: EntitySchema): ({ options, container, logger, }: LoaderOptions<ModuleServiceInitializeOptions | ModuleServiceInitializeCustomDataLayerOptions>, moduleDeclaration?: InternalModuleDeclaration) => Promise<void>;
4
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/loaders/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,6CAA6C,EAC7C,8BAA8B,EAC/B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAEhE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,IAEjD,iCAIG,aAAa,CACZ,8BAA8B,GAC9B,6CAA6C,CAChD,EACD,oBAAoB,yBAAyB,KAC5C,OAAO,CAAC,IAAI,CAAC,CAajB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.connectionLoader = connectionLoader;
4
+ const utils_1 = require("@acmekit/framework/utils");
5
+ function connectionLoader(entity) {
6
+ return async ({ options, container, logger, }, moduleDeclaration) => {
7
+ const pathToMigrations = __dirname + "/../migrations";
8
+ await utils_1.ModulesSdkUtils.mikroOrmConnectionLoader({
9
+ moduleName: "link_module",
10
+ entities: [entity],
11
+ container,
12
+ options,
13
+ moduleDeclaration,
14
+ logger,
15
+ pathToMigrations,
16
+ });
17
+ };
18
+ }
19
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/loaders/connection.ts"],"names":[],"mappings":";;AAUA,4CAwBC;AA5BD,oDAA0D;AAI1D,SAAgB,gBAAgB,CAAC,MAAoB;IACnD,OAAO,KAAK,EACV,EACE,OAAO,EACP,SAAS,EACT,MAAM,GAIP,EACD,iBAA6C,EAC9B,EAAE;QACjB,MAAM,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,CAAA;QAErD,MAAM,uBAAe,CAAC,wBAAwB,CAAC;YAC7C,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,SAAS;YACT,OAAO;YACP,iBAAiB;YACjB,MAAM;YACN,gBAAgB;SACjB,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { InternalModuleDeclaration, LoaderOptions, ModuleJoinerConfig, ModulesSdkTypes } from "@acmekit/framework/types";
2
+ export declare function containerLoader(entity: any, joinerConfig: ModuleJoinerConfig): ({ options, container, }: LoaderOptions<ModulesSdkTypes.ModuleServiceInitializeOptions | ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions>, moduleDeclaration?: InternalModuleDeclaration) => Promise<void>;
3
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/loaders/container.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,eAAe,EAChB,MAAM,0BAA0B,CAAA;AAQjC,wBAAgB,eAAe,CAAC,MAAM,KAAA,EAAE,YAAY,EAAE,kBAAkB,IAEpE,yBAGG,aAAa,CACZ,eAAe,CAAC,8BAA8B,GAC9C,eAAe,CAAC,6CAA6C,CAChE,EACD,oBAAoB,yBAAyB,KAC5C,OAAO,CAAC,IAAI,CAAC,CAyCjB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.containerLoader = containerLoader;
4
+ const _repositories_1 = require("../repositories");
5
+ const _services_1 = require("../services");
6
+ const utils_1 = require("@acmekit/framework/utils");
7
+ const awilix_1 = require("@acmekit/framework/awilix");
8
+ function containerLoader(entity, joinerConfig) {
9
+ return async ({ options, container, }, moduleDeclaration) => {
10
+ const [primary, foreign] = joinerConfig.relationships;
11
+ const serviceName = !joinerConfig.isReadOnlyLink
12
+ ? joinerConfig.serviceName ??
13
+ (0, utils_1.composeLinkName)(primary.serviceName, primary.foreignKey, foreign.serviceName, foreign.foreignKey)
14
+ : (0, utils_1.simpleHash)(JSON.stringify(joinerConfig.extends));
15
+ const entityName = (0, utils_1.toPascalCase)("Link_" +
16
+ (joinerConfig.databaseConfig?.tableName ??
17
+ (0, utils_1.composeTableName)(primary.serviceName, primary.foreignKey, foreign.serviceName, foreign.foreignKey)));
18
+ container.register({
19
+ joinerConfig: (0, awilix_1.asValue)(joinerConfig),
20
+ primaryKey: (0, awilix_1.asValue)(primary.foreignKey.split(",")),
21
+ foreignKey: (0, awilix_1.asValue)(foreign.foreignKey),
22
+ extraFields: (0, awilix_1.asValue)(Object.keys(joinerConfig.databaseConfig?.extraFields || {})),
23
+ linkModuleService: (0, awilix_1.asClass)((0, _services_1.getModuleService)(joinerConfig)).singleton(),
24
+ linkService: (0, awilix_1.asClass)(_services_1.LinkService).singleton(),
25
+ baseRepository: (0, awilix_1.asClass)(_repositories_1.BaseRepository).singleton(),
26
+ linkRepository: (0, awilix_1.asClass)((0, _repositories_1.getLinkRepository)(entity)).singleton(),
27
+ entityName: (0, awilix_1.asValue)(entityName),
28
+ serviceName: (0, awilix_1.asValue)(serviceName),
29
+ });
30
+ };
31
+ }
32
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/loaders/container.ts"],"names":[],"mappings":";;AAgBA,0CAmDC;AAnED,iDAAiE;AACjE,yCAAyD;AAQzD,oDAKiC;AACjC,sDAA4D;AAC5D,SAAgB,eAAe,CAAC,MAAM,EAAE,YAAgC;IACtE,OAAO,KAAK,EACV,EACE,OAAO,EACP,SAAS,GAIV,EACD,iBAA6C,EAC9B,EAAE;QACjB,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,aAAc,CAAA;QAEtD,MAAM,WAAW,GAAG,CAAC,YAAY,CAAC,cAAc;YAC9C,CAAC,CAAC,YAAY,CAAC,WAAW;gBACxB,IAAA,uBAAe,EACb,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,CACnB;YACH,CAAC,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;QAEpD,MAAM,UAAU,GAAG,IAAA,oBAAY,EAC7B,OAAO;YACL,CAAC,YAAY,CAAC,cAAc,EAAE,SAAS;gBACrC,IAAA,wBAAgB,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,UAAU,CACnB,CAAC,CACP,CAAA;QAED,SAAS,CAAC,QAAQ,CAAC;YACjB,YAAY,EAAE,IAAA,gBAAO,EAAC,YAAY,CAAC;YACnC,UAAU,EAAE,IAAA,gBAAO,EAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,UAAU,EAAE,IAAA,gBAAO,EAAC,OAAO,CAAC,UAAU,CAAC;YACvC,WAAW,EAAE,IAAA,gBAAO,EAClB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,IAAI,EAAE,CAAC,CAC5D;YAED,iBAAiB,EAAE,IAAA,gBAAO,EAAC,IAAA,4BAAgB,EAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE;YACtE,WAAW,EAAE,IAAA,gBAAO,EAAC,uBAAW,CAAC,CAAC,SAAS,EAAE;YAE7C,cAAc,EAAE,IAAA,gBAAO,EAAC,8BAAc,CAAC,CAAC,SAAS,EAAE;YACnD,cAAc,EAAE,IAAA,gBAAO,EAAC,IAAA,iCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE;YAC9D,UAAU,EAAE,IAAA,gBAAO,EAAC,UAAU,CAAC;YAC/B,WAAW,EAAE,IAAA,gBAAO,EAAC,WAAW,CAAC;SAClC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { JoinerRelationship, ModuleJoinerConfig, ModuleLoaderFunction } from "@acmekit/framework/types";
2
+ export declare function getLoaders({ joinerConfig, primary, foreign, }: {
3
+ joinerConfig: ModuleJoinerConfig;
4
+ primary: JoinerRelationship;
5
+ foreign: JoinerRelationship;
6
+ }): ModuleLoaderFunction[];
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AAMjC,wBAAgB,UAAU,CAAC,EACzB,YAAY,EACZ,OAAO,EACP,OAAO,GACR,EAAE;IACD,YAAY,EAAE,kBAAkB,CAAA;IAChC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,OAAO,EAAE,kBAAkB,CAAA;CAC5B,GAAG,oBAAoB,EAAE,CAOzB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLoaders = getLoaders;
4
+ const utils_1 = require("../utils");
5
+ const connection_1 = require("./connection");
6
+ const container_1 = require("./container");
7
+ function getLoaders({ joinerConfig, primary, foreign, }) {
8
+ if (joinerConfig.isReadOnlyLink) {
9
+ return [];
10
+ }
11
+ const entity = (0, utils_1.generateEntity)(joinerConfig, primary, foreign);
12
+ return [(0, connection_1.connectionLoader)(entity), (0, container_1.containerLoader)(entity, joinerConfig)];
13
+ }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":";;AAUA,gCAeC;AAnBD,oCAAyC;AACzC,6CAA+C;AAC/C,2CAA6C;AAE7C,SAAgB,UAAU,CAAC,EACzB,YAAY,EACZ,OAAO,EACP,OAAO,GAKR;IACC,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAChC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7D,OAAO,CAAC,IAAA,6BAAgB,EAAC,MAAM,CAAC,EAAE,IAAA,2BAAe,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;AAC1E,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { ILinkMigrationsPlanner, LinkMigrationsPlannerAction, ModuleJoinerConfig, ModuleServiceInitializeOptions, PlannerActionLinkDescriptor } from "@acmekit/framework/types";
2
+ import { EntitySchema, MikroORM } from "@acmekit/framework/mikro-orm/core";
3
+ import { PostgreSqlDriver } from "@acmekit/framework/mikro-orm/postgresql";
4
+ /**
5
+ * The migrations execution planner creates a plan of SQL queries
6
+ * to be executed to keep link modules database state in sync
7
+ * with the links defined inside the user application.
8
+ */
9
+ export declare class MigrationsExecutionPlanner implements ILinkMigrationsPlanner {
10
+ #private;
11
+ /**
12
+ * The table that keeps a track of tables generated by the link
13
+ * module.
14
+ */
15
+ protected tableName: string;
16
+ constructor(joinerConfig: ModuleJoinerConfig[], options?: ModuleServiceInitializeOptions);
17
+ /**
18
+ * Initializes the ORM using the normalized dbConfig and set
19
+ * of provided entities
20
+ */
21
+ protected createORM(entities?: EntitySchema[]): Promise<MikroORM<PostgreSqlDriver, import("@acmekit/framework/mikro-orm/postgresql").EntityManager<PostgreSqlDriver> & import("@acmekit/framework/mikro-orm/core").EntityManager<import("@acmekit/framework/mikro-orm/core").IDatabaseDriver<import("@acmekit/framework/mikro-orm/core").Connection>>>>;
22
+ /**
23
+ * Ensure the table to track link modules migrations
24
+ * exists.
25
+ *
26
+ * @param orm MikroORM
27
+ */
28
+ protected ensureMigrationsTable(orm: MikroORM<PostgreSqlDriver>): Promise<void>;
29
+ /**
30
+ * Ensure the migrations table is in sync
31
+ *
32
+ * @param orm
33
+ * @protected
34
+ */
35
+ protected ensureMigrationsTableUpToDate(orm: MikroORM<PostgreSqlDriver>): Promise<void>;
36
+ /**
37
+ * Insert tuple to the migrations table and create the link table
38
+ *
39
+ * @param orm
40
+ * @param action
41
+ * @protected
42
+ */
43
+ protected createLinkTable(orm: MikroORM<PostgreSqlDriver>, action: LinkMigrationsPlannerAction & {
44
+ linkDescriptor: PlannerActionLinkDescriptor;
45
+ sql: string;
46
+ }): Promise<void>;
47
+ /**
48
+ * Drops the link table and untracks it from the "link_modules_migrations"
49
+ * table.
50
+ */
51
+ protected dropLinkTable(orm: MikroORM<PostgreSqlDriver>, tableName: string): Promise<void>;
52
+ /**
53
+ * Returns an array of table names that have been tracked during
54
+ * the last run. In short, these tables were created by the
55
+ * link modules migrations runner.
56
+ *
57
+ * @param orm MikroORM
58
+ */
59
+ protected getTrackedLinksTables(orm: MikroORM<PostgreSqlDriver>): Promise<{
60
+ table_name: string;
61
+ link_descriptor: PlannerActionLinkDescriptor;
62
+ }[]>;
63
+ private pickTableRelatedCommands;
64
+ /**
65
+ * Returns the migration plan for a specific link entity.
66
+ */
67
+ protected getEntityMigrationPlan(linkDescriptor: PlannerActionLinkDescriptor, entity: EntitySchema, trackedLinksTables: string[]): Promise<LinkMigrationsPlannerAction>;
68
+ /**
69
+ * This method loops over the tables we have fetched from the
70
+ * "link_module_migrations" tables and checks if their new
71
+ * name is different from the tracked name and in that
72
+ * case it will rename the actual table and also the
73
+ * tracked entry.
74
+ */
75
+ protected migrateOldTables(orm: MikroORM<PostgreSqlDriver>, trackedTables: {
76
+ table_name: string;
77
+ link_descriptor: PlannerActionLinkDescriptor;
78
+ }[]): Promise<{
79
+ table_name: string;
80
+ link_descriptor: PlannerActionLinkDescriptor;
81
+ }[]>;
82
+ /**
83
+ * Renames existing table and also its tracked entry
84
+ */
85
+ protected renameOldTable(orm: MikroORM<PostgreSqlDriver>, oldName: string, newName: string, descriptor: PlannerActionLinkDescriptor): Promise<void>;
86
+ /**
87
+ * Creates a plan to executed in order to keep the database state in
88
+ * sync with the user-defined links.
89
+ *
90
+ * This method only creates a plan and does not change the database
91
+ * state. You must call the "executePlan" method for that.
92
+ */
93
+ createPlan(): Promise<LinkMigrationsPlannerAction[]>;
94
+ /**
95
+ * Executes the actionsPlan actions where the action is one of 'create' | 'update' | 'delete'.
96
+ * 'noop' and 'notify' actions are implicitly ignored. If a notify action needs to be
97
+ * executed, you can mutate its action to 'update', in that scenario it means that an unsafe
98
+ * update sql (from our point of view) will be executed and some data could be lost.
99
+ *
100
+ * @param actionPlan
101
+ */
102
+ executePlan(actionPlan: LinkMigrationsPlannerAction[]): Promise<void>;
103
+ }
104
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC5B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAEL,gBAAgB,EACjB,MAAM,yCAAyC,CAAA;AAUhD;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,sBAAsB;;IAsBvE;;;OAGG;IACH,SAAS,CAAC,SAAS,SAA2B;gBAG5C,YAAY,EAAE,kBAAkB,EAAE,EAClC,OAAO,CAAC,EAAE,8BAA8B;IA0B1C;;;OAGG;cACa,SAAS,CAAC,QAAQ,GAAE,YAAY,EAAO;IAIvD;;;;;OAKG;cACa,qBAAqB,CACnC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAWhB;;;;;OAKG;cACa,6BAA6B,CAC3C,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAuDjC;;;;;;OAMG;cACa,eAAe,CAC7B,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC/B,MAAM,EAAE,2BAA2B,GAAG;QACpC,cAAc,EAAE,2BAA2B,CAAA;QAC3C,GAAG,EAAE,MAAM,CAAA;KACZ;IAqBH;;;OAGG;cACa,aAAa,CAC3B,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC/B,SAAS,EAAE,MAAM;IAUnB;;;;;;OAMG;cACa,qBAAqB,CACnC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAC9B,OAAO,CACR;QACE,UAAU,EAAE,MAAM,CAAA;QAClB,eAAe,EAAE,2BAA2B,CAAA;KAC7C,EAAE,CACJ;IAkBD,OAAO,CAAC,wBAAwB;IAsBhC;;OAEG;cACa,sBAAsB,CACpC,cAAc,EAAE,2BAA2B,EAC3C,MAAM,EAAE,YAAY,EACpB,kBAAkB,EAAE,MAAM,EAAE,GAC3B,OAAO,CAAC,2BAA2B,CAAC;IA6EvC;;;;;;OAMG;cACa,gBAAgB,CAC9B,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC/B,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAA;QAClB,eAAe,EAAE,2BAA2B,CAAA;KAC7C,EAAE;oBAGW,MAAM;yBACD,2BAA2B;;IA0ChD;;OAEG;cACa,cAAc,CAC5B,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,2BAA2B;IAczC;;;;;;OAMG;IACG,UAAU;IA2DhB;;;;;;;OAOG;IACG,WAAW,CAAC,UAAU,EAAE,2BAA2B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA6B5E"}