@tachybase/database 0.23.8

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 (226) hide show
  1. package/.turbo/turbo-build.log +10 -0
  2. package/LICENSE +201 -0
  3. package/lib/collection-factory.d.ts +17 -0
  4. package/lib/collection-factory.js +52 -0
  5. package/lib/collection-group-manager.d.ts +26 -0
  6. package/lib/collection-group-manager.js +57 -0
  7. package/lib/collection-importer.d.ts +7 -0
  8. package/lib/collection-importer.js +74 -0
  9. package/lib/collection.d.ts +138 -0
  10. package/lib/collection.js +686 -0
  11. package/lib/database-utils/index.d.ts +9 -0
  12. package/lib/database-utils/index.js +71 -0
  13. package/lib/database-utils/traverseJSON.d.ts +10 -0
  14. package/lib/database-utils/traverseJSON.js +126 -0
  15. package/lib/database.d.ts +201 -0
  16. package/lib/database.js +765 -0
  17. package/lib/decorators/must-have-filter-decorator.d.ts +2 -0
  18. package/lib/decorators/must-have-filter-decorator.js +38 -0
  19. package/lib/decorators/target-collection-decorator.d.ts +2 -0
  20. package/lib/decorators/target-collection-decorator.js +47 -0
  21. package/lib/decorators/transaction-decorator.d.ts +1 -0
  22. package/lib/decorators/transaction-decorator.js +88 -0
  23. package/lib/eager-loading/eager-loading-tree.d.ts +31 -0
  24. package/lib/eager-loading/eager-loading-tree.js +439 -0
  25. package/lib/errors/identifier-error.d.ts +3 -0
  26. package/lib/errors/identifier-error.js +35 -0
  27. package/lib/errors/zero-column-table-error.d.ts +2 -0
  28. package/lib/errors/zero-column-table-error.js +31 -0
  29. package/lib/features/references-map.d.ts +18 -0
  30. package/lib/features/references-map.js +109 -0
  31. package/lib/features/referential-integrity-check.d.ts +8 -0
  32. package/lib/features/referential-integrity-check.js +83 -0
  33. package/lib/field-repository/array-field-repository.d.ts +28 -0
  34. package/lib/field-repository/array-field-repository.js +197 -0
  35. package/lib/fields/array-field.d.ts +11 -0
  36. package/lib/fields/array-field.js +57 -0
  37. package/lib/fields/belongs-to-field.d.ts +17 -0
  38. package/lib/fields/belongs-to-field.js +154 -0
  39. package/lib/fields/belongs-to-many-field.d.ts +20 -0
  40. package/lib/fields/belongs-to-many-field.js +187 -0
  41. package/lib/fields/boolean-field.d.ts +8 -0
  42. package/lib/fields/boolean-field.js +36 -0
  43. package/lib/fields/context-field.d.ts +14 -0
  44. package/lib/fields/context-field.js +70 -0
  45. package/lib/fields/date-field.d.ts +13 -0
  46. package/lib/fields/date-field.js +64 -0
  47. package/lib/fields/field.d.ts +43 -0
  48. package/lib/fields/field.js +156 -0
  49. package/lib/fields/has-inverse-field.d.ts +4 -0
  50. package/lib/fields/has-inverse-field.js +15 -0
  51. package/lib/fields/has-many-field.d.ts +68 -0
  52. package/lib/fields/has-many-field.js +156 -0
  53. package/lib/fields/has-one-field.d.ts +68 -0
  54. package/lib/fields/has-one-field.js +150 -0
  55. package/lib/fields/index.d.ts +46 -0
  56. package/lib/fields/index.js +65 -0
  57. package/lib/fields/json-field.d.ts +14 -0
  58. package/lib/fields/json-field.js +54 -0
  59. package/lib/fields/nanoid-field.d.ts +13 -0
  60. package/lib/fields/nanoid-field.js +58 -0
  61. package/lib/fields/number-field.d.ts +41 -0
  62. package/lib/fields/number-field.js +85 -0
  63. package/lib/fields/password-field.d.ts +21 -0
  64. package/lib/fields/password-field.js +95 -0
  65. package/lib/fields/radio-field.d.ts +16 -0
  66. package/lib/fields/radio-field.js +66 -0
  67. package/lib/fields/relation-field.d.ts +21 -0
  68. package/lib/fields/relation-field.js +79 -0
  69. package/lib/fields/set-field.d.ts +10 -0
  70. package/lib/fields/set-field.js +46 -0
  71. package/lib/fields/sort-field.d.ts +16 -0
  72. package/lib/fields/sort-field.js +187 -0
  73. package/lib/fields/string-field.d.ts +8 -0
  74. package/lib/fields/string-field.js +36 -0
  75. package/lib/fields/text-field.d.ts +8 -0
  76. package/lib/fields/text-field.js +36 -0
  77. package/lib/fields/time-field.d.ts +8 -0
  78. package/lib/fields/time-field.js +36 -0
  79. package/lib/fields/uid-field.d.ts +13 -0
  80. package/lib/fields/uid-field.js +63 -0
  81. package/lib/fields/uuid-field.d.ts +9 -0
  82. package/lib/fields/uuid-field.js +45 -0
  83. package/lib/fields/virtual-field.d.ts +8 -0
  84. package/lib/fields/virtual-field.js +36 -0
  85. package/lib/filter-match.d.ts +1 -0
  86. package/lib/filter-match.js +66 -0
  87. package/lib/filter-parser.d.ts +21 -0
  88. package/lib/filter-parser.js +230 -0
  89. package/lib/helpers.d.ts +3 -0
  90. package/lib/helpers.js +167 -0
  91. package/lib/index.d.ts +30 -0
  92. package/lib/index.js +114 -0
  93. package/lib/inherited-collection.d.ts +14 -0
  94. package/lib/inherited-collection.js +138 -0
  95. package/lib/inherited-map.d.ts +21 -0
  96. package/lib/inherited-map.js +113 -0
  97. package/lib/inherited-sync-runner.d.ts +4 -0
  98. package/lib/inherited-sync-runner.js +175 -0
  99. package/lib/listeners/adjacency-list.d.ts +2 -0
  100. package/lib/listeners/adjacency-list.js +42 -0
  101. package/lib/listeners/append-child-collection-name-after-repository-find.d.ts +6 -0
  102. package/lib/listeners/append-child-collection-name-after-repository-find.js +66 -0
  103. package/lib/listeners/index.d.ts +2 -0
  104. package/lib/listeners/index.js +33 -0
  105. package/lib/magic-attribute-model.d.ts +8 -0
  106. package/lib/magic-attribute-model.js +203 -0
  107. package/lib/migration.d.ts +35 -0
  108. package/lib/migration.js +103 -0
  109. package/lib/mock-database.d.ts +25 -0
  110. package/lib/mock-database.js +126 -0
  111. package/lib/model-hook.d.ts +12 -0
  112. package/lib/model-hook.js +92 -0
  113. package/lib/model.d.ts +23 -0
  114. package/lib/model.js +152 -0
  115. package/lib/operators/array.d.ts +2 -0
  116. package/lib/operators/array.js +158 -0
  117. package/lib/operators/association.d.ts +2 -0
  118. package/lib/operators/association.js +35 -0
  119. package/lib/operators/boolean.d.ts +2 -0
  120. package/lib/operators/boolean.js +38 -0
  121. package/lib/operators/child-collection.d.ts +2 -0
  122. package/lib/operators/child-collection.js +67 -0
  123. package/lib/operators/date.d.ts +2 -0
  124. package/lib/operators/date.js +140 -0
  125. package/lib/operators/empty.d.ts +5 -0
  126. package/lib/operators/empty.js +89 -0
  127. package/lib/operators/eq.d.ts +2 -0
  128. package/lib/operators/eq.js +35 -0
  129. package/lib/operators/index.d.ts +5 -0
  130. package/lib/operators/index.js +56 -0
  131. package/lib/operators/jsonb.d.ts +2 -0
  132. package/lib/operators/jsonb.js +50 -0
  133. package/lib/operators/ne.d.ts +2 -0
  134. package/lib/operators/ne.js +40 -0
  135. package/lib/operators/notIn.d.ts +2 -0
  136. package/lib/operators/notIn.js +33 -0
  137. package/lib/operators/string.d.ts +2 -0
  138. package/lib/operators/string.js +109 -0
  139. package/lib/operators/utils.d.ts +4 -0
  140. package/lib/operators/utils.js +40 -0
  141. package/lib/options-parser.d.ts +37 -0
  142. package/lib/options-parser.js +332 -0
  143. package/lib/playground.d.ts +1 -0
  144. package/lib/playground.js +43 -0
  145. package/lib/query-interface/mysql-query-interface.d.ts +35 -0
  146. package/lib/query-interface/mysql-query-interface.js +122 -0
  147. package/lib/query-interface/postgres-query-interface.d.ts +32 -0
  148. package/lib/query-interface/postgres-query-interface.js +189 -0
  149. package/lib/query-interface/query-interface-builder.d.ts +2 -0
  150. package/lib/query-interface/query-interface-builder.js +46 -0
  151. package/lib/query-interface/query-interface.d.ts +42 -0
  152. package/lib/query-interface/query-interface.js +46 -0
  153. package/lib/query-interface/sqlite-query-interface.d.ts +35 -0
  154. package/lib/query-interface/sqlite-query-interface.js +131 -0
  155. package/lib/relation-repository/belongs-to-many-repository.d.ts +21 -0
  156. package/lib/relation-repository/belongs-to-many-repository.js +280 -0
  157. package/lib/relation-repository/belongs-to-repository.d.ts +6 -0
  158. package/lib/relation-repository/belongs-to-repository.js +39 -0
  159. package/lib/relation-repository/hasmany-repository.d.ts +10 -0
  160. package/lib/relation-repository/hasmany-repository.js +182 -0
  161. package/lib/relation-repository/hasone-repository.d.ts +6 -0
  162. package/lib/relation-repository/hasone-repository.js +39 -0
  163. package/lib/relation-repository/multiple-relation-repository.d.ts +20 -0
  164. package/lib/relation-repository/multiple-relation-repository.js +229 -0
  165. package/lib/relation-repository/relation-repository.d.ts +29 -0
  166. package/lib/relation-repository/relation-repository.js +202 -0
  167. package/lib/relation-repository/single-relation-repository.d.ts +25 -0
  168. package/lib/relation-repository/single-relation-repository.js +162 -0
  169. package/lib/relation-repository/types.d.ts +7 -0
  170. package/lib/relation-repository/types.js +15 -0
  171. package/lib/repositories/tree-repository/adjacency-list-repository.d.ts +18 -0
  172. package/lib/repositories/tree-repository/adjacency-list-repository.js +183 -0
  173. package/lib/repositories/view-repository.d.ts +3 -0
  174. package/lib/repositories/view-repository.js +32 -0
  175. package/lib/repository.d.ts +206 -0
  176. package/lib/repository.js +597 -0
  177. package/lib/sql-collection/index.d.ts +2 -0
  178. package/lib/sql-collection/index.js +23 -0
  179. package/lib/sql-collection/query-generator.d.ts +10 -0
  180. package/lib/sql-collection/query-generator.js +70 -0
  181. package/lib/sql-collection/sql-collection.d.ts +7 -0
  182. package/lib/sql-collection/sql-collection.js +69 -0
  183. package/lib/sql-collection/sql-model.d.ts +16 -0
  184. package/lib/sql-collection/sql-model.js +168 -0
  185. package/lib/sql-parser/index.d.ts +10 -0
  186. package/lib/sql-parser/index.js +10699 -0
  187. package/lib/sql-parser/postgres.d.ts +10 -0
  188. package/lib/sql-parser/postgres.js +31506 -0
  189. package/lib/sql-parser/sql.pegjs +1297 -0
  190. package/lib/sync-runner.d.ts +30 -0
  191. package/lib/sync-runner.js +277 -0
  192. package/lib/types.d.ts +49 -0
  193. package/lib/types.js +15 -0
  194. package/lib/update-associations.d.ts +60 -0
  195. package/lib/update-associations.js +405 -0
  196. package/lib/update-guard.d.ts +28 -0
  197. package/lib/update-guard.js +202 -0
  198. package/lib/utils.d.ts +7 -0
  199. package/lib/utils.js +127 -0
  200. package/lib/value-parsers/array-value-parser.d.ts +8 -0
  201. package/lib/value-parsers/array-value-parser.js +58 -0
  202. package/lib/value-parsers/base-value-parser.d.ts +12 -0
  203. package/lib/value-parsers/base-value-parser.js +63 -0
  204. package/lib/value-parsers/boolean-value-parser.d.ts +4 -0
  205. package/lib/value-parsers/boolean-value-parser.js +52 -0
  206. package/lib/value-parsers/date-value-parser.d.ts +5 -0
  207. package/lib/value-parsers/date-value-parser.js +88 -0
  208. package/lib/value-parsers/index.d.ts +12 -0
  209. package/lib/value-parsers/index.js +78 -0
  210. package/lib/value-parsers/json-value-parser.d.ts +4 -0
  211. package/lib/value-parsers/json-value-parser.js +47 -0
  212. package/lib/value-parsers/number-value-parser.d.ts +4 -0
  213. package/lib/value-parsers/number-value-parser.js +58 -0
  214. package/lib/value-parsers/string-value-parser.d.ts +8 -0
  215. package/lib/value-parsers/string-value-parser.js +64 -0
  216. package/lib/value-parsers/to-many-value-parser.d.ts +13 -0
  217. package/lib/value-parsers/to-many-value-parser.js +108 -0
  218. package/lib/value-parsers/to-one-value-parser.d.ts +4 -0
  219. package/lib/value-parsers/to-one-value-parser.js +48 -0
  220. package/lib/view/field-type-map.d.ts +97 -0
  221. package/lib/view/field-type-map.js +90 -0
  222. package/lib/view/view-inference.d.ts +32 -0
  223. package/lib/view/view-inference.js +146 -0
  224. package/lib/view-collection.d.ts +6 -0
  225. package/lib/view-collection.js +45 -0
  226. package/package.json +38 -0
package/lib/utils.js ADDED
@@ -0,0 +1,127 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var utils_exports = {};
30
+ __export(utils_exports, {
31
+ checkIdentifier: () => checkIdentifier,
32
+ getTableName: () => getTableName,
33
+ md5: () => md5,
34
+ patchSequelizeQueryInterface: () => patchSequelizeQueryInterface,
35
+ percent2float: () => percent2float,
36
+ snakeCase: () => snakeCase
37
+ });
38
+ module.exports = __toCommonJS(utils_exports);
39
+ var import_crypto = __toESM(require("crypto"));
40
+ var import_lodash = __toESM(require("lodash"));
41
+ var import_identifier_error = require("./errors/identifier-error");
42
+ function md5(value) {
43
+ return import_crypto.default.createHash("md5").update(value).digest("hex");
44
+ }
45
+ __name(md5, "md5");
46
+ const MAX_IDENTIFIER_LENGTH = 63;
47
+ function checkIdentifier(value) {
48
+ if (value.length > MAX_IDENTIFIER_LENGTH) {
49
+ throw new import_identifier_error.IdentifierError(`Identifier ${value} is too long`);
50
+ }
51
+ }
52
+ __name(checkIdentifier, "checkIdentifier");
53
+ function getTableName(collectionName, options) {
54
+ return options.underscored ? snakeCase(collectionName) : collectionName;
55
+ }
56
+ __name(getTableName, "getTableName");
57
+ function snakeCase(name) {
58
+ return require("sequelize").Utils.underscore(name);
59
+ }
60
+ __name(snakeCase, "snakeCase");
61
+ function patchShowConstraintsQuery(queryGenerator, db) {
62
+ queryGenerator.showConstraintsQuery = (tableName, constraintName) => {
63
+ const lines = [
64
+ 'SELECT constraint_catalog AS "constraintCatalog",',
65
+ 'constraint_schema AS "constraintSchema",',
66
+ 'constraint_name AS "constraintName",',
67
+ 'table_catalog AS "tableCatalog",',
68
+ 'table_schema AS "tableSchema",',
69
+ 'table_name AS "tableName",',
70
+ 'constraint_type AS "constraintType",',
71
+ 'is_deferrable AS "isDeferrable",',
72
+ 'initially_deferred AS "initiallyDeferred"',
73
+ "from INFORMATION_SCHEMA.table_constraints",
74
+ `WHERE table_name='${import_lodash.default.isPlainObject(tableName) ? tableName.tableName : tableName}'`
75
+ ];
76
+ if (constraintName) {
77
+ lines.push(`AND constraint_name='${constraintName}'`);
78
+ }
79
+ if (import_lodash.default.isPlainObject(tableName) && tableName.schema) {
80
+ lines.push(`AND table_schema='${tableName.schema}'`);
81
+ }
82
+ return lines.join(" ");
83
+ };
84
+ }
85
+ __name(patchShowConstraintsQuery, "patchShowConstraintsQuery");
86
+ function patchDescribeTableQuery(queryGenerator) {
87
+ const describeTableQuery = /* @__PURE__ */ __name(function(tableName, schema) {
88
+ schema = schema || this.options.schema || "public";
89
+ return `SELECT pk.constraint_type as "Constraint",c.column_name as "Field", c.column_default as "Default",c.is_nullable as "Null", (CASE WHEN c.udt_name = 'hstore' THEN c.udt_name ELSE c.data_type END) || (CASE WHEN c.character_maximum_length IS NOT NULL THEN '(' || c.character_maximum_length || ')' ELSE '' END) as "Type", (SELECT array_agg(e.enumlabel) FROM pg_catalog.pg_type t JOIN pg_catalog.pg_enum e ON t.oid=e.enumtypid WHERE t.typname=c.udt_name) AS "special", (SELECT pgd.description FROM pg_catalog.pg_statio_all_tables AS st INNER JOIN pg_catalog.pg_description pgd on (pgd.objoid=st.relid) WHERE c.ordinal_position=pgd.objsubid AND c.table_name=st.relname AND st.schemaname = c.table_schema) AS "Comment" FROM information_schema.columns c LEFT JOIN (SELECT tc.table_schema, tc.table_name, cu.column_name, tc.constraint_type FROM information_schema.TABLE_CONSTRAINTS tc JOIN information_schema.KEY_COLUMN_USAGE cu ON tc.table_schema=cu.table_schema and tc.table_name=cu.table_name and tc.constraint_name=cu.constraint_name and tc.constraint_type='PRIMARY KEY') pk ON pk.table_schema=c.table_schema AND pk.table_name=c.table_name AND pk.column_name=c.column_name WHERE c.table_name = ${this.escape(tableName)} AND c.table_schema = ${this.escape(schema)}`;
90
+ }, "describeTableQuery");
91
+ queryGenerator.describeTableQuery = describeTableQuery.bind(queryGenerator);
92
+ }
93
+ __name(patchDescribeTableQuery, "patchDescribeTableQuery");
94
+ function patchSequelizeQueryInterface(db) {
95
+ if (db.inDialect("postgres")) {
96
+ const queryGenerator = db.sequelize.dialect.queryGenerator;
97
+ patchShowConstraintsQuery(queryGenerator, db);
98
+ patchDescribeTableQuery(queryGenerator);
99
+ }
100
+ }
101
+ __name(patchSequelizeQueryInterface, "patchSequelizeQueryInterface");
102
+ function percent2float(value) {
103
+ if (!value.endsWith("%")) {
104
+ return NaN;
105
+ }
106
+ const val = value.substring(0, value.length - 1);
107
+ if (isNaN(+val)) {
108
+ return NaN;
109
+ }
110
+ const index = value.indexOf(".");
111
+ if (index === -1) {
112
+ return parseFloat(value) / 100;
113
+ }
114
+ const repeat = value.length - index - 2;
115
+ const v = parseInt("1" + "0".repeat(repeat));
116
+ return parseFloat(value) * v / (100 * v);
117
+ }
118
+ __name(percent2float, "percent2float");
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ checkIdentifier,
122
+ getTableName,
123
+ md5,
124
+ patchSequelizeQueryInterface,
125
+ percent2float,
126
+ snakeCase
127
+ });
@@ -0,0 +1,8 @@
1
+ import { BaseValueParser } from './base-value-parser';
2
+ export declare class ArrayValueParser extends BaseValueParser {
3
+ setValue(value: any): Promise<void>;
4
+ getOptions(): {
5
+ map: Map<any, any>;
6
+ set: Set<unknown>;
7
+ };
8
+ }
@@ -0,0 +1,58 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var array_value_parser_exports = {};
20
+ __export(array_value_parser_exports, {
21
+ ArrayValueParser: () => ArrayValueParser
22
+ });
23
+ module.exports = __toCommonJS(array_value_parser_exports);
24
+ var import_base_value_parser = require("./base-value-parser");
25
+ const _ArrayValueParser = class _ArrayValueParser extends import_base_value_parser.BaseValueParser {
26
+ async setValue(value) {
27
+ const { map, set } = this.getOptions();
28
+ const values = this.toArr(value);
29
+ if (set.size > 0) {
30
+ const filtered = values.map((v) => map.has(v) ? map.get(v) : v).filter((v) => set.has(v));
31
+ if (values.length === filtered.length) {
32
+ this.value = filtered;
33
+ } else {
34
+ this.errors.push(`No matching option found - ${JSON.stringify(value)}`);
35
+ }
36
+ } else {
37
+ this.value = values;
38
+ }
39
+ }
40
+ getOptions() {
41
+ var _a, _b;
42
+ const options = ((_b = (_a = this.field.options) == null ? void 0 : _a["uiSchema"]) == null ? void 0 : _b.enum) || [];
43
+ const map = /* @__PURE__ */ new Map();
44
+ const set = /* @__PURE__ */ new Set();
45
+ for (const option of options) {
46
+ set.add(option.value);
47
+ set.add(option.label);
48
+ map.set(option.label, option.value);
49
+ }
50
+ return { map, set };
51
+ }
52
+ };
53
+ __name(_ArrayValueParser, "ArrayValueParser");
54
+ let ArrayValueParser = _ArrayValueParser;
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ ArrayValueParser
58
+ });
@@ -0,0 +1,12 @@
1
+ export declare class BaseValueParser {
2
+ ctx: any;
3
+ field: any;
4
+ value: any;
5
+ errors: string[];
6
+ constructor(field: any, ctx: any);
7
+ trim(value: any): any;
8
+ toArr(value: any, splitter?: string): any[];
9
+ toString(): any;
10
+ getValue(): any;
11
+ setValue(value: any): Promise<void>;
12
+ }
@@ -0,0 +1,63 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var base_value_parser_exports = {};
20
+ __export(base_value_parser_exports, {
21
+ BaseValueParser: () => BaseValueParser
22
+ });
23
+ module.exports = __toCommonJS(base_value_parser_exports);
24
+ const _BaseValueParser = class _BaseValueParser {
25
+ ctx;
26
+ field;
27
+ value;
28
+ errors = [];
29
+ constructor(field, ctx) {
30
+ this.field = field;
31
+ this.ctx = ctx;
32
+ this.value = null;
33
+ }
34
+ trim(value) {
35
+ return typeof value === "string" ? value.trim() : value;
36
+ }
37
+ toArr(value, splitter) {
38
+ let values = [];
39
+ if (!value) {
40
+ values = [];
41
+ } else if (typeof value === "string") {
42
+ values = value.split(splitter || /,|,|、/);
43
+ } else if (Array.isArray(value)) {
44
+ values = value;
45
+ }
46
+ return values.map((v) => this.trim(v)).filter(Boolean);
47
+ }
48
+ toString() {
49
+ return this.value;
50
+ }
51
+ getValue() {
52
+ return this.value;
53
+ }
54
+ async setValue(value) {
55
+ this.value = value;
56
+ }
57
+ };
58
+ __name(_BaseValueParser, "BaseValueParser");
59
+ let BaseValueParser = _BaseValueParser;
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ BaseValueParser
63
+ });
@@ -0,0 +1,4 @@
1
+ import { BaseValueParser } from './base-value-parser';
2
+ export declare class BooleanValueParser extends BaseValueParser {
3
+ setValue(value: any): Promise<void>;
4
+ }
@@ -0,0 +1,52 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var boolean_value_parser_exports = {};
20
+ __export(boolean_value_parser_exports, {
21
+ BooleanValueParser: () => BooleanValueParser
22
+ });
23
+ module.exports = __toCommonJS(boolean_value_parser_exports);
24
+ var import_base_value_parser = require("./base-value-parser");
25
+ const _BooleanValueParser = class _BooleanValueParser extends import_base_value_parser.BaseValueParser {
26
+ async setValue(value) {
27
+ if (typeof value === "boolean") {
28
+ this.value = value;
29
+ } else if (typeof value === "number" && [0, 1].includes(value)) {
30
+ this.value = value === 1;
31
+ } else if (typeof value === "string") {
32
+ if (!value) {
33
+ this.value = null;
34
+ }
35
+ if (["1", "y", "yes", "true", "\u662F"].includes(value.toLowerCase())) {
36
+ this.value = true;
37
+ } else if (["0", "n", "no", "false", "\u5426"].includes(value.toLowerCase())) {
38
+ this.value = false;
39
+ } else {
40
+ this.errors.push(`Invalid value - ${JSON.stringify(this.value)}`);
41
+ }
42
+ } else {
43
+ this.errors.push(`Invalid value - ${JSON.stringify(this.value)}`);
44
+ }
45
+ }
46
+ };
47
+ __name(_BooleanValueParser, "BooleanValueParser");
48
+ let BooleanValueParser = _BooleanValueParser;
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ BooleanValueParser
52
+ });
@@ -0,0 +1,5 @@
1
+ import { BaseValueParser } from './base-value-parser';
2
+ export declare class DateValueParser extends BaseValueParser {
3
+ setValue(value: any): Promise<void>;
4
+ getProps(): any;
5
+ }
@@ -0,0 +1,88 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var date_value_parser_exports = {};
30
+ __export(date_value_parser_exports, {
31
+ DateValueParser: () => DateValueParser
32
+ });
33
+ module.exports = __toCommonJS(date_value_parser_exports);
34
+ var import_utils = require("@tachybase/utils");
35
+ var import_dayjs = __toESM(require("dayjs"));
36
+ var import_excel_date_to_js = require("excel-date-to-js");
37
+ var import_base_value_parser = require("./base-value-parser");
38
+ function isNumeric(str) {
39
+ if (typeof str === "number") return true;
40
+ if (typeof str != "string") return false;
41
+ return !isNaN(str) && !isNaN(parseFloat(str));
42
+ }
43
+ __name(isNumeric, "isNumeric");
44
+ const _DateValueParser = class _DateValueParser extends import_base_value_parser.BaseValueParser {
45
+ async setValue(value) {
46
+ if (typeof value === "string") {
47
+ const match = /^(\d{4})[-/]?(\d{2})[-/]?(\d{2})$/.exec(value);
48
+ if (match) {
49
+ const m = (0, import_dayjs.default)(`${match[1]}-${match[2]}-${match[3]} 00:00:00.000`);
50
+ this.value = m.toISOString();
51
+ return;
52
+ }
53
+ }
54
+ if (import_dayjs.default.isDayjs(value)) {
55
+ this.value = value;
56
+ } else if (isDate(value)) {
57
+ this.value = value;
58
+ } else if (isNumeric(value)) {
59
+ try {
60
+ this.value = (0, import_excel_date_to_js.getJsDateFromExcel)(value).toISOString();
61
+ } catch (error) {
62
+ this.errors.push(`Invalid date - ${error.message}`);
63
+ }
64
+ } else if (typeof value === "string") {
65
+ const props = this.getProps();
66
+ const m = (0, import_dayjs.default)(value);
67
+ if (m.isValid()) {
68
+ this.value = (0, import_utils.moment2str)(m, props);
69
+ } else {
70
+ this.errors.push("Invalid date");
71
+ }
72
+ }
73
+ }
74
+ getProps() {
75
+ var _a, _b;
76
+ return ((_b = (_a = this.field.options) == null ? void 0 : _a.uiSchema) == null ? void 0 : _b["x-component-props"]) || {};
77
+ }
78
+ };
79
+ __name(_DateValueParser, "DateValueParser");
80
+ let DateValueParser = _DateValueParser;
81
+ function isDate(v) {
82
+ return v instanceof Date;
83
+ }
84
+ __name(isDate, "isDate");
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ DateValueParser
88
+ });
@@ -0,0 +1,12 @@
1
+ import { Database } from '../database';
2
+ import { ArrayValueParser } from './array-value-parser';
3
+ import { BaseValueParser } from './base-value-parser';
4
+ import { BooleanValueParser } from './boolean-value-parser';
5
+ import { DateValueParser } from './date-value-parser';
6
+ import { JsonValueParser } from './json-value-parser';
7
+ import { NumberValueParser } from './number-value-parser';
8
+ import { StringValueParser } from './string-value-parser';
9
+ import { ToManyValueParser } from './to-many-value-parser';
10
+ import { ToOneValueParser } from './to-one-value-parser';
11
+ export declare function registerFieldValueParsers(db: Database): void;
12
+ export { ArrayValueParser, BaseValueParser, BooleanValueParser, DateValueParser, JsonValueParser, NumberValueParser, StringValueParser, ToManyValueParser, ToOneValueParser, };
@@ -0,0 +1,78 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var value_parsers_exports = {};
20
+ __export(value_parsers_exports, {
21
+ ArrayValueParser: () => import_array_value_parser.ArrayValueParser,
22
+ BaseValueParser: () => import_base_value_parser.BaseValueParser,
23
+ BooleanValueParser: () => import_boolean_value_parser.BooleanValueParser,
24
+ DateValueParser: () => import_date_value_parser.DateValueParser,
25
+ JsonValueParser: () => import_json_value_parser.JsonValueParser,
26
+ NumberValueParser: () => import_number_value_parser.NumberValueParser,
27
+ StringValueParser: () => import_string_value_parser.StringValueParser,
28
+ ToManyValueParser: () => import_to_many_value_parser.ToManyValueParser,
29
+ ToOneValueParser: () => import_to_one_value_parser.ToOneValueParser,
30
+ registerFieldValueParsers: () => registerFieldValueParsers
31
+ });
32
+ module.exports = __toCommonJS(value_parsers_exports);
33
+ var import_array_value_parser = require("./array-value-parser");
34
+ var import_base_value_parser = require("./base-value-parser");
35
+ var import_boolean_value_parser = require("./boolean-value-parser");
36
+ var import_date_value_parser = require("./date-value-parser");
37
+ var import_json_value_parser = require("./json-value-parser");
38
+ var import_number_value_parser = require("./number-value-parser");
39
+ var import_string_value_parser = require("./string-value-parser");
40
+ var import_to_many_value_parser = require("./to-many-value-parser");
41
+ var import_to_one_value_parser = require("./to-one-value-parser");
42
+ function registerFieldValueParsers(db) {
43
+ db.registerFieldValueParsers({
44
+ default: import_base_value_parser.BaseValueParser,
45
+ array: import_array_value_parser.ArrayValueParser,
46
+ set: import_array_value_parser.ArrayValueParser,
47
+ boolean: import_boolean_value_parser.BooleanValueParser,
48
+ date: import_date_value_parser.DateValueParser,
49
+ json: import_json_value_parser.JsonValueParser,
50
+ jsonb: import_json_value_parser.JsonValueParser,
51
+ number: import_number_value_parser.NumberValueParser,
52
+ integer: import_number_value_parser.NumberValueParser,
53
+ bigInt: import_number_value_parser.NumberValueParser,
54
+ float: import_number_value_parser.NumberValueParser,
55
+ double: import_number_value_parser.NumberValueParser,
56
+ real: import_number_value_parser.NumberValueParser,
57
+ decimal: import_number_value_parser.NumberValueParser,
58
+ string: import_string_value_parser.StringValueParser,
59
+ hasOne: import_to_one_value_parser.ToOneValueParser,
60
+ hasMany: import_to_many_value_parser.ToManyValueParser,
61
+ belongsTo: import_to_one_value_parser.ToOneValueParser,
62
+ belongsToMany: import_to_many_value_parser.ToManyValueParser
63
+ });
64
+ }
65
+ __name(registerFieldValueParsers, "registerFieldValueParsers");
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ ArrayValueParser,
69
+ BaseValueParser,
70
+ BooleanValueParser,
71
+ DateValueParser,
72
+ JsonValueParser,
73
+ NumberValueParser,
74
+ StringValueParser,
75
+ ToManyValueParser,
76
+ ToOneValueParser,
77
+ registerFieldValueParsers
78
+ });
@@ -0,0 +1,4 @@
1
+ import { BaseValueParser } from './base-value-parser';
2
+ export declare class JsonValueParser extends BaseValueParser {
3
+ setValue(value: any): Promise<void>;
4
+ }
@@ -0,0 +1,47 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var json_value_parser_exports = {};
20
+ __export(json_value_parser_exports, {
21
+ JsonValueParser: () => JsonValueParser
22
+ });
23
+ module.exports = __toCommonJS(json_value_parser_exports);
24
+ var import_base_value_parser = require("./base-value-parser");
25
+ const _JsonValueParser = class _JsonValueParser extends import_base_value_parser.BaseValueParser {
26
+ async setValue(value) {
27
+ if (typeof value === "string") {
28
+ if (value.trim() === "") {
29
+ this.value = null;
30
+ } else {
31
+ try {
32
+ this.value = JSON.parse(value);
33
+ } catch (error) {
34
+ this.errors.push(error.message);
35
+ }
36
+ }
37
+ } else {
38
+ this.value = value;
39
+ }
40
+ }
41
+ };
42
+ __name(_JsonValueParser, "JsonValueParser");
43
+ let JsonValueParser = _JsonValueParser;
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ JsonValueParser
47
+ });
@@ -0,0 +1,4 @@
1
+ import { BaseValueParser } from './base-value-parser';
2
+ export declare class NumberValueParser extends BaseValueParser {
3
+ setValue(value: any): Promise<void>;
4
+ }
@@ -0,0 +1,58 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var number_value_parser_exports = {};
20
+ __export(number_value_parser_exports, {
21
+ NumberValueParser: () => NumberValueParser
22
+ });
23
+ module.exports = __toCommonJS(number_value_parser_exports);
24
+ var import_utils = require("../utils");
25
+ var import_base_value_parser = require("./base-value-parser");
26
+ const _NumberValueParser = class _NumberValueParser extends import_base_value_parser.BaseValueParser {
27
+ async setValue(value) {
28
+ if (value === null || value === void 0 || typeof value === "number") {
29
+ this.value = value;
30
+ } else if (typeof value === "string") {
31
+ if (!value) {
32
+ this.value = null;
33
+ } else if (["n/a", "-"].includes(value.toLowerCase())) {
34
+ this.value = null;
35
+ } else {
36
+ value = value.replace(/,/g, "");
37
+ if (value.endsWith("%")) {
38
+ value = (0, import_utils.percent2float)(value);
39
+ } else {
40
+ value = +value;
41
+ }
42
+ if (isNaN(value)) {
43
+ this.errors.push(`Invalid value - "${value}"`);
44
+ } else {
45
+ this.value = value;
46
+ }
47
+ }
48
+ } else {
49
+ this.errors.push(`Invalid value - ${JSON.stringify(value)}`);
50
+ }
51
+ }
52
+ };
53
+ __name(_NumberValueParser, "NumberValueParser");
54
+ let NumberValueParser = _NumberValueParser;
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ NumberValueParser
58
+ });
@@ -0,0 +1,8 @@
1
+ import { BaseValueParser } from './base-value-parser';
2
+ export declare class StringValueParser extends BaseValueParser {
3
+ setValue(value: any): Promise<void>;
4
+ getOptions(): {
5
+ map: Map<any, any>;
6
+ set: Set<unknown>;
7
+ };
8
+ }