@tachybase/plugin-action-import 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 (78) hide show
  1. package/.turbo/turbo-build.log +14 -0
  2. package/README.md +222 -0
  3. package/README.zh-CN.md +222 -0
  4. package/client.d.ts +2 -0
  5. package/client.js +1 -0
  6. package/dist/client/ImportActionInitializer.d.ts +8 -0
  7. package/dist/client/ImportDesigner.d.ts +2 -0
  8. package/dist/client/ImportModal.d.ts +6 -0
  9. package/dist/client/ImportPluginProvider.d.ts +3 -0
  10. package/dist/client/constants.d.ts +1 -0
  11. package/dist/client/context.d.ts +28 -0
  12. package/dist/client/index.d.ts +9 -0
  13. package/dist/client/index.js +24 -0
  14. package/dist/client/locale/index.d.ts +0 -0
  15. package/dist/client/schemaSettings.d.ts +2 -0
  16. package/dist/client/useFields.d.ts +1 -0
  17. package/dist/client/useImportAction.d.ts +6 -0
  18. package/dist/client/useShared.d.ts +75 -0
  19. package/dist/externalVersion.js +16 -0
  20. package/dist/index.d.ts +3 -0
  21. package/dist/index.js +43 -0
  22. package/dist/locale/en-US.json +27 -0
  23. package/dist/locale/es-ES.json +27 -0
  24. package/dist/locale/ko_KR.json +28 -0
  25. package/dist/locale/pt-BR.json +27 -0
  26. package/dist/locale/zh-CN.json +28 -0
  27. package/dist/node_modules/node-xlsx/dist/bin/cli.cjs +95 -0
  28. package/dist/node_modules/node-xlsx/dist/bin/cli.d.cts +1 -0
  29. package/dist/node_modules/node-xlsx/dist/bin/cli.d.ts +1 -0
  30. package/dist/node_modules/node-xlsx/dist/bin/cli.js +37 -0
  31. package/dist/node_modules/node-xlsx/dist/chunk-ID6OMQGT.js +78 -0
  32. package/dist/node_modules/node-xlsx/dist/index.cjs +7 -0
  33. package/dist/node_modules/node-xlsx/dist/index.d.cts +46 -0
  34. package/dist/node_modules/node-xlsx/dist/index.d.ts +46 -0
  35. package/dist/node_modules/node-xlsx/dist/index.js +13 -0
  36. package/dist/node_modules/node-xlsx/node_modules/.bin/xlsx +17 -0
  37. package/dist/node_modules/node-xlsx/package.json +1 -0
  38. package/dist/node_modules/xlsx/LICENSE +201 -0
  39. package/dist/node_modules/xlsx/bin/xlsx.njs +310 -0
  40. package/dist/node_modules/xlsx/bower.json +22 -0
  41. package/dist/node_modules/xlsx/dist/cpexcel.js +1506 -0
  42. package/dist/node_modules/xlsx/dist/shim.min.js +2 -0
  43. package/dist/node_modules/xlsx/dist/xlsx.core.min.js +15 -0
  44. package/dist/node_modules/xlsx/dist/xlsx.extendscript.js +24642 -0
  45. package/dist/node_modules/xlsx/dist/xlsx.full.min.js +22 -0
  46. package/dist/node_modules/xlsx/dist/xlsx.mini.min.js +9 -0
  47. package/dist/node_modules/xlsx/dist/xlsx.zahl.js +4 -0
  48. package/dist/node_modules/xlsx/node_modules/.bin/crc32 +17 -0
  49. package/dist/node_modules/xlsx/package.json +1 -0
  50. package/dist/node_modules/xlsx/types/index.d.ts +900 -0
  51. package/dist/node_modules/xlsx/xlsx.js +7 -0
  52. package/dist/node_modules/xlsx/xlsxworker.js +14 -0
  53. package/dist/server/actions/downloadXlsxTemplate.d.ts +2 -0
  54. package/dist/server/actions/downloadXlsxTemplate.js +62 -0
  55. package/dist/server/actions/importXlsx.d.ts +2 -0
  56. package/dist/server/actions/importXlsx.js +187 -0
  57. package/dist/server/actions/index.d.ts +2 -0
  58. package/dist/server/actions/index.js +23 -0
  59. package/dist/server/index.d.ts +7 -0
  60. package/dist/server/index.js +53 -0
  61. package/dist/server/locale/en-US.d.ts +11 -0
  62. package/dist/server/locale/en-US.js +32 -0
  63. package/dist/server/locale/fr-FR.d.ts +11 -0
  64. package/dist/server/locale/fr-FR.js +32 -0
  65. package/dist/server/locale/index.d.ts +2 -0
  66. package/dist/server/locale/index.js +40 -0
  67. package/dist/server/locale/zh-CN.d.ts +12 -0
  68. package/dist/server/locale/zh-CN.js +33 -0
  69. package/dist/server/middleware/index.d.ts +2 -0
  70. package/dist/server/middleware/index.js +34 -0
  71. package/dist/server/utils/index.d.ts +6 -0
  72. package/dist/server/utils/index.js +54 -0
  73. package/dist/server/utils/transform.d.ts +84 -0
  74. package/dist/server/utils/transform.js +226 -0
  75. package/dist/swagger/index.json +33 -0
  76. package/package.json +39 -0
  77. package/server.d.ts +2 -0
  78. package/server.js +1 -0
@@ -0,0 +1,14 @@
1
+ /* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
2
+ importScripts('dist/shim.min.js');
3
+ /* uncomment the next line for encoding support */
4
+ importScripts('dist/cpexcel.js');
5
+ importScripts('xlsx.js');
6
+ postMessage({t:"ready"});
7
+
8
+ onmessage = function (evt) {
9
+ var v;
10
+ try {
11
+ v = XLSX.read(evt.data.d, {type: evt.data.b});
12
+ postMessage({t:"xlsx", d:JSON.stringify(v)});
13
+ } catch(e) { postMessage({t:"e",d:e.stack||e}); }
14
+ };
@@ -0,0 +1,2 @@
1
+ import { Context, Next } from '@tachybase/actions';
2
+ export declare function downloadXlsxTemplate(ctx: Context, next: Next): Promise<void>;
@@ -0,0 +1,62 @@
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 __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var downloadXlsxTemplate_exports = {};
29
+ __export(downloadXlsxTemplate_exports, {
30
+ downloadXlsxTemplate: () => downloadXlsxTemplate
31
+ });
32
+ module.exports = __toCommonJS(downloadXlsxTemplate_exports);
33
+ var import_node_xlsx = __toESM(require("node-xlsx"));
34
+ async function downloadXlsxTemplate(ctx, next) {
35
+ let { columns } = ctx.request.body;
36
+ const { explain, title } = ctx.request.body;
37
+ if (typeof columns === "string") {
38
+ columns = JSON.parse(columns);
39
+ }
40
+ const header = columns == null ? void 0 : columns.map((column) => column.defaultTitle);
41
+ const data = [header];
42
+ if ((explain == null ? void 0 : explain.trim()) !== "") {
43
+ data.unshift([explain]);
44
+ }
45
+ ctx.body = import_node_xlsx.default.build([
46
+ {
47
+ name: "Sheet 1",
48
+ data,
49
+ options: {}
50
+ }
51
+ ]);
52
+ ctx.set({
53
+ "Content-Type": "application/octet-stream",
54
+ // to avoid "invalid character" error in header (RFC)
55
+ "Content-Disposition": `attachment; filename=${encodeURIComponent(title)}.xlsx`
56
+ });
57
+ await next();
58
+ }
59
+ // Annotate the CommonJS export names for ESM import in node:
60
+ 0 && (module.exports = {
61
+ downloadXlsxTemplate
62
+ });
@@ -0,0 +1,2 @@
1
+ import { Context, Next } from '@tachybase/actions';
2
+ export declare function importXlsx(ctx: Context, next: Next): Promise<void>;
@@ -0,0 +1,187 @@
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 __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var importXlsx_exports = {};
29
+ __export(importXlsx_exports, {
30
+ importXlsx: () => importXlsx
31
+ });
32
+ module.exports = __toCommonJS(importXlsx_exports);
33
+ var import_utils = require("@tachybase/utils");
34
+ var import_node_xlsx = __toESM(require("node-xlsx"));
35
+ var import_xlsx = __toESM(require("xlsx"));
36
+ var import__ = require("../../");
37
+ const IMPORT_LIMIT_COUNT = 1e4;
38
+ class Importer {
39
+ repository;
40
+ collection;
41
+ columns;
42
+ items = [];
43
+ headerRow;
44
+ context;
45
+ constructor(ctx) {
46
+ const { resourceName, resourceOf } = ctx.action;
47
+ this.context = ctx;
48
+ this.repository = ctx.db.getRepository(resourceName, resourceOf);
49
+ this.collection = this.repository.collection;
50
+ this.parseXlsx();
51
+ }
52
+ getRows() {
53
+ const workbook = import_xlsx.default.read(this.context.file.buffer, {
54
+ type: "buffer"
55
+ // cellDates: true,
56
+ // raw: false,
57
+ });
58
+ const r = workbook.Sheets[workbook.SheetNames[0]];
59
+ const rows = import_xlsx.default.utils.sheet_to_json(r, { header: 1, defval: null, raw: false });
60
+ return rows;
61
+ }
62
+ parseXlsx() {
63
+ const rows = this.getRows();
64
+ let columns = this.context.request.body.columns;
65
+ if (typeof columns === "string") {
66
+ columns = JSON.parse(columns);
67
+ }
68
+ this.columns = columns.map((column) => {
69
+ return {
70
+ ...column,
71
+ field: this.collection.fields.get(column.dataIndex[0])
72
+ };
73
+ }).filter((col) => col.field);
74
+ const str = this.columns.map((column) => column.defaultTitle).join("||");
75
+ for (const row of rows) {
76
+ if (this.hasHeaderRow()) {
77
+ if (row && row.join("").trim()) {
78
+ this.items.push(row);
79
+ }
80
+ }
81
+ if (str === row.filter((r) => r).join("||")) {
82
+ this.headerRow = row;
83
+ }
84
+ }
85
+ }
86
+ getFieldByIndex(index) {
87
+ return this.columns[index].field;
88
+ }
89
+ async getItems() {
90
+ const items = [];
91
+ for (const row of this.items) {
92
+ const values = {};
93
+ const errors = [];
94
+ for (let index = 0; index < row.length; index++) {
95
+ if (!this.columns[index]) {
96
+ continue;
97
+ }
98
+ const column = this.columns[index];
99
+ const { field, defaultTitle } = column;
100
+ let value = row[index];
101
+ if (value === void 0 || value === null) {
102
+ continue;
103
+ }
104
+ const parser = this.context.db.buildFieldValueParser(field, { ...this.context, column });
105
+ await parser.setValue(typeof value === "string" ? value.trim() : value);
106
+ value = parser.getValue();
107
+ if (parser.errors.length > 0) {
108
+ errors.push(`${defaultTitle}: ${parser.errors.join(";")}`);
109
+ }
110
+ if (value === void 0) {
111
+ continue;
112
+ }
113
+ values[field.name] = value;
114
+ }
115
+ items.push({
116
+ row,
117
+ values,
118
+ errors
119
+ });
120
+ }
121
+ return items;
122
+ }
123
+ hasSortField() {
124
+ return !!this.collection.options.sortable;
125
+ }
126
+ async run() {
127
+ return await this.context.db.sequelize.transaction(async (transaction) => {
128
+ let sort = 0;
129
+ if (this.hasSortField()) {
130
+ sort = await this.repository.model.max("sort", { transaction });
131
+ }
132
+ const result = [[], []];
133
+ for (const { row, values, errors } of await this.getItems()) {
134
+ if (errors.length > 0) {
135
+ row.push(errors.join(";"));
136
+ result[1].push(row);
137
+ continue;
138
+ }
139
+ if (this.hasSortField()) {
140
+ values["sort"] = ++sort;
141
+ }
142
+ try {
143
+ const instance = await this.repository.create({
144
+ values,
145
+ transaction,
146
+ logging: false,
147
+ context: this.context
148
+ });
149
+ result[0].push(instance);
150
+ } catch (error) {
151
+ if (error.message !== "current transaction is aborted, commands ignored until end of transaction block") {
152
+ this.context.log.error(error, row);
153
+ }
154
+ row.push(error.message);
155
+ result[1].push(row);
156
+ }
157
+ }
158
+ return result;
159
+ });
160
+ }
161
+ hasHeaderRow() {
162
+ return !!this.headerRow;
163
+ }
164
+ }
165
+ async function importXlsx(ctx, next) {
166
+ const importer = new Importer(ctx);
167
+ if (!importer.hasHeaderRow()) {
168
+ ctx.throw(400, ctx.t("Imported template does not match, please download again.", { ns: import__.namespace }));
169
+ }
170
+ const [success, failure] = await importer.run();
171
+ ctx.body = {
172
+ rows: import_node_xlsx.default.build([
173
+ {
174
+ name: `${(0, import_utils.uid)()}.xlsx`,
175
+ data: [importer.headerRow].concat(failure),
176
+ options: {}
177
+ }
178
+ ]),
179
+ successCount: success.length,
180
+ failureCount: failure.length
181
+ };
182
+ await next();
183
+ }
184
+ // Annotate the CommonJS export names for ESM import in node:
185
+ 0 && (module.exports = {
186
+ importXlsx
187
+ });
@@ -0,0 +1,2 @@
1
+ export * from './downloadXlsxTemplate';
2
+ export * from './importXlsx';
@@ -0,0 +1,23 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var actions_exports = {};
16
+ module.exports = __toCommonJS(actions_exports);
17
+ __reExport(actions_exports, require("./downloadXlsxTemplate"), module.exports);
18
+ __reExport(actions_exports, require("./importXlsx"), module.exports);
19
+ // Annotate the CommonJS export names for ESM import in node:
20
+ 0 && (module.exports = {
21
+ ...require("./downloadXlsxTemplate"),
22
+ ...require("./importXlsx")
23
+ });
@@ -0,0 +1,7 @@
1
+ import { InstallOptions, Plugin } from '@tachybase/server';
2
+ export declare class ImportPlugin extends Plugin {
3
+ beforeLoad(): void;
4
+ load(): Promise<void>;
5
+ install(options: InstallOptions): Promise<void>;
6
+ }
7
+ export default ImportPlugin;
@@ -0,0 +1,53 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var server_exports = {};
19
+ __export(server_exports, {
20
+ ImportPlugin: () => ImportPlugin,
21
+ default: () => server_default
22
+ });
23
+ module.exports = __toCommonJS(server_exports);
24
+ var import_server = require("@tachybase/server");
25
+ var import__ = require("..");
26
+ var import_actions = require("./actions");
27
+ var import_locale = require("./locale");
28
+ var import_middleware = require("./middleware");
29
+ class ImportPlugin extends import_server.Plugin {
30
+ beforeLoad() {
31
+ this.app.i18n.addResources("zh-CN", import__.namespace, import_locale.zhCN);
32
+ this.app.i18n.addResources("en-US", import__.namespace, import_locale.enUS);
33
+ }
34
+ async load() {
35
+ this.app.resourcer.use(import_middleware.importMiddleware, { tag: "importXlsx" });
36
+ this.app.resourcer.registerActionHandler("downloadXlsxTemplate", import_actions.downloadXlsxTemplate);
37
+ this.app.resourcer.registerActionHandler("importXlsx", import_actions.importXlsx);
38
+ this.app.acl.setAvailableAction("importXlsx", {
39
+ displayName: '{{t("Import")}}',
40
+ allowConfigureFields: true,
41
+ type: "new-data",
42
+ onNewRecord: true
43
+ });
44
+ this.app.acl.allow("*", "downloadXlsxTemplate", "loggedIn");
45
+ }
46
+ async install(options) {
47
+ }
48
+ }
49
+ var server_default = ImportPlugin;
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ ImportPlugin
53
+ });
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ Yes: string;
3
+ No: string;
4
+ 'can not find value': string;
5
+ 'password is empty': string;
6
+ 'Incorrect time format': string;
7
+ 'Incorrect date format': string;
8
+ 'Incorrect email format': string;
9
+ 'Illegal percentage format': string;
10
+ };
11
+ export default _default;
@@ -0,0 +1,32 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var en_US_exports = {};
19
+ __export(en_US_exports, {
20
+ default: () => en_US_default
21
+ });
22
+ module.exports = __toCommonJS(en_US_exports);
23
+ var en_US_default = {
24
+ Yes: "Yes",
25
+ No: "No",
26
+ "can not find value": "can not find value",
27
+ "password is empty": "password is empty",
28
+ "Incorrect time format": "Incorrect time format",
29
+ "Incorrect date format": "Incorrect date format",
30
+ "Incorrect email format": "Incorrect email format",
31
+ "Illegal percentage format": "Illegal percentage format"
32
+ };
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ Yes: string;
3
+ No: string;
4
+ 'can not find value': string;
5
+ 'password is empty': string;
6
+ 'Incorrect time format': string;
7
+ 'Incorrect date format': string;
8
+ 'Incorrect email format': string;
9
+ 'Illegal percentage format': string;
10
+ };
11
+ export default _default;
@@ -0,0 +1,32 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var fr_FR_exports = {};
19
+ __export(fr_FR_exports, {
20
+ default: () => fr_FR_default
21
+ });
22
+ module.exports = __toCommonJS(fr_FR_exports);
23
+ var fr_FR_default = {
24
+ Yes: "Oui",
25
+ No: "Non",
26
+ "can not find value": "valeur introuvable",
27
+ "password is empty": "le mot de passe est vide",
28
+ "Incorrect time format": "Format de l'heure incorrect",
29
+ "Incorrect date format": "Format de la date incorrect",
30
+ "Incorrect email format": "Format d'email incorrect",
31
+ "Illegal percentage format": "Format de pourcentage ill\xE9gal"
32
+ };
@@ -0,0 +1,2 @@
1
+ export { default as enUS } from './en-US';
2
+ export { default as zhCN } from './zh-CN';
@@ -0,0 +1,40 @@
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 __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var locale_exports = {};
29
+ __export(locale_exports, {
30
+ enUS: () => import_en_US.default,
31
+ zhCN: () => import_zh_CN.default
32
+ });
33
+ module.exports = __toCommonJS(locale_exports);
34
+ var import_en_US = __toESM(require("./en-US"));
35
+ var import_zh_CN = __toESM(require("./zh-CN"));
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ enUS,
39
+ zhCN
40
+ });
@@ -0,0 +1,12 @@
1
+ declare const _default: {
2
+ Yes: string;
3
+ No: string;
4
+ 'can not find value': string;
5
+ 'password is empty': string;
6
+ 'Incorrect time format': string;
7
+ 'Incorrect date format': string;
8
+ 'Incorrect email format': string;
9
+ 'Illegal percentage format': string;
10
+ 'Imported template does not match, please download again.': string;
11
+ };
12
+ export default _default;
@@ -0,0 +1,33 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var zh_CN_exports = {};
19
+ __export(zh_CN_exports, {
20
+ default: () => zh_CN_default
21
+ });
22
+ module.exports = __toCommonJS(zh_CN_exports);
23
+ var zh_CN_default = {
24
+ Yes: "\u662F",
25
+ No: "\u5426",
26
+ "can not find value": "\u627E\u4E0D\u5230\u5BF9\u5E94\u503C",
27
+ "password is empty": "\u5BC6\u7801\u4E3A\u7A7A",
28
+ "Incorrect time format": "\u65F6\u95F4\u683C\u5F0F\u4E0D\u6B63\u786E",
29
+ "Incorrect date format": "\u65E5\u671F\u683C\u5F0F\u4E0D\u6B63\u786E",
30
+ "Incorrect email format": "\u90AE\u7BB1\u683C\u5F0F\u4E0D\u6B63\u786E",
31
+ "Illegal percentage format": "\u767E\u5206\u6BD4\u683C\u5F0F\u6709\u8BEF",
32
+ "Imported template does not match, please download again.": "\u5BFC\u5165\u6A21\u677F\u4E0D\u5339\u914D\uFF0C\u8BF7\u68C0\u67E5\u5BFC\u5165\u6587\u4EF6\u6807\u9898\u884C\u6216\u91CD\u65B0\u4E0B\u8F7D\u5BFC\u5165\u6A21\u677F"
33
+ };
@@ -0,0 +1,2 @@
1
+ import { Context, Next } from '@tachybase/actions';
2
+ export declare function importMiddleware(ctx: Context, next: Next): Promise<any>;
@@ -0,0 +1,34 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var middleware_exports = {};
19
+ __export(middleware_exports, {
20
+ importMiddleware: () => importMiddleware
21
+ });
22
+ module.exports = __toCommonJS(middleware_exports);
23
+ var import_utils = require("@tachybase/utils");
24
+ async function importMiddleware(ctx, next) {
25
+ if (ctx.action.actionName !== "importXlsx") {
26
+ return next();
27
+ }
28
+ const upload = (0, import_utils.koaMulter)().single("file");
29
+ return upload(ctx, next);
30
+ }
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ importMiddleware
34
+ });
@@ -0,0 +1,6 @@
1
+ export declare function transform({ ctx, record, columns, fields }: {
2
+ ctx: any;
3
+ record: any;
4
+ columns: any;
5
+ fields: any;
6
+ }): Promise<{}>;
@@ -0,0 +1,54 @@
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 __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var utils_exports = {};
29
+ __export(utils_exports, {
30
+ transform: () => transform
31
+ });
32
+ module.exports = __toCommonJS(utils_exports);
33
+ var import_lodash = __toESM(require("lodash"));
34
+ var transforms = __toESM(require("./transform"));
35
+ function getTransform(name) {
36
+ return transforms[name] || transforms._;
37
+ }
38
+ async function transform({ ctx, record, columns, fields }) {
39
+ const newRecord = {};
40
+ for (let index = 0, iLen = record.length; index < iLen; index++) {
41
+ const cell = record[index];
42
+ const column = columns[index] ?? {};
43
+ const { dataIndex } = column;
44
+ const field = fields.find((f) => f.name === dataIndex[0]);
45
+ const t = getTransform(field.options.interface);
46
+ const value = await t({ ctx, column, value: cell, field });
47
+ import_lodash.default.set(newRecord, dataIndex[0], value);
48
+ }
49
+ return newRecord;
50
+ }
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ transform
54
+ });