@pangza/orm 0.0.0-stage → 1.0.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 (142) hide show
  1. package/README.md +2 -2
  2. package/dist/BaseMapper.d.ts +112 -0
  3. package/dist/BaseMapper.d.ts.map +1 -0
  4. package/dist/BaseMapper.js +653 -0
  5. package/dist/BaseMapper.js.map +1 -0
  6. package/dist/DataSource.d.ts +61 -0
  7. package/dist/DataSource.d.ts.map +1 -0
  8. package/dist/DataSource.js +350 -0
  9. package/dist/DataSource.js.map +1 -0
  10. package/dist/Db.d.ts +67 -0
  11. package/dist/Db.d.ts.map +1 -0
  12. package/dist/Db.js +222 -0
  13. package/dist/Db.js.map +1 -0
  14. package/dist/IdType.d.ts +22 -0
  15. package/dist/IdType.d.ts.map +1 -0
  16. package/dist/IdType.js +34 -0
  17. package/dist/IdType.js.map +1 -0
  18. package/dist/QueryWrapper.d.ts +110 -0
  19. package/dist/QueryWrapper.d.ts.map +1 -0
  20. package/dist/QueryWrapper.js +343 -0
  21. package/dist/QueryWrapper.js.map +1 -0
  22. package/dist/config.d.ts +12 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js +80 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/dialect.d.ts +41 -0
  27. package/dist/dialect.d.ts.map +1 -0
  28. package/dist/dialect.js +171 -0
  29. package/dist/dialect.js.map +1 -0
  30. package/dist/enable.d.ts +12 -0
  31. package/dist/enable.d.ts.map +1 -0
  32. package/dist/enable.js +31 -0
  33. package/dist/enable.js.map +1 -0
  34. package/dist/entityDecorators.d.ts +77 -0
  35. package/dist/entityDecorators.d.ts.map +1 -0
  36. package/dist/entityDecorators.js +150 -0
  37. package/dist/entityDecorators.js.map +1 -0
  38. package/dist/errors.d.ts +11 -0
  39. package/dist/errors.d.ts.map +1 -0
  40. package/dist/errors.js +22 -0
  41. package/dist/errors.js.map +1 -0
  42. package/dist/fieldSelect.d.ts +49 -0
  43. package/dist/fieldSelect.d.ts.map +1 -0
  44. package/dist/fieldSelect.js +53 -0
  45. package/dist/fieldSelect.js.map +1 -0
  46. package/dist/fill.d.ts +8 -0
  47. package/dist/fill.d.ts.map +1 -0
  48. package/dist/fill.js +47 -0
  49. package/dist/fill.js.map +1 -0
  50. package/dist/flag.d.ts +2 -0
  51. package/dist/flag.d.ts.map +1 -0
  52. package/dist/flag.js +8 -0
  53. package/dist/flag.js.map +1 -0
  54. package/dist/hydrate.d.ts +38 -0
  55. package/dist/hydrate.d.ts.map +1 -0
  56. package/dist/hydrate.js +325 -0
  57. package/dist/hydrate.js.map +1 -0
  58. package/dist/identifier.d.ts +14 -0
  59. package/dist/identifier.d.ts.map +1 -0
  60. package/dist/identifier.js +51 -0
  61. package/dist/identifier.js.map +1 -0
  62. package/dist/index.d.ts +41 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +122 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/relation.d.ts +72 -0
  67. package/dist/relation.d.ts.map +1 -0
  68. package/dist/relation.js +150 -0
  69. package/dist/relation.js.map +1 -0
  70. package/dist/resultMap.d.ts +7 -0
  71. package/dist/resultMap.d.ts.map +1 -0
  72. package/dist/resultMap.js +25 -0
  73. package/dist/resultMap.js.map +1 -0
  74. package/dist/security.d.ts +16 -0
  75. package/dist/security.d.ts.map +1 -0
  76. package/dist/security.js +50 -0
  77. package/dist/security.js.map +1 -0
  78. package/dist/sqlDecorators.d.ts +60 -0
  79. package/dist/sqlDecorators.d.ts.map +1 -0
  80. package/dist/sqlDecorators.js +147 -0
  81. package/dist/sqlDecorators.js.map +1 -0
  82. package/dist/sqlLog.d.ts +30 -0
  83. package/dist/sqlLog.d.ts.map +1 -0
  84. package/dist/sqlLog.js +183 -0
  85. package/dist/sqlLog.js.map +1 -0
  86. package/dist/sqlTemplate.d.ts +38 -0
  87. package/dist/sqlTemplate.d.ts.map +1 -0
  88. package/dist/sqlTemplate.js +112 -0
  89. package/dist/sqlTemplate.js.map +1 -0
  90. package/dist/table.d.ts +17 -0
  91. package/dist/table.d.ts.map +1 -0
  92. package/dist/table.js +55 -0
  93. package/dist/table.js.map +1 -0
  94. package/dist/tableSearch.d.ts +72 -0
  95. package/dist/tableSearch.d.ts.map +1 -0
  96. package/dist/tableSearch.js +232 -0
  97. package/dist/tableSearch.js.map +1 -0
  98. package/dist/transactional.d.ts +27 -0
  99. package/dist/transactional.d.ts.map +1 -0
  100. package/dist/transactional.js +57 -0
  101. package/dist/transactional.js.map +1 -0
  102. package/dist/types.d.ts +155 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +3 -0
  105. package/dist/types.js.map +1 -0
  106. package/dist/xml/MapperXml.d.ts +24 -0
  107. package/dist/xml/MapperXml.d.ts.map +1 -0
  108. package/dist/xml/MapperXml.js +92 -0
  109. package/dist/xml/MapperXml.js.map +1 -0
  110. package/dist/xml/execute.d.ts +12 -0
  111. package/dist/xml/execute.d.ts.map +1 -0
  112. package/dist/xml/execute.js +54 -0
  113. package/dist/xml/execute.js.map +1 -0
  114. package/dist/xml/index.d.ts +11 -0
  115. package/dist/xml/index.d.ts.map +1 -0
  116. package/dist/xml/index.js +29 -0
  117. package/dist/xml/index.js.map +1 -0
  118. package/dist/xml/loadMappers.d.ts +14 -0
  119. package/dist/xml/loadMappers.d.ts.map +1 -0
  120. package/dist/xml/loadMappers.js +171 -0
  121. package/dist/xml/loadMappers.js.map +1 -0
  122. package/dist/xml/parseMapperXml.d.ts +6 -0
  123. package/dist/xml/parseMapperXml.d.ts.map +1 -0
  124. package/dist/xml/parseMapperXml.js +225 -0
  125. package/dist/xml/parseMapperXml.js.map +1 -0
  126. package/dist/xml/registry.d.ts +15 -0
  127. package/dist/xml/registry.d.ts.map +1 -0
  128. package/dist/xml/registry.js +57 -0
  129. package/dist/xml/registry.js.map +1 -0
  130. package/dist/xml/renderSql.d.ts +6 -0
  131. package/dist/xml/renderSql.d.ts.map +1 -0
  132. package/dist/xml/renderSql.js +187 -0
  133. package/dist/xml/renderSql.js.map +1 -0
  134. package/dist/xml/types.d.ts +52 -0
  135. package/dist/xml/types.d.ts.map +1 -0
  136. package/dist/xml/types.js +3 -0
  137. package/dist/xml/types.js.map +1 -0
  138. package/dist/xml/xmlMapper.d.ts +16 -0
  139. package/dist/xml/xmlMapper.d.ts.map +1 -0
  140. package/dist/xml/xmlMapper.js +49 -0
  141. package/dist/xml/xmlMapper.js.map +1 -0
  142. package/package.json +35 -4
package/dist/fill.js ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOrmConfig = void 0;
4
+ exports.applyInsertFill = applyInsertFill;
5
+ exports.applyUpdateFill = applyUpdateFill;
6
+ const AuthUtil_1 = require("@pangza/auth/AuthUtil");
7
+ const config_1 = require("./config");
8
+ Object.defineProperty(exports, "getOrmConfig", { enumerable: true, get: function () { return config_1.getOrmConfig; } });
9
+ function now() {
10
+ return new Date();
11
+ }
12
+ function assignIfAbsent(entity, field, value) {
13
+ if (!field || value === undefined || value === null)
14
+ return;
15
+ if (entity[field] === undefined) {
16
+ entity[field] = value;
17
+ }
18
+ }
19
+ async function currentUser() {
20
+ try {
21
+ return await AuthUtil_1.AuthUtil.getLoginIdDefaultNull();
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ /** 插入前默认填充 + 用户拦截 */
28
+ async function applyInsertFill(entity, cfg, fillEnabled) {
29
+ if (fillEnabled) {
30
+ const user = await currentUser();
31
+ assignIfAbsent(entity, cfg.fillCreateTime, now());
32
+ assignIfAbsent(entity, cfg.fillUpdateTime, now());
33
+ assignIfAbsent(entity, cfg.fillCreateBy, user);
34
+ assignIfAbsent(entity, cfg.fillUpdateBy, user);
35
+ }
36
+ await (0, config_1.getMetaObjectHandler)()?.insert?.(entity);
37
+ }
38
+ /** 更新 / 逻辑删除前默认填充 + 用户拦截 */
39
+ async function applyUpdateFill(entity, cfg, fillEnabled) {
40
+ if (fillEnabled) {
41
+ const user = await currentUser();
42
+ assignIfAbsent(entity, cfg.fillUpdateTime, now());
43
+ assignIfAbsent(entity, cfg.fillUpdateBy, user);
44
+ }
45
+ await (0, config_1.getMetaObjectHandler)()?.update?.(entity);
46
+ }
47
+ //# sourceMappingURL=fill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill.js","sourceRoot":"","sources":["../src/fill.ts"],"names":[],"mappings":";;;AA4BA,0CAaC;AAGD,0CAWC;AAvDD,oDAAiD;AACjD,qCAA8D;AAwDrD,6FAxDsB,qBAAY,OAwDtB;AArDrB,SAAS,GAAG;IACV,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CACrB,MAA2B,EAC3B,KAAyB,EACzB,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC5D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC;QACH,OAAO,MAAM,mBAAQ,CAAC,qBAAqB,EAAE,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qBAAqB;AACd,KAAK,UAAU,eAAe,CACnC,MAA2B,EAC3B,GAAsB,EACtB,WAAoB;IAEpB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;QACjC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,IAAA,6BAAoB,GAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,4BAA4B;AACrB,KAAK,UAAU,eAAe,CACnC,MAA2B,EAC3B,GAAsB,EACtB,WAAoB;IAEpB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;QACjC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,IAAA,6BAAoB,GAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
package/dist/flag.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { ORM_MODULE_FLAG, markOrmEnabled, isOrmEnabled, } from "@pangza/core/moduleFlags";
2
+ //# sourceMappingURL=flag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flag.d.ts","sourceRoot":"","sources":["../src/flag.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,0BAA0B,CAAC"}
package/dist/flag.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isOrmEnabled = exports.markOrmEnabled = exports.ORM_MODULE_FLAG = void 0;
4
+ var moduleFlags_1 = require("@pangza/core/moduleFlags");
5
+ Object.defineProperty(exports, "ORM_MODULE_FLAG", { enumerable: true, get: function () { return moduleFlags_1.ORM_MODULE_FLAG; } });
6
+ Object.defineProperty(exports, "markOrmEnabled", { enumerable: true, get: function () { return moduleFlags_1.markOrmEnabled; } });
7
+ Object.defineProperty(exports, "isOrmEnabled", { enumerable: true, get: function () { return moduleFlags_1.isOrmEnabled; } });
8
+ //# sourceMappingURL=flag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flag.js","sourceRoot":"","sources":["../src/flag.ts"],"names":[],"mappings":";;;AAAA,wDAIkC;AAHhC,8GAAA,eAAe,OAAA;AACf,6GAAA,cAAc,OAAA;AACd,2GAAA,YAAY,OAAA"}
@@ -0,0 +1,38 @@
1
+ export interface HydrateFieldSelectOptions {
2
+ /** 额外递归层数上限 */
3
+ maxDepth?: number;
4
+ /** 包含 eager:false 的字段(默认只填 eager) */
5
+ includeLazy?: boolean;
6
+ /** 只填充指定属性 */
7
+ properties?: string[];
8
+ /** 默认数据源(字段 @Select 未指定 datasource/db 时使用) */
9
+ datasource?: string;
10
+ /**
11
+ * 关联填充控制(声明式 @ManyToOne 等):
12
+ * - 省略:仅 eager
13
+ * - false:不填关联(字段 @Select 仍按其余选项)
14
+ * - string[]:只填这些关联属性(含 lazy)
15
+ */
16
+ relations?: boolean | string[];
17
+ }
18
+ export type HydrateRelationsOptions = HydrateFieldSelectOptions;
19
+ /**
20
+ * 把父行做成 SQL 参数上下文:同时提供属性名 / 列名 / camel / snake,
21
+ * 便于 #{id}、#{parentId}、#{parent_id} 都能取到值。
22
+ */
23
+ export declare function buildRowParamContext(row: Record<string, unknown>, entity?: Function): Record<string, unknown>;
24
+ /**
25
+ * 按实体上的字段 @Select 与声明式关联填充(原地修改 rows)。
26
+ * `列 = #{父字段}` 且无子查询 / LIMIT 时合并成一条 IN,避免列表 N+1。
27
+ *
28
+ * @example
29
+ * await hydrateFieldSelects(MenuEntity, rows);
30
+ * await hydrateFieldSelects(MenuEntity, rows, { includeLazy: true, properties: ['children'] });
31
+ */
32
+ export declare function hydrateFieldSelects<T extends Record<string, any>>(entity: Function | undefined, rows: T[], options?: HydrateFieldSelectOptions | number): Promise<T[]>;
33
+ /**
34
+ * 显式按关联名水合(含 lazy)。等价于
35
+ * `hydrateFieldSelects(entity, rows, { relations: names, includeLazy: true })`。
36
+ */
37
+ export declare function hydrateRelations<T extends Record<string, any>>(entity: Function | undefined, rows: T[], options?: HydrateRelationsOptions): Promise<T[]>;
38
+ //# sourceMappingURL=hydrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,yBAAyB;IACxC,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAUhE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,MAAM,CAAC,EAAE,QAAQ,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAmTD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrE,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,GAAE,yBAAyB,GAAG,MAAW,GAC/C,OAAO,CAAC,CAAC,EAAE,CAAC,CAoCd;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClE,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,CAAC,EAAE,CAAC,CAad"}
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildRowParamContext = buildRowParamContext;
7
+ exports.hydrateFieldSelects = hydrateFieldSelects;
8
+ exports.hydrateRelations = hydrateRelations;
9
+ const Db_1 = __importDefault(require("./Db"));
10
+ const entityDecorators_1 = require("./entityDecorators");
11
+ const fieldSelect_1 = require("./fieldSelect");
12
+ const resultMap_1 = require("./resultMap");
13
+ const relation_1 = require("./relation");
14
+ const sqlTemplate_1 = require("./sqlTemplate");
15
+ function snakeToCamel(key) {
16
+ return key.replace(/_([a-z])/g, (_, c) => c.toUpperCase());
17
+ }
18
+ function camelToSnake(key) {
19
+ return key.replace(/[A-Z]/g, (c) => `_${c.toLowerCase()}`);
20
+ }
21
+ /**
22
+ * 把父行做成 SQL 参数上下文:同时提供属性名 / 列名 / camel / snake,
23
+ * 便于 #{id}、#{parentId}、#{parent_id} 都能取到值。
24
+ */
25
+ function buildRowParamContext(row, entity) {
26
+ const ctx = { ...row };
27
+ for (const [k, v] of Object.entries(row)) {
28
+ ctx[snakeToCamel(k)] = v;
29
+ ctx[camelToSnake(k)] = v;
30
+ }
31
+ if (entity) {
32
+ for (const f of (0, entityDecorators_1.getEntityFields)(entity)) {
33
+ const val = row[f.property] !== undefined ? row[f.property] : row[f.column];
34
+ if (val !== undefined) {
35
+ ctx[f.property] = val;
36
+ ctx[f.column] = val;
37
+ }
38
+ }
39
+ }
40
+ return ctx;
41
+ }
42
+ function pickColumn(rows, column) {
43
+ return rows.map((r) => {
44
+ if (Object.prototype.hasOwnProperty.call(r, column))
45
+ return r[column];
46
+ const camel = snakeToCamel(column);
47
+ if (Object.prototype.hasOwnProperty.call(r, camel))
48
+ return r[camel];
49
+ const snake = camelToSnake(column);
50
+ if (Object.prototype.hasOwnProperty.call(r, snake))
51
+ return r[snake];
52
+ const values = Object.values(r);
53
+ return values.length === 1 ? values[0] : undefined;
54
+ });
55
+ }
56
+ function selectListIncludes(sql, column) {
57
+ const matched = sql.match(/\bselect\s+([\s\S]+?)\s+from\b/i);
58
+ if (!matched)
59
+ return false;
60
+ const raw = matched[1].trim();
61
+ if (raw === "*" || /(^|,)\s*\*/.test(raw))
62
+ return true;
63
+ const wanted = new Set([
64
+ column.toLowerCase(),
65
+ snakeToCamel(column).toLowerCase(),
66
+ camelToSnake(column).toLowerCase(),
67
+ ]);
68
+ return raw.split(",").some((part) => {
69
+ const piece = part.trim().split(/\s+/).pop() ?? "";
70
+ const name = piece.replace(/[`"]/g, "").split(".").pop().toLowerCase();
71
+ return wanted.has(name);
72
+ });
73
+ }
74
+ /**
75
+ * 仅当 SQL 是单条 SELECT、恰好一处 `列 = #{参数}`、且结果里带该列时,
76
+ * 才能改写成 IN 后按父键分组。子查询 / LIMIT 会改变语义,不合并。
77
+ */
78
+ function tryBatchPlan(sql) {
79
+ const template = sql.trim();
80
+ if (template.includes("${"))
81
+ return null;
82
+ if ((template.match(/\bselect\b/gi) || []).length !== 1)
83
+ return null;
84
+ if (/\blimit\b/i.test(template))
85
+ return null;
86
+ const hashes = [...template.matchAll(/#\{([^}]+)\}/g)];
87
+ if (hashes.length !== 1)
88
+ return null;
89
+ const param = hashes[0][1].split(",")[0].trim();
90
+ if (!/^[A-Za-z_][\w]*$/.test(param))
91
+ return null;
92
+ const eq = new RegExp(`(?:[A-Za-z_][\\w]*\\.)?([A-Za-z_][\\w]*)\\s*=\\s*#\\{\\s*${param}\\s*(?:,[^}]*)?\\}`, "i");
93
+ const found = eq.exec(template);
94
+ if (!found)
95
+ return null;
96
+ const column = found[1];
97
+ if (!selectListIncludes(template, column))
98
+ return null;
99
+ const ident = found[0].split("=")[0].trim();
100
+ return {
101
+ column,
102
+ param,
103
+ template: template.replace(eq, `${ident} IN (__IN__)`),
104
+ };
105
+ }
106
+ function readFk(row, column) {
107
+ if (Object.prototype.hasOwnProperty.call(row, column))
108
+ return row[column];
109
+ const camel = snakeToCamel(column);
110
+ if (Object.prototype.hasOwnProperty.call(row, camel))
111
+ return row[camel];
112
+ const snake = camelToSnake(column);
113
+ if (Object.prototype.hasOwnProperty.call(row, snake))
114
+ return row[snake];
115
+ return undefined;
116
+ }
117
+ function childObjects(mapped) {
118
+ const list = Array.isArray(mapped)
119
+ ? mapped
120
+ : mapped && typeof mapped === "object"
121
+ ? [mapped]
122
+ : [];
123
+ return list.filter((row) => !!row && typeof row === "object" && !Array.isArray(row));
124
+ }
125
+ function resolveHydrateDatasource(meta, options) {
126
+ if (meta.datasource?.trim())
127
+ return meta.datasource.trim();
128
+ if (meta.db)
129
+ return Db_1.default.findByType(meta.db);
130
+ return (options?.datasource ?? "default").trim() || "default";
131
+ }
132
+ async function queryIn(template, ids, datasource) {
133
+ const all = [];
134
+ const size = 500;
135
+ for (let i = 0; i < ids.length; i += size) {
136
+ const chunk = ids.slice(i, i + size);
137
+ const sql = template.replace("__IN__", chunk.map(() => "?").join(", "));
138
+ const result = (await Db_1.default.queryOn(datasource, sql, chunk));
139
+ all.push(...(0, resultMap_1.mapResultRows)(result));
140
+ }
141
+ return all;
142
+ }
143
+ function mapSelectResult(rows, meta) {
144
+ if (meta.column) {
145
+ const values = pickColumn(rows, meta.column);
146
+ return meta.many ? values : (values[0] ?? null);
147
+ }
148
+ if (meta.many)
149
+ return rows;
150
+ return rows[0] ?? null;
151
+ }
152
+ function filterMetas(metas, options) {
153
+ let list = metas;
154
+ if (!options?.includeLazy) {
155
+ list = list.filter((m) => m.eager);
156
+ }
157
+ if (options?.properties?.length) {
158
+ const allow = new Set(options.properties);
159
+ list = list.filter((m) => allow.has(m.property));
160
+ }
161
+ return list;
162
+ }
163
+ async function hydrateOne(row, entity, metas, remainingDepth, options) {
164
+ if (!metas.length)
165
+ return;
166
+ const ctx = buildRowParamContext(row, entity);
167
+ await Promise.all(metas.map(async (meta) => {
168
+ try {
169
+ const parsed = (0, sqlTemplate_1.parseMybatisSql)(meta.sql, ctx);
170
+ const ds = resolveHydrateDatasource(meta, options);
171
+ const result = (await Db_1.default.queryOn(ds, parsed.sql, parsed.params));
172
+ const rows = (0, resultMap_1.mapResultRows)(result);
173
+ const mapped = mapSelectResult(rows, meta);
174
+ row[meta.property] = mapped;
175
+ const childDepth = Math.min(meta.depth, remainingDepth);
176
+ if (childDepth > 0 && mapped) {
177
+ const childRows = Array.isArray(mapped)
178
+ ? mapped
179
+ : typeof mapped === "object"
180
+ ? [mapped]
181
+ : [];
182
+ const objectRows = childRows.filter((r) => !!r && typeof r === "object" && !Array.isArray(r));
183
+ if (objectRows.length) {
184
+ await hydrateFieldSelects(entity, objectRows, {
185
+ ...options,
186
+ maxDepth: childDepth - 1,
187
+ includeLazy: true,
188
+ });
189
+ }
190
+ }
191
+ }
192
+ catch (err) {
193
+ const msg = err instanceof Error ? err.message : String(err);
194
+ throw new Error(`[FieldSelect] ${entity.name || "Entity"}.${meta.property} 填充失败: ${msg}`);
195
+ }
196
+ }));
197
+ }
198
+ async function hydrateBatch(rows, entity, meta, plan, remainingDepth, options) {
199
+ const keyOf = (value) => value === undefined || value === null ? undefined : String(value);
200
+ const ids = [];
201
+ const seen = new Set();
202
+ for (const row of rows) {
203
+ const id = readFk(row, plan.param);
204
+ const key = keyOf(id);
205
+ if (key === undefined || seen.has(key))
206
+ continue;
207
+ seen.add(key);
208
+ ids.push(id);
209
+ }
210
+ const groups = new Map();
211
+ if (ids.length) {
212
+ let queried;
213
+ try {
214
+ queried = await queryIn(plan.template, ids, resolveHydrateDatasource(meta, options));
215
+ }
216
+ catch (err) {
217
+ const msg = err instanceof Error ? err.message : String(err);
218
+ throw new Error(`[FieldSelect] ${entity.name || "Entity"}.${meta.property} 批量填充失败: ${msg}`);
219
+ }
220
+ for (const child of queried) {
221
+ const key = keyOf(readFk(child, plan.column));
222
+ if (key === undefined)
223
+ continue;
224
+ const bucket = groups.get(key);
225
+ if (bucket)
226
+ bucket.push(child);
227
+ else
228
+ groups.set(key, [child]);
229
+ }
230
+ }
231
+ const nested = [];
232
+ const childDepth = Math.min(meta.depth, remainingDepth);
233
+ for (const row of rows) {
234
+ const key = keyOf(readFk(row, plan.param));
235
+ const matched = key === undefined ? [] : (groups.get(key) ?? []);
236
+ const mapped = mapSelectResult(matched, meta);
237
+ row[meta.property] = mapped;
238
+ if (childDepth > 0)
239
+ nested.push(...childObjects(mapped));
240
+ }
241
+ if (nested.length) {
242
+ await hydrateFieldSelects(entity, nested, {
243
+ ...options,
244
+ maxDepth: childDepth - 1,
245
+ includeLazy: true,
246
+ });
247
+ }
248
+ }
249
+ function collectMetas(entity, opts) {
250
+ const fieldMetas = filterMetas((0, fieldSelect_1.getFieldSelects)(entity), opts);
251
+ if (opts.relations === false) {
252
+ return fieldMetas;
253
+ }
254
+ let rels = (0, relation_1.getRelations)(entity);
255
+ if (Array.isArray(opts.relations)) {
256
+ const allow = new Set(opts.relations);
257
+ rels = rels.filter((r) => allow.has(r.property));
258
+ }
259
+ else if (!opts.includeLazy) {
260
+ rels = rels.filter((r) => r.eager);
261
+ }
262
+ const dialect = Db_1.default.getDialect((opts.datasource ?? "default").trim() || "default");
263
+ const relMetas = rels.map((r) => (0, relation_1.relationToFieldSelect)(entity, r, dialect));
264
+ // 指定 properties 时字段 @Select 已过滤;关联若用 relations: string[] 已过滤
265
+ if (opts.properties?.length && !Array.isArray(opts.relations)) {
266
+ const allow = new Set(opts.properties);
267
+ return [
268
+ ...fieldMetas,
269
+ ...filterMetas(relMetas, { ...opts, properties: [...allow] }),
270
+ ];
271
+ }
272
+ return [...fieldMetas, ...relMetas];
273
+ }
274
+ /**
275
+ * 按实体上的字段 @Select 与声明式关联填充(原地修改 rows)。
276
+ * `列 = #{父字段}` 且无子查询 / LIMIT 时合并成一条 IN,避免列表 N+1。
277
+ *
278
+ * @example
279
+ * await hydrateFieldSelects(MenuEntity, rows);
280
+ * await hydrateFieldSelects(MenuEntity, rows, { includeLazy: true, properties: ['children'] });
281
+ */
282
+ async function hydrateFieldSelects(entity, rows, options = {}) {
283
+ if (!entity || !rows?.length)
284
+ return rows;
285
+ const opts = typeof options === "number" ? { maxDepth: options } : options ?? {};
286
+ const maxDepth = opts.maxDepth ?? 32;
287
+ const metas = collectMetas(entity, opts);
288
+ if (!metas.length)
289
+ return rows;
290
+ const batchJobs = [];
291
+ const rowWise = [];
292
+ for (const meta of metas) {
293
+ const plan = tryBatchPlan(meta.sql);
294
+ if (plan)
295
+ batchJobs.push({ meta, plan });
296
+ else
297
+ rowWise.push(meta);
298
+ }
299
+ await Promise.all([
300
+ ...batchJobs.map((job) => hydrateBatch(rows, entity, job.meta, job.plan, maxDepth, opts)),
301
+ rowWise.length
302
+ ? Promise.all(rows.map((row) => hydrateOne(row, entity, rowWise, maxDepth, opts)))
303
+ : Promise.resolve(),
304
+ ]);
305
+ return rows;
306
+ }
307
+ /**
308
+ * 显式按关联名水合(含 lazy)。等价于
309
+ * `hydrateFieldSelects(entity, rows, { relations: names, includeLazy: true })`。
310
+ */
311
+ async function hydrateRelations(entity, rows, options = {}) {
312
+ if (!entity)
313
+ return rows;
314
+ const relations = options.relations === false
315
+ ? false
316
+ : Array.isArray(options.relations)
317
+ ? options.relations
318
+ : (0, relation_1.getRelations)(entity).map((r) => r.property);
319
+ return hydrateFieldSelects(entity, rows, {
320
+ ...options,
321
+ relations,
322
+ includeLazy: options.includeLazy ?? true,
323
+ });
324
+ }
325
+ //# sourceMappingURL=hydrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 主键生成器(对齐 MyBatis-Plus IdentifierGenerator)
3
+ */
4
+ export interface IdentifierGenerator {
5
+ /** 雪花 / 分布式 ID(ASSIGN_ID) */
6
+ nextId(entity?: unknown): number | string | Promise<number | string>;
7
+ /** UUID 字符串,默认去横线(ASSIGN_UUID) */
8
+ nextUUID(entity?: unknown): string | Promise<string>;
9
+ }
10
+ export declare const defaultIdentifierGenerator: IdentifierGenerator;
11
+ /** 替换全局主键生成器 */
12
+ export declare function setIdentifierGenerator(next?: IdentifierGenerator): void;
13
+ export declare function getIdentifierGenerator(): IdentifierGenerator;
14
+ //# sourceMappingURL=identifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifier.d.ts","sourceRoot":"","sources":["../src/identifier.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACrE,kCAAkC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;AA8BD,eAAO,MAAM,0BAA0B,EAAE,mBASxC,CAAC;AAIF,gBAAgB;AAChB,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAEvE;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultIdentifierGenerator = void 0;
4
+ exports.setIdentifierGenerator = setIdentifierGenerator;
5
+ exports.getIdentifierGenerator = getIdentifierGenerator;
6
+ const crypto_1 = require("crypto");
7
+ const config_1 = require("@pangza/core/config");
8
+ /** 简易雪花:41bit 时间 + 10bit 机器 + 12bit 序列 */
9
+ class SnowflakeGenerator {
10
+ constructor(workerId = 1) {
11
+ this.epoch = 1704067200000n; // 2024-01-01
12
+ this.seq = 0n;
13
+ this.lastTs = -1n;
14
+ this.workerId = BigInt(workerId & 0x3ff);
15
+ }
16
+ next() {
17
+ let ts = BigInt(Date.now());
18
+ if (ts === this.lastTs) {
19
+ this.seq = (this.seq + 1n) & 0xfffn;
20
+ if (this.seq === 0n) {
21
+ while (ts <= this.lastTs)
22
+ ts = BigInt(Date.now());
23
+ }
24
+ }
25
+ else {
26
+ this.seq = 0n;
27
+ }
28
+ this.lastTs = ts;
29
+ return ((ts - this.epoch) << 22n) | (this.workerId << 12n) | this.seq;
30
+ }
31
+ }
32
+ const snowflake = new SnowflakeGenerator(Number(config_1.ormEnvConfig.workerId) || 1);
33
+ exports.defaultIdentifierGenerator = {
34
+ nextId() {
35
+ // 返回 string,避免 JS 大整数精度丢失;业务需要 number 时可自行 Number()
36
+ return snowflake.next().toString();
37
+ },
38
+ nextUUID() {
39
+ // 32 位无横线 hex(对齐 MyBatis-Plus ASSIGN_UUID)
40
+ return (0, crypto_1.randomBytes)(16).toString("hex");
41
+ },
42
+ };
43
+ let generator = exports.defaultIdentifierGenerator;
44
+ /** 替换全局主键生成器 */
45
+ function setIdentifierGenerator(next) {
46
+ generator = next ?? exports.defaultIdentifierGenerator;
47
+ }
48
+ function getIdentifierGenerator() {
49
+ return generator;
50
+ }
51
+ //# sourceMappingURL=identifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifier.js","sourceRoot":"","sources":["../src/identifier.ts"],"names":[],"mappings":";;;AAuDA,wDAEC;AAED,wDAEC;AA7DD,mCAAqC;AACrC,gDAAmD;AAYnD,0CAA0C;AAC1C,MAAM,kBAAkB;IAMtB,YAAY,QAAQ,GAAG,CAAC;QALP,UAAK,GAAG,cAAc,CAAC,CAAC,aAAa;QAE9C,QAAG,GAAG,EAAE,CAAC;QACT,WAAM,GAAG,CAAC,EAAE,CAAC;QAGnB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI;QACF,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC;YACpC,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;gBACpB,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM;oBAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACxE,CAAC;CACF;AAED,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,qBAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAEhE,QAAA,0BAA0B,GAAwB;IAC7D,MAAM;QACJ,oDAAoD;QACpD,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IACD,QAAQ;QACN,2CAA2C;QAC3C,OAAO,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,IAAI,SAAS,GAAwB,kCAA0B,CAAC;AAEhE,gBAAgB;AAChB,SAAgB,sBAAsB,CAAC,IAA0B;IAC/D,SAAS,GAAG,IAAI,IAAI,kCAA0B,CAAC;AACjD,CAAC;AAED,SAAgB,sBAAsB;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import Db from "./Db";
2
+ export { Db };
3
+ export { EnableOrm } from "./enable";
4
+ export { ORM_MODULE_FLAG, isOrmEnabled, markOrmEnabled } from "./flag";
5
+ export { BaseMapper } from "./BaseMapper";
6
+ export { table, useTable, clearTableCache } from "./table";
7
+ export { QueryWrapper, assertIdent } from "./QueryWrapper";
8
+ export { TableSearch, OperTypeEnum, getTableSearchMeta, getQueryWrapper, getQueryWrapperAndPage, } from "./tableSearch";
9
+ export type { OperType, TableSearchOptions, TableSearchMeta, QueryWrapperAndPage, } from "./tableSearch";
10
+ export { assertSafeUint, escapeLike, assertSafeLastSql, } from "./security";
11
+ export { configureOrm, getOrmConfig, setMetaObjectHandler, getMetaObjectHandler, } from "./config";
12
+ export { configureSqlLog, getSqlLogRuntime, renderSqlLog, detectSqlType, DEFAULT_SQL_LOG_FORMAT, } from "./sqlLog";
13
+ export { OrmError, OptimisticLockError } from "./errors";
14
+ export { Select, Insert, Update, Delete, Param, MAPPER_ENTITY_KEY, } from "./sqlDecorators";
15
+ export type { SqlExecuteOptions, SelectOptions } from "./sqlDecorators";
16
+ export { Transactional } from "./transactional";
17
+ export type { TransactionalOptions } from "./transactional";
18
+ export { registerFieldSelect, getFieldSelects, getFieldSelect, } from "./fieldSelect";
19
+ export type { FieldSelectOptions, FieldSelectMeta } from "./fieldSelect";
20
+ export { hydrateFieldSelects, hydrateRelations, buildRowParamContext, } from "./hydrate";
21
+ export type { HydrateFieldSelectOptions, HydrateRelationsOptions, } from "./hydrate";
22
+ export { ManyToOne, OneToMany, ManyToMany, getRelations, getRelation, relationToFieldSelect, } from "./relation";
23
+ export type { RelationKind, RelationFetch, RelationMeta, ManyToOneOptions, OneToManyOptions, ManyToManyOptions, } from "./relation";
24
+ export { MapperXml, xmlMapper, loadXmlMappers, ensureXmlMappersLoaded, parseMapperXml, renderStatementSql, evalTest, getXmlStatement, bootstrapXmlMappers, watchXmlMappers, } from "./xml";
25
+ export type { XmlMapperApi, MapperXmlOptions } from "./xml";
26
+ export { parseMybatisSql, buildParamContext } from "./sqlTemplate";
27
+ export { TableName, TableId, TableField, getTableName, getEntityFields, getEntityIdField, getEntityTableMeta, applyEntityFieldFills, } from "./entityDecorators";
28
+ export { IdType, resolveIdType } from "./IdType";
29
+ export type { IdTypeValue } from "./IdType";
30
+ export { setIdentifierGenerator, getIdentifierGenerator, defaultIdentifierGenerator, } from "./identifier";
31
+ export type { IdentifierGenerator } from "./identifier";
32
+ export { mapResultRow, mapResultRows } from "./resultMap";
33
+ export { getDialect } from "./dialect";
34
+ export type { DbType, Dialect } from "./dialect";
35
+ export { DataSource } from "./DataSource";
36
+ export type { DataSourceConfig } from "./DataSource";
37
+ export type { MysqlConfig, MapperOptions, MapperTableOptions, PageQuery, IPage, SqlFragment, ResolvedOrmConfig, MetaObjectHandler, SqlLogParts, SqlLogInfo, SqlLogFormatFn, TransactionPropagation, SelectQueryOptions, } from "./types";
38
+ export type { ParsedSql } from "./sqlTemplate";
39
+ export type { FieldFillValue, TableFieldOptions, TableIdOptions, EntityFieldMeta, EntityTableMeta, } from "./entityDecorators";
40
+ export default Db;
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AAEtB,OAAO,EAAE,EAAE,EAAE,CAAC;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,SAAS,EACT,SAAS,EACT,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,SAAS,EACT,OAAO,EACP,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAiB5B,eAAe,EAAE,CAAC"}