kintone-migrator 0.24.6 → 0.24.7
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.
- package/dist/index.mjs +322 -647
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -10,14 +10,13 @@ import { basename, dirname, extname, join, resolve } from "node:path";
|
|
|
10
10
|
import { realpathSync } from "node:fs";
|
|
11
11
|
import * as v from "valibot";
|
|
12
12
|
import pc from "picocolors";
|
|
13
|
-
|
|
14
13
|
//#region src/lib/error.ts
|
|
15
14
|
var AnyError = class extends Error {
|
|
16
15
|
constructor(message, cause) {
|
|
17
16
|
super(message, { cause });
|
|
17
|
+
this.name = "AnyError";
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
|
|
21
20
|
//#endregion
|
|
22
21
|
//#region src/core/domain/action/errorCode.ts
|
|
23
22
|
const ActionErrorCode = {
|
|
@@ -29,7 +28,6 @@ const ActionErrorCode = {
|
|
|
29
28
|
AcEmptyActionName: "AC_EMPTY_ACTION_NAME",
|
|
30
29
|
AcDuplicateIndex: "AC_DUPLICATE_INDEX"
|
|
31
30
|
};
|
|
32
|
-
|
|
33
31
|
//#endregion
|
|
34
32
|
//#region src/core/domain/adminNotes/errorCode.ts
|
|
35
33
|
const AdminNotesErrorCode = {
|
|
@@ -37,7 +35,6 @@ const AdminNotesErrorCode = {
|
|
|
37
35
|
AnInvalidConfigYaml: "AN_INVALID_CONFIG_YAML",
|
|
38
36
|
AnInvalidConfigStructure: "AN_INVALID_CONFIG_STRUCTURE"
|
|
39
37
|
};
|
|
40
|
-
|
|
41
38
|
//#endregion
|
|
42
39
|
//#region src/core/domain/appPermission/errorCode.ts
|
|
43
40
|
const AppPermissionErrorCode = {
|
|
@@ -49,7 +46,6 @@ const AppPermissionErrorCode = {
|
|
|
49
46
|
ApEmptyEntityCode: "AP_EMPTY_ENTITY_CODE",
|
|
50
47
|
ApDuplicateEntity: "AP_DUPLICATE_ENTITY"
|
|
51
48
|
};
|
|
52
|
-
|
|
53
49
|
//#endregion
|
|
54
50
|
//#region src/core/domain/customization/errorCode.ts
|
|
55
51
|
const CustomizationErrorCode = {
|
|
@@ -60,7 +56,6 @@ const CustomizationErrorCode = {
|
|
|
60
56
|
CzInvalidResourceType: "CZ_INVALID_RESOURCE_TYPE",
|
|
61
57
|
CzTooManyFiles: "CZ_TOO_MANY_FILES"
|
|
62
58
|
};
|
|
63
|
-
|
|
64
59
|
//#endregion
|
|
65
60
|
//#region src/core/domain/fieldPermission/errorCode.ts
|
|
66
61
|
const FieldPermissionErrorCode = {
|
|
@@ -74,7 +69,6 @@ const FieldPermissionErrorCode = {
|
|
|
74
69
|
FpEmptyEntityCode: "FP_EMPTY_ENTITY_CODE",
|
|
75
70
|
FpDuplicateFieldCode: "FP_DUPLICATE_FIELD_CODE"
|
|
76
71
|
};
|
|
77
|
-
|
|
78
72
|
//#endregion
|
|
79
73
|
//#region src/core/domain/formSchema/errorCode.ts
|
|
80
74
|
const FormSchemaErrorCode = {
|
|
@@ -89,7 +83,6 @@ const FormSchemaErrorCode = {
|
|
|
89
83
|
FsInvalidDecorationElement: "FS_INVALID_DECORATION_ELEMENT",
|
|
90
84
|
FsEmptyFields: "FS_EMPTY_FIELDS"
|
|
91
85
|
};
|
|
92
|
-
|
|
93
86
|
//#endregion
|
|
94
87
|
//#region src/core/domain/generalSettings/errorCode.ts
|
|
95
88
|
const GeneralSettingsErrorCode = {
|
|
@@ -101,7 +94,6 @@ const GeneralSettingsErrorCode = {
|
|
|
101
94
|
GsInvalidBooleanField: "GS_INVALID_BOOLEAN_FIELD",
|
|
102
95
|
GsInvalidNumberPrecision: "GS_INVALID_NUMBER_PRECISION"
|
|
103
96
|
};
|
|
104
|
-
|
|
105
97
|
//#endregion
|
|
106
98
|
//#region src/core/domain/notification/errorCode.ts
|
|
107
99
|
const NotificationErrorCode = {
|
|
@@ -115,7 +107,6 @@ const NotificationErrorCode = {
|
|
|
115
107
|
NtInvalidHoursLater: "NT_INVALID_HOURS_LATER",
|
|
116
108
|
NtInvalidDaysLater: "NT_INVALID_DAYS_LATER"
|
|
117
109
|
};
|
|
118
|
-
|
|
119
110
|
//#endregion
|
|
120
111
|
//#region src/core/domain/plugin/errorCode.ts
|
|
121
112
|
const PluginErrorCode = {
|
|
@@ -125,7 +116,6 @@ const PluginErrorCode = {
|
|
|
125
116
|
PlEmptyPluginId: "PL_EMPTY_PLUGIN_ID",
|
|
126
117
|
PlDuplicatePluginId: "PL_DUPLICATE_PLUGIN_ID"
|
|
127
118
|
};
|
|
128
|
-
|
|
129
119
|
//#endregion
|
|
130
120
|
//#region src/core/domain/processManagement/errorCode.ts
|
|
131
121
|
const ProcessManagementErrorCode = {
|
|
@@ -138,7 +128,6 @@ const ProcessManagementErrorCode = {
|
|
|
138
128
|
PmInvalidActionReference: "PM_INVALID_ACTION_REFERENCE",
|
|
139
129
|
PmDuplicateActionName: "PM_DUPLICATE_ACTION_NAME"
|
|
140
130
|
};
|
|
141
|
-
|
|
142
131
|
//#endregion
|
|
143
132
|
//#region src/core/domain/projectConfig/errorCode.ts
|
|
144
133
|
const ProjectConfigErrorCode = {
|
|
@@ -151,7 +140,6 @@ const ProjectConfigErrorCode = {
|
|
|
151
140
|
PcInvalidConfigStructure: "PC_INVALID_CONFIG_STRUCTURE",
|
|
152
141
|
PcInvalidAuthConfig: "PC_INVALID_AUTH_CONFIG"
|
|
153
142
|
};
|
|
154
|
-
|
|
155
143
|
//#endregion
|
|
156
144
|
//#region src/core/domain/recordPermission/errorCode.ts
|
|
157
145
|
const RecordPermissionErrorCode = {
|
|
@@ -163,7 +151,6 @@ const RecordPermissionErrorCode = {
|
|
|
163
151
|
RpInvalidPermissionValue: "RP_INVALID_PERMISSION_VALUE",
|
|
164
152
|
RpDuplicateEntity: "RP_DUPLICATE_ENTITY"
|
|
165
153
|
};
|
|
166
|
-
|
|
167
154
|
//#endregion
|
|
168
155
|
//#region src/core/domain/report/errorCode.ts
|
|
169
156
|
const ReportErrorCode = {
|
|
@@ -174,7 +161,6 @@ const ReportErrorCode = {
|
|
|
174
161
|
RtInvalidChartMode: "RT_INVALID_CHART_MODE",
|
|
175
162
|
RtEmptyReportName: "RT_EMPTY_REPORT_NAME"
|
|
176
163
|
};
|
|
177
|
-
|
|
178
164
|
//#endregion
|
|
179
165
|
//#region src/core/domain/seedData/errorCode.ts
|
|
180
166
|
const SeedDataErrorCode = {
|
|
@@ -186,11 +172,9 @@ const SeedDataErrorCode = {
|
|
|
186
172
|
SdMissingKeyField: "SD_MISSING_KEY_FIELD",
|
|
187
173
|
SdInvalidKeyFieldValue: "SD_INVALID_KEY_FIELD_VALUE"
|
|
188
174
|
};
|
|
189
|
-
|
|
190
175
|
//#endregion
|
|
191
176
|
//#region src/core/domain/services/errorCode.ts
|
|
192
177
|
const DomainServiceErrorCode = { YamlSerializationFailed: "DS_YAML_SERIALIZATION_FAILED" };
|
|
193
|
-
|
|
194
178
|
//#endregion
|
|
195
179
|
//#region src/core/domain/view/errorCode.ts
|
|
196
180
|
const ViewErrorCode = {
|
|
@@ -202,10 +186,7 @@ const ViewErrorCode = {
|
|
|
202
186
|
VwEmptyViewName: "VW_EMPTY_VIEW_NAME",
|
|
203
187
|
VwInvalidIndex: "VW_INVALID_INDEX"
|
|
204
188
|
};
|
|
205
|
-
|
|
206
|
-
//#endregion
|
|
207
|
-
//#region src/core/domain/error.ts
|
|
208
|
-
const BusinessRuleErrorCode = {
|
|
189
|
+
({
|
|
209
190
|
...ActionErrorCode,
|
|
210
191
|
...AdminNotesErrorCode,
|
|
211
192
|
...AppPermissionErrorCode,
|
|
@@ -222,7 +203,7 @@ const BusinessRuleErrorCode = {
|
|
|
222
203
|
...SeedDataErrorCode,
|
|
223
204
|
...DomainServiceErrorCode,
|
|
224
205
|
...ViewErrorCode
|
|
225
|
-
};
|
|
206
|
+
});
|
|
226
207
|
/**
|
|
227
208
|
* Domain Layer - Business Rule Error
|
|
228
209
|
*
|
|
@@ -239,7 +220,6 @@ var BusinessRuleError = class extends AnyError {
|
|
|
239
220
|
function isBusinessRuleError(error) {
|
|
240
221
|
return error instanceof BusinessRuleError;
|
|
241
222
|
}
|
|
242
|
-
|
|
243
223
|
//#endregion
|
|
244
224
|
//#region src/core/application/error.ts
|
|
245
225
|
/**
|
|
@@ -346,7 +326,6 @@ var SystemError = class extends ApplicationError {
|
|
|
346
326
|
function isSystemError(error) {
|
|
347
327
|
return error instanceof SystemError;
|
|
348
328
|
}
|
|
349
|
-
|
|
350
329
|
//#endregion
|
|
351
330
|
//#region src/core/application/applyFromConfigBase.ts
|
|
352
331
|
async function applyFromConfig(config) {
|
|
@@ -356,19 +335,21 @@ async function applyFromConfig(config) {
|
|
|
356
335
|
const remote = await config.fetchRemote();
|
|
357
336
|
await config.update(parsed, remote);
|
|
358
337
|
}
|
|
359
|
-
|
|
360
338
|
//#endregion
|
|
361
339
|
//#region src/lib/typeGuards.ts
|
|
362
340
|
/**
|
|
363
|
-
* Narrows `unknown` to
|
|
364
|
-
* Returns true when the value is a non-null, non-array
|
|
365
|
-
*
|
|
366
|
-
*
|
|
341
|
+
* Narrows `unknown` to `Record<string, unknown>`.
|
|
342
|
+
* Returns true when the value is a non-null, non-array object that is not
|
|
343
|
+
* one of the explicitly excluded built-in types (Date, RegExp, Map, Set).
|
|
344
|
+
*
|
|
345
|
+
* Note: Custom class instances (e.g. `new Foo()`, `new Error()`) and
|
|
346
|
+
* prototype-less objects (`Object.create(null)`) also pass this guard.
|
|
347
|
+
* When combined with `Object.keys()`, only own enumerable string-keyed
|
|
348
|
+
* properties are visible; inherited enumerable properties are not included.
|
|
367
349
|
*/
|
|
368
350
|
function isRecord(value) {
|
|
369
351
|
return typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof Date) && !(value instanceof RegExp) && !(value instanceof Map) && !(value instanceof Set);
|
|
370
352
|
}
|
|
371
|
-
|
|
372
353
|
//#endregion
|
|
373
354
|
//#region src/core/domain/typeGuards.ts
|
|
374
355
|
/**
|
|
@@ -432,7 +413,6 @@ function parseEntityBase(raw, index, validTypes, errorCodes, options) {
|
|
|
432
413
|
code: raw.code
|
|
433
414
|
};
|
|
434
415
|
}
|
|
435
|
-
|
|
436
416
|
//#endregion
|
|
437
417
|
//#region src/core/domain/services/yamlConfigParser.ts
|
|
438
418
|
function parseYamlConfig(rawText, errorCodes, domainLabel) {
|
|
@@ -446,24 +426,18 @@ function parseYamlConfig(rawText, errorCodes, domainLabel) {
|
|
|
446
426
|
if (!isRecord(parsed)) throw new BusinessRuleError(errorCodes.invalidConfigStructure, `${domainLabel} config must be a YAML object`);
|
|
447
427
|
return parsed;
|
|
448
428
|
}
|
|
449
|
-
|
|
450
|
-
//#endregion
|
|
451
|
-
//#region src/core/domain/action/valueObject.ts
|
|
452
|
-
const SRC_TYPES = ["FIELD", "RECORD_URL"];
|
|
453
|
-
const VALID_SRC_TYPES = new Set(SRC_TYPES);
|
|
429
|
+
const VALID_SRC_TYPES = new Set(["FIELD", "RECORD_URL"]);
|
|
454
430
|
function isActionMappingSrcType(value) {
|
|
455
431
|
return VALID_SRC_TYPES.has(value);
|
|
456
432
|
}
|
|
457
|
-
const
|
|
433
|
+
const VALID_ENTITY_TYPES$9 = new Set([
|
|
458
434
|
"USER",
|
|
459
435
|
"GROUP",
|
|
460
436
|
"ORGANIZATION"
|
|
461
|
-
];
|
|
462
|
-
const VALID_ENTITY_TYPES$9 = new Set(ENTITY_TYPES$1);
|
|
437
|
+
]);
|
|
463
438
|
function isActionEntityType(value) {
|
|
464
439
|
return VALID_ENTITY_TYPES$9.has(value);
|
|
465
440
|
}
|
|
466
|
-
|
|
467
441
|
//#endregion
|
|
468
442
|
//#region src/core/domain/action/services/configParser.ts
|
|
469
443
|
function parseDestApp(raw, actionName) {
|
|
@@ -532,13 +506,11 @@ const ActionConfigParser = { parse: (rawText) => {
|
|
|
532
506
|
}
|
|
533
507
|
return { actions };
|
|
534
508
|
} };
|
|
535
|
-
|
|
536
509
|
//#endregion
|
|
537
510
|
//#region src/core/application/action/parseConfig.ts
|
|
538
511
|
function parseActionConfigText(rawText) {
|
|
539
512
|
return wrapBusinessRuleError(() => ActionConfigParser.parse(rawText));
|
|
540
513
|
}
|
|
541
|
-
|
|
542
514
|
//#endregion
|
|
543
515
|
//#region src/core/application/action/applyAction.ts
|
|
544
516
|
async function applyAction({ container }) {
|
|
@@ -555,7 +527,6 @@ async function applyAction({ container }) {
|
|
|
555
527
|
notFoundMessage: "Action config file not found"
|
|
556
528
|
});
|
|
557
529
|
}
|
|
558
|
-
|
|
559
530
|
//#endregion
|
|
560
531
|
//#region src/core/adapters/kintone/wrapKintoneError.ts
|
|
561
532
|
const KINTONE_REVISION_CONFLICT_CODE = "GAIA_CO02";
|
|
@@ -609,7 +580,6 @@ function wrapKintoneError(error, message) {
|
|
|
609
580
|
}
|
|
610
581
|
throw new SystemError(SystemErrorCode.ExternalApiError, detail, error);
|
|
611
582
|
}
|
|
612
|
-
|
|
613
583
|
//#endregion
|
|
614
584
|
//#region src/core/adapters/kintone/actionConfigurator.ts
|
|
615
585
|
function fromKintoneDestApp(raw) {
|
|
@@ -713,7 +683,6 @@ var KintoneActionConfigurator = class {
|
|
|
713
683
|
}
|
|
714
684
|
}
|
|
715
685
|
};
|
|
716
|
-
|
|
717
686
|
//#endregion
|
|
718
687
|
//#region src/core/adapters/kintone/appDeployer.ts
|
|
719
688
|
const VALID_DEPLOY_STATUSES = new Set([
|
|
@@ -779,13 +748,11 @@ var KintoneAppDeployer = class {
|
|
|
779
748
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
780
749
|
}
|
|
781
750
|
};
|
|
782
|
-
|
|
783
751
|
//#endregion
|
|
784
752
|
//#region src/lib/nodeError.ts
|
|
785
753
|
function isNodeError(error) {
|
|
786
|
-
return error instanceof Error && "code" in error;
|
|
754
|
+
return error instanceof Error && "code" in error && typeof error.code === "string";
|
|
787
755
|
}
|
|
788
|
-
|
|
789
756
|
//#endregion
|
|
790
757
|
//#region src/core/adapters/local/storage.ts
|
|
791
758
|
function createLocalFileStorage(filePath, label = "file") {
|
|
@@ -811,31 +778,23 @@ function createLocalFileStorage(filePath, label = "file") {
|
|
|
811
778
|
}
|
|
812
779
|
};
|
|
813
780
|
}
|
|
814
|
-
|
|
815
781
|
//#endregion
|
|
816
782
|
//#region src/core/adapters/local/actionStorage.ts
|
|
817
783
|
function createLocalFileActionStorage(filePath) {
|
|
818
784
|
return createLocalFileStorage(filePath, "action file");
|
|
819
785
|
}
|
|
820
|
-
|
|
821
|
-
//#endregion
|
|
822
|
-
//#region src/core/domain/customization/valueObject.ts
|
|
823
|
-
const SCOPES = [
|
|
786
|
+
const VALID_SCOPES = new Set([
|
|
824
787
|
"ALL",
|
|
825
788
|
"ADMIN",
|
|
826
789
|
"NONE"
|
|
827
|
-
];
|
|
828
|
-
const VALID_SCOPES = new Set(SCOPES);
|
|
790
|
+
]);
|
|
829
791
|
function isCustomizationScope(value) {
|
|
830
792
|
return VALID_SCOPES.has(value);
|
|
831
793
|
}
|
|
832
|
-
const
|
|
833
|
-
const VALID_RESOURCE_TYPES = new Set(RESOURCE_TYPES);
|
|
794
|
+
const VALID_RESOURCE_TYPES = new Set(["FILE", "URL"]);
|
|
834
795
|
function isResourceType(value) {
|
|
835
796
|
return VALID_RESOURCE_TYPES.has(value);
|
|
836
797
|
}
|
|
837
|
-
const DEFAULT_CUSTOMIZATION_SCOPE = "ALL";
|
|
838
|
-
|
|
839
798
|
//#endregion
|
|
840
799
|
//#region src/core/adapters/kintone/customizationConfigurator.ts
|
|
841
800
|
function fromKintoneResource(raw) {
|
|
@@ -924,7 +883,6 @@ var KintoneCustomizationConfigurator = class {
|
|
|
924
883
|
}
|
|
925
884
|
}
|
|
926
885
|
};
|
|
927
|
-
|
|
928
886
|
//#endregion
|
|
929
887
|
//#region src/core/adapters/kintone/fileDownloader.ts
|
|
930
888
|
var KintoneFileDownloader = class {
|
|
@@ -940,7 +898,6 @@ var KintoneFileDownloader = class {
|
|
|
940
898
|
}
|
|
941
899
|
}
|
|
942
900
|
};
|
|
943
|
-
|
|
944
901
|
//#endregion
|
|
945
902
|
//#region src/lib/safePath.ts
|
|
946
903
|
/**
|
|
@@ -987,7 +944,6 @@ function isSafePath(targetPath, baseDir) {
|
|
|
987
944
|
}
|
|
988
945
|
return resolvedTarget.startsWith(`${resolvedBase}/`) || resolvedTarget === resolvedBase;
|
|
989
946
|
}
|
|
990
|
-
|
|
991
947
|
//#endregion
|
|
992
948
|
//#region src/core/adapters/kintone/fileUploader.ts
|
|
993
949
|
var KintoneFileUploader = class {
|
|
@@ -1006,7 +962,6 @@ var KintoneFileUploader = class {
|
|
|
1006
962
|
}
|
|
1007
963
|
}
|
|
1008
964
|
};
|
|
1009
|
-
|
|
1010
965
|
//#endregion
|
|
1011
966
|
//#region src/lib/charValidation.ts
|
|
1012
967
|
/** Returns true if the string contains any control characters (0x00–0x1f or 0x7f). */
|
|
@@ -1027,7 +982,6 @@ function sanitizeForDisplay$1(s) {
|
|
|
1027
982
|
}
|
|
1028
983
|
return result;
|
|
1029
984
|
}
|
|
1030
|
-
|
|
1031
985
|
//#endregion
|
|
1032
986
|
//#region src/core/domain/formSchema/valueObject.ts
|
|
1033
987
|
function hasInvalidFieldCodeChars(code) {
|
|
@@ -1043,7 +997,6 @@ const FieldCode = { create: (code) => {
|
|
|
1043
997
|
if (hasInvalidFieldCodeChars(code)) throw new BusinessRuleError(FormSchemaErrorCode.FsInvalidFieldCode, `Field code "${sanitizeForDisplay$1(code)}" contains invalid characters`);
|
|
1044
998
|
return code;
|
|
1045
999
|
} };
|
|
1046
|
-
|
|
1047
1000
|
//#endregion
|
|
1048
1001
|
//#region src/core/adapters/kintone/formConfigurator.ts
|
|
1049
1002
|
const KNOWN_FIELD_TYPES = new Set([
|
|
@@ -1453,7 +1406,6 @@ var KintoneFormConfigurator = class {
|
|
|
1453
1406
|
}
|
|
1454
1407
|
}
|
|
1455
1408
|
};
|
|
1456
|
-
|
|
1457
1409
|
//#endregion
|
|
1458
1410
|
//#region src/core/adapters/kintone/recordConverter.ts
|
|
1459
1411
|
const SYSTEM_FIELDS = new Set([
|
|
@@ -1544,7 +1496,6 @@ function fromKintoneRecord(record) {
|
|
|
1544
1496
|
}
|
|
1545
1497
|
return seedRecord;
|
|
1546
1498
|
}
|
|
1547
|
-
|
|
1548
1499
|
//#endregion
|
|
1549
1500
|
//#region src/core/adapters/kintone/recordManager.ts
|
|
1550
1501
|
function extractId(record) {
|
|
@@ -1616,13 +1567,11 @@ var KintoneRecordManager = class {
|
|
|
1616
1567
|
}
|
|
1617
1568
|
}
|
|
1618
1569
|
};
|
|
1619
|
-
|
|
1620
1570
|
//#endregion
|
|
1621
1571
|
//#region src/core/adapters/local/customizationStorage.ts
|
|
1622
1572
|
function createLocalFileCustomizationStorage(filePath) {
|
|
1623
1573
|
return createLocalFileStorage(filePath, "customization config file");
|
|
1624
1574
|
}
|
|
1625
|
-
|
|
1626
1575
|
//#endregion
|
|
1627
1576
|
//#region src/core/adapters/local/fileWriter.ts
|
|
1628
1577
|
var LocalFileWriter = class {
|
|
@@ -1640,19 +1589,16 @@ var LocalFileWriter = class {
|
|
|
1640
1589
|
}
|
|
1641
1590
|
}
|
|
1642
1591
|
};
|
|
1643
|
-
|
|
1644
1592
|
//#endregion
|
|
1645
1593
|
//#region src/core/adapters/local/schemaStorage.ts
|
|
1646
1594
|
function createLocalFileSchemaStorage(filePath) {
|
|
1647
1595
|
return createLocalFileStorage(filePath, "schema file");
|
|
1648
1596
|
}
|
|
1649
|
-
|
|
1650
1597
|
//#endregion
|
|
1651
1598
|
//#region src/core/adapters/local/seedStorage.ts
|
|
1652
1599
|
function createLocalFileSeedStorage(filePath) {
|
|
1653
1600
|
return createLocalFileStorage(filePath, "seed file");
|
|
1654
1601
|
}
|
|
1655
|
-
|
|
1656
1602
|
//#endregion
|
|
1657
1603
|
//#region src/core/application/container/cli.ts
|
|
1658
1604
|
function buildKintoneAuth(auth) {
|
|
@@ -1687,7 +1633,6 @@ function createCustomizationCliContainer(config) {
|
|
|
1687
1633
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
1688
1634
|
};
|
|
1689
1635
|
}
|
|
1690
|
-
|
|
1691
1636
|
//#endregion
|
|
1692
1637
|
//#region src/core/application/container/kintoneClient.ts
|
|
1693
1638
|
function createKintoneClient(config) {
|
|
@@ -1697,7 +1642,6 @@ function createKintoneClient(config) {
|
|
|
1697
1642
|
guestSpaceId: config.guestSpaceId
|
|
1698
1643
|
});
|
|
1699
1644
|
}
|
|
1700
|
-
|
|
1701
1645
|
//#endregion
|
|
1702
1646
|
//#region src/core/application/container/actionCli.ts
|
|
1703
1647
|
function createActionCliContainer(config) {
|
|
@@ -1708,7 +1652,6 @@ function createActionCliContainer(config) {
|
|
|
1708
1652
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
1709
1653
|
};
|
|
1710
1654
|
}
|
|
1711
|
-
|
|
1712
1655
|
//#endregion
|
|
1713
1656
|
//#region src/cli/config.ts
|
|
1714
1657
|
const CliConfigSchema = v.object({
|
|
@@ -1827,14 +1770,12 @@ function resolveAuth(apiToken, username, password) {
|
|
|
1827
1770
|
};
|
|
1828
1771
|
throw new ValidationError(ValidationErrorCode.InvalidInput, "Missing required configuration:\n Either KINTONE_API_TOKEN or KINTONE_USERNAME/KINTONE_PASSWORD is required");
|
|
1829
1772
|
}
|
|
1830
|
-
|
|
1831
1773
|
//#endregion
|
|
1832
1774
|
//#region src/core/domain/projectConfig/entity.ts
|
|
1833
1775
|
const MultiAppResult = { create: (results) => ({
|
|
1834
1776
|
results,
|
|
1835
1777
|
hasFailure: results.some((r) => r.status === "failed")
|
|
1836
1778
|
}) };
|
|
1837
|
-
|
|
1838
1779
|
//#endregion
|
|
1839
1780
|
//#region src/core/application/projectConfig/executeMultiApp.ts
|
|
1840
1781
|
async function executeMultiApp(plan, executor) {
|
|
@@ -1865,7 +1806,6 @@ async function executeMultiApp(plan, executor) {
|
|
|
1865
1806
|
}
|
|
1866
1807
|
return MultiAppResult.create(results);
|
|
1867
1808
|
}
|
|
1868
|
-
|
|
1869
1809
|
//#endregion
|
|
1870
1810
|
//#region src/core/domain/projectConfig/valueObject.ts
|
|
1871
1811
|
const INVALID_APP_NAME_CHARS = new Set([
|
|
@@ -1890,7 +1830,6 @@ const AppName = { create: (name) => {
|
|
|
1890
1830
|
if (name === "." || name === "..") throw new BusinessRuleError(ProjectConfigErrorCode.PcInvalidAppName, `App name "${name}" is not allowed (reserved path component)`);
|
|
1891
1831
|
return name;
|
|
1892
1832
|
} };
|
|
1893
|
-
|
|
1894
1833
|
//#endregion
|
|
1895
1834
|
//#region src/core/domain/projectConfig/services/configParser.ts
|
|
1896
1835
|
function asOptionalString(value) {
|
|
@@ -1987,7 +1926,6 @@ function parseAuth(raw) {
|
|
|
1987
1926
|
throw new BusinessRuleError(ProjectConfigErrorCode.PcInvalidAuthConfig, "Auth must have either apiToken or username/password");
|
|
1988
1927
|
}
|
|
1989
1928
|
const ConfigParser = { parse: parseProjectConfig };
|
|
1990
|
-
|
|
1991
1929
|
//#endregion
|
|
1992
1930
|
//#region src/core/application/projectConfig/loadProjectConfig.ts
|
|
1993
1931
|
/**
|
|
@@ -2004,7 +1942,6 @@ function loadProjectConfig(input) {
|
|
|
2004
1942
|
}
|
|
2005
1943
|
return ConfigParser.parse(raw);
|
|
2006
1944
|
}
|
|
2007
|
-
|
|
2008
1945
|
//#endregion
|
|
2009
1946
|
//#region src/core/domain/projectConfig/services/dependencyResolver.ts
|
|
2010
1947
|
/**
|
|
@@ -2054,7 +1991,6 @@ function validateDependencyReferences(apps) {
|
|
|
2054
1991
|
for (const [name, entry] of apps) for (const dep of entry.dependsOn) if (!apps.has(dep)) throw new BusinessRuleError(ProjectConfigErrorCode.PcUnknownDependency, `App "${name}" depends on unknown app "${dep}"`);
|
|
2055
1992
|
}
|
|
2056
1993
|
const DependencyResolver = { resolve: resolveExecutionOrder };
|
|
2057
|
-
|
|
2058
1994
|
//#endregion
|
|
2059
1995
|
//#region src/core/application/projectConfig/resolveExecutionPlan.ts
|
|
2060
1996
|
function resolveExecutionPlan(input) {
|
|
@@ -2069,7 +2005,6 @@ function resolveSingleApp(config, appName) {
|
|
|
2069
2005
|
if (!entry) throw new NotFoundError(NotFoundErrorCode.AppNotFound, `App "${appName}" not found in project config`);
|
|
2070
2006
|
return { orderedApps: [entry] };
|
|
2071
2007
|
}
|
|
2072
|
-
|
|
2073
2008
|
//#endregion
|
|
2074
2009
|
//#region src/core/domain/projectConfig/appFilePaths.ts
|
|
2075
2010
|
function buildAppFilePaths(appName, baseDir) {
|
|
@@ -2091,7 +2026,6 @@ function buildAppFilePaths(appName, baseDir) {
|
|
|
2091
2026
|
plugin: prefix(`${appName}/plugin.yaml`)
|
|
2092
2027
|
};
|
|
2093
2028
|
}
|
|
2094
|
-
|
|
2095
2029
|
//#endregion
|
|
2096
2030
|
//#region src/cli/handleError.ts
|
|
2097
2031
|
/**
|
|
@@ -2238,7 +2172,6 @@ function hasObjectProperty(obj, key) {
|
|
|
2238
2172
|
function isApplicationError(error) {
|
|
2239
2173
|
return error instanceof ApplicationError;
|
|
2240
2174
|
}
|
|
2241
|
-
|
|
2242
2175
|
//#endregion
|
|
2243
2176
|
//#region src/cli/output.ts
|
|
2244
2177
|
function formatDiffSummary(summary) {
|
|
@@ -2371,7 +2304,6 @@ async function confirmAndDeploy(containers, skipConfirm, successMessage = "Deplo
|
|
|
2371
2304
|
}
|
|
2372
2305
|
p.log.success(successMessage);
|
|
2373
2306
|
}
|
|
2374
|
-
|
|
2375
2307
|
//#endregion
|
|
2376
2308
|
//#region src/cli/projectConfig.ts
|
|
2377
2309
|
const DEFAULT_CONFIG_PATH = "kintone-migrator.yaml";
|
|
@@ -2383,7 +2315,7 @@ function validateExclusiveArgs(values) {
|
|
|
2383
2315
|
async function resolveTarget(values) {
|
|
2384
2316
|
validateExclusiveArgs(values);
|
|
2385
2317
|
if (values["app-id"]) return { mode: "single-legacy" };
|
|
2386
|
-
const configPath = values.config ??
|
|
2318
|
+
const configPath = values.config ?? "kintone-migrator.yaml";
|
|
2387
2319
|
if (values.app || values.all) {
|
|
2388
2320
|
const config = loadProjectConfig({ content: await readConfigFile(configPath) });
|
|
2389
2321
|
const plan = resolveExecutionPlan({
|
|
@@ -2517,13 +2449,11 @@ async function readConfigFile(configPath) {
|
|
|
2517
2449
|
throw new ValidationError(ValidationErrorCode.InvalidInput, `Config file not found: ${configPath}`, cause);
|
|
2518
2450
|
}
|
|
2519
2451
|
}
|
|
2520
|
-
|
|
2521
2452
|
//#endregion
|
|
2522
2453
|
//#region src/cli/resolveFilePath.ts
|
|
2523
2454
|
function resolveFilePath(options) {
|
|
2524
2455
|
return options.cliValue ?? options.envVar ?? (options.app && options.appFileField?.(options.app)) ?? (options.app ? join(options.defaultDir, `${options.app.name}.yaml`) : options.defaultFileName);
|
|
2525
2456
|
}
|
|
2526
|
-
|
|
2527
2457
|
//#endregion
|
|
2528
2458
|
//#region src/cli/createDomainConfigResolver.ts
|
|
2529
2459
|
/**
|
|
@@ -2572,7 +2502,6 @@ function createDomainConfigResolver(options) {
|
|
|
2572
2502
|
resolveAppContainerConfig
|
|
2573
2503
|
};
|
|
2574
2504
|
}
|
|
2575
|
-
|
|
2576
2505
|
//#endregion
|
|
2577
2506
|
//#region src/cli/actionConfig.ts
|
|
2578
2507
|
const actionArgs = {
|
|
@@ -2594,7 +2523,6 @@ const { resolveFilePath: resolveActionFilePath, resolveContainerConfig: resolveA
|
|
|
2594
2523
|
actionFilePath: filePath
|
|
2595
2524
|
})
|
|
2596
2525
|
});
|
|
2597
|
-
|
|
2598
2526
|
//#endregion
|
|
2599
2527
|
//#region src/cli/commands/action/apply.ts
|
|
2600
2528
|
async function runAction(config) {
|
|
@@ -2641,7 +2569,6 @@ var apply_default$12 = define({
|
|
|
2641
2569
|
}
|
|
2642
2570
|
}
|
|
2643
2571
|
});
|
|
2644
|
-
|
|
2645
2572
|
//#endregion
|
|
2646
2573
|
//#region src/core/domain/services/yamlConfigSerializer.ts
|
|
2647
2574
|
function serializeToYaml(data) {
|
|
@@ -2655,7 +2582,6 @@ function serializeToYaml(data) {
|
|
|
2655
2582
|
throw new BusinessRuleError(DomainServiceErrorCode.YamlSerializationFailed, `Failed to serialize config to YAML: ${error instanceof Error ? error.message : String(error)}`, error);
|
|
2656
2583
|
}
|
|
2657
2584
|
}
|
|
2658
|
-
|
|
2659
2585
|
//#endregion
|
|
2660
2586
|
//#region src/core/domain/action/services/configSerializer.ts
|
|
2661
2587
|
function serializeDestApp(destApp) {
|
|
@@ -2694,7 +2620,6 @@ const ActionConfigSerializer = { serialize: (config) => {
|
|
|
2694
2620
|
serialized.actions = actions;
|
|
2695
2621
|
return serializeToYaml(serialized);
|
|
2696
2622
|
} };
|
|
2697
|
-
|
|
2698
2623
|
//#endregion
|
|
2699
2624
|
//#region src/core/application/captureFromConfigBase.ts
|
|
2700
2625
|
async function captureFromConfig(config) {
|
|
@@ -2704,7 +2629,6 @@ async function captureFromConfig(config) {
|
|
|
2704
2629
|
hasExistingConfig: (await config.getStorage()).exists
|
|
2705
2630
|
};
|
|
2706
2631
|
}
|
|
2707
|
-
|
|
2708
2632
|
//#endregion
|
|
2709
2633
|
//#region src/core/application/action/captureAction.ts
|
|
2710
2634
|
async function captureAction({ container }) {
|
|
@@ -2714,13 +2638,11 @@ async function captureAction({ container }) {
|
|
|
2714
2638
|
getStorage: () => container.actionStorage.get()
|
|
2715
2639
|
});
|
|
2716
2640
|
}
|
|
2717
|
-
|
|
2718
2641
|
//#endregion
|
|
2719
2642
|
//#region src/core/application/action/saveAction.ts
|
|
2720
2643
|
async function saveAction({ container, input }) {
|
|
2721
2644
|
await container.actionStorage.update(input.configText);
|
|
2722
2645
|
}
|
|
2723
|
-
|
|
2724
2646
|
//#endregion
|
|
2725
2647
|
//#region src/cli/commands/action/capture.ts
|
|
2726
2648
|
async function runCaptureAction(config) {
|
|
@@ -2763,91 +2685,134 @@ var capture_default$13 = define({
|
|
|
2763
2685
|
}
|
|
2764
2686
|
}
|
|
2765
2687
|
});
|
|
2766
|
-
|
|
2767
2688
|
//#endregion
|
|
2768
2689
|
//#region src/lib/deepEqual.ts
|
|
2769
|
-
function isArrayEqual(a, b,
|
|
2690
|
+
function isArrayEqual(a, b, stack) {
|
|
2770
2691
|
if (!Array.isArray(b)) return false;
|
|
2771
2692
|
if (a.length !== b.length) return false;
|
|
2772
|
-
for (let i = 0; i < a.length; i++) if (!deepEqualInner(a[i], b[i],
|
|
2693
|
+
for (let i = 0; i < a.length; i++) if (!deepEqualInner(a[i], b[i], stack)) return false;
|
|
2773
2694
|
return true;
|
|
2774
2695
|
}
|
|
2775
|
-
|
|
2696
|
+
/**
|
|
2697
|
+
* Compare two objects by own enumerable string keys (via `Object.keys`).
|
|
2698
|
+
*
|
|
2699
|
+
* Note: Custom class instances (e.g. `new Error()`) that pass `isRecord` are
|
|
2700
|
+
* accepted. Because `Error.prototype.message` is non-enumerable, two Error
|
|
2701
|
+
* objects with different messages will compare as equal. Callers should not
|
|
2702
|
+
* rely on this function for types with non-enumerable significant state.
|
|
2703
|
+
*/
|
|
2704
|
+
function isRecordEqual(a, b, stack) {
|
|
2705
|
+
if (!isRecord(b)) return false;
|
|
2776
2706
|
const keysA = Object.keys(a);
|
|
2777
2707
|
const keysB = Object.keys(b);
|
|
2778
2708
|
if (keysA.length !== keysB.length) return false;
|
|
2779
2709
|
for (const key of keysA) {
|
|
2780
2710
|
if (!Object.hasOwn(b, key)) return false;
|
|
2781
|
-
if (!deepEqualInner(a[key], b[key],
|
|
2711
|
+
if (!deepEqualInner(a[key], b[key], stack)) return false;
|
|
2782
2712
|
}
|
|
2783
2713
|
return true;
|
|
2784
2714
|
}
|
|
2785
|
-
|
|
2715
|
+
/**
|
|
2716
|
+
* Map keys are compared by reference (SameValueZero), not by deep equality.
|
|
2717
|
+
* Two Maps with structurally equal but referentially different object keys
|
|
2718
|
+
* will be considered unequal.
|
|
2719
|
+
*/
|
|
2720
|
+
function isMapEqual$1(a, b, stack) {
|
|
2786
2721
|
if (!(b instanceof Map)) return false;
|
|
2787
2722
|
if (a.size !== b.size) return false;
|
|
2788
2723
|
for (const [key, valA] of a) {
|
|
2789
2724
|
if (!b.has(key)) return false;
|
|
2790
|
-
if (!deepEqualInner(valA, b.get(key),
|
|
2725
|
+
if (!deepEqualInner(valA, b.get(key), stack)) return false;
|
|
2791
2726
|
}
|
|
2792
2727
|
return true;
|
|
2793
2728
|
}
|
|
2794
|
-
function
|
|
2729
|
+
function isPrimitiveSet(s) {
|
|
2730
|
+
for (const val of s) {
|
|
2731
|
+
if (val !== null && typeof val === "object") return false;
|
|
2732
|
+
if (typeof val === "function") return false;
|
|
2733
|
+
}
|
|
2734
|
+
return true;
|
|
2735
|
+
}
|
|
2736
|
+
function isSetEqual(a, b, stack) {
|
|
2795
2737
|
if (!(b instanceof Set)) return false;
|
|
2796
2738
|
if (a.size !== b.size) return false;
|
|
2739
|
+
if (isPrimitiveSet(a) && isPrimitiveSet(b)) {
|
|
2740
|
+
for (const val of a) if (!b.has(val)) return false;
|
|
2741
|
+
return true;
|
|
2742
|
+
}
|
|
2797
2743
|
const remaining = [...b];
|
|
2798
2744
|
for (const valA of a) {
|
|
2799
|
-
const
|
|
2745
|
+
const stackLen = stack.length;
|
|
2746
|
+
const idx = remaining.findIndex((valB) => {
|
|
2747
|
+
const result = deepEqualInner(valA, valB, stack);
|
|
2748
|
+
if (!result) stack.length = stackLen;
|
|
2749
|
+
return result;
|
|
2750
|
+
});
|
|
2800
2751
|
if (idx === -1) return false;
|
|
2801
2752
|
remaining.splice(idx, 1);
|
|
2802
2753
|
}
|
|
2803
2754
|
return true;
|
|
2804
2755
|
}
|
|
2805
|
-
function deepEqualInner(a, b,
|
|
2756
|
+
function deepEqualInner(a, b, stack) {
|
|
2806
2757
|
if (a === b) return true;
|
|
2758
|
+
if (typeof a === "number" && typeof b === "number" && Number.isNaN(a) && Number.isNaN(b)) return true;
|
|
2807
2759
|
if (a === null || b === null) return a === b;
|
|
2808
2760
|
if (typeof a !== typeof b) return false;
|
|
2809
2761
|
if (typeof a !== "object") return false;
|
|
2810
2762
|
const objA = a;
|
|
2811
2763
|
const objB = b;
|
|
2812
|
-
if (
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2764
|
+
if (objA instanceof Date && objB instanceof Date) {
|
|
2765
|
+
const ta = objA.getTime();
|
|
2766
|
+
const tb = objB.getTime();
|
|
2767
|
+
return ta === tb || Number.isNaN(ta) && Number.isNaN(tb);
|
|
2768
|
+
}
|
|
2817
2769
|
if (objA instanceof Date || objB instanceof Date) return false;
|
|
2818
2770
|
if (objA instanceof RegExp && objB instanceof RegExp) return String(objA) === String(objB);
|
|
2819
2771
|
if (objA instanceof RegExp || objB instanceof RegExp) return false;
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
|
|
2772
|
+
for (const [sa, sb] of stack) if (sa === objA && sb === objB) return true;
|
|
2773
|
+
stack.push([objA, objB]);
|
|
2774
|
+
try {
|
|
2775
|
+
if (Array.isArray(objA)) return isArrayEqual(objA, objB, stack);
|
|
2776
|
+
if (objA instanceof Map) return isMapEqual$1(objA, objB, stack);
|
|
2777
|
+
if (objB instanceof Map) return false;
|
|
2778
|
+
if (objA instanceof Set) return isSetEqual(objA, objB, stack);
|
|
2779
|
+
if (objB instanceof Set) return false;
|
|
2780
|
+
if (isRecord(objA)) return isRecordEqual(objA, objB, stack);
|
|
2781
|
+
return false;
|
|
2782
|
+
} finally {
|
|
2783
|
+
stack.pop();
|
|
2784
|
+
}
|
|
2826
2785
|
}
|
|
2827
2786
|
/**
|
|
2828
2787
|
* Deep equality comparison for structured data.
|
|
2829
2788
|
* Supports primitives, plain objects, arrays, Date, RegExp, Map, and Set.
|
|
2830
|
-
* Has circular reference protection via a WeakSet-based seen check (tracks both sides).
|
|
2831
2789
|
*
|
|
2832
2790
|
* Note: `{ a: undefined }` and `{}` are NOT considered equal. This differs from
|
|
2833
2791
|
* JSON.stringify behavior but is intentional — explicit undefined properties are
|
|
2834
2792
|
* semantically distinct from absent properties.
|
|
2835
2793
|
*
|
|
2836
2794
|
* Set comparison is order-independent: each element in one set is matched to an
|
|
2837
|
-
* element in the other using deep equality (O(n²)
|
|
2795
|
+
* element in the other using deep equality (O(n²) for non-primitive elements,
|
|
2796
|
+
* O(n) fast path for primitive-only sets).
|
|
2838
2797
|
*
|
|
2839
|
-
*
|
|
2840
|
-
*
|
|
2798
|
+
* Map keys are compared by reference (SameValueZero), not by deep equality.
|
|
2799
|
+
* Two Maps with structurally equal but referentially different object keys
|
|
2800
|
+
* will be considered unequal.
|
|
2841
2801
|
*
|
|
2842
|
-
*
|
|
2843
|
-
*
|
|
2844
|
-
*
|
|
2845
|
-
*
|
|
2802
|
+
* NaN handling: `deepEqual(NaN, NaN)` returns `true`. Invalid Date objects
|
|
2803
|
+
* (whose `getTime()` returns NaN) are also considered equal to each other.
|
|
2804
|
+
*
|
|
2805
|
+
* Signed zero: `-0` and `0` are considered equal (`-0 === 0` is `true`).
|
|
2806
|
+
*
|
|
2807
|
+
* Circular reference handling: uses a stack-based pair tracker. When the same
|
|
2808
|
+
* `(objA, objB)` pair is encountered again on the current comparison path,
|
|
2809
|
+
* structural equality is assumed to break the cycle. Shared references (DAG
|
|
2810
|
+
* structures) are correctly handled — the same sub-object appearing in multiple
|
|
2811
|
+
* properties does not cause false negatives.
|
|
2846
2812
|
*/
|
|
2847
2813
|
function deepEqual(a, b) {
|
|
2848
|
-
return deepEqualInner(a, b,
|
|
2814
|
+
return deepEqualInner(a, b, []);
|
|
2849
2815
|
}
|
|
2850
|
-
|
|
2851
2816
|
//#endregion
|
|
2852
2817
|
//#region src/core/domain/diff.ts
|
|
2853
2818
|
const typeOrder = {
|
|
@@ -2875,7 +2840,6 @@ function buildDiffResult(entries, warnings = []) {
|
|
|
2875
2840
|
warnings
|
|
2876
2841
|
};
|
|
2877
2842
|
}
|
|
2878
|
-
|
|
2879
2843
|
//#endregion
|
|
2880
2844
|
//#region src/core/domain/services/recordDiffDetector.ts
|
|
2881
2845
|
function detectRecordDiff(localRecord, remoteRecord, callbacks) {
|
|
@@ -2888,7 +2852,6 @@ function detectRecordDiff(localRecord, remoteRecord, callbacks) {
|
|
|
2888
2852
|
for (const [key, remoteValue] of Object.entries(remoteRecord)) if (!Object.hasOwn(localRecord, key)) entries.push(callbacks.onDeleted(key, remoteValue));
|
|
2889
2853
|
return entries;
|
|
2890
2854
|
}
|
|
2891
|
-
|
|
2892
2855
|
//#endregion
|
|
2893
2856
|
//#region src/core/domain/action/services/diffDetector.ts
|
|
2894
2857
|
function compareActions$1(local, remote) {
|
|
@@ -2926,7 +2889,6 @@ const ActionDiffDetector = { detect: (local, remote) => {
|
|
|
2926
2889
|
})
|
|
2927
2890
|
}));
|
|
2928
2891
|
} };
|
|
2929
|
-
|
|
2930
2892
|
//#endregion
|
|
2931
2893
|
//#region src/core/application/detectDiffBase.ts
|
|
2932
2894
|
async function detectDiffFromConfig(config) {
|
|
@@ -2935,7 +2897,6 @@ async function detectDiffFromConfig(config) {
|
|
|
2935
2897
|
const local = config.parseConfig(storageResult.content);
|
|
2936
2898
|
return config.detect(local, remote);
|
|
2937
2899
|
}
|
|
2938
|
-
|
|
2939
2900
|
//#endregion
|
|
2940
2901
|
//#region src/core/application/action/detectActionDiff.ts
|
|
2941
2902
|
async function detectActionDiff({ container }) {
|
|
@@ -2947,7 +2908,6 @@ async function detectActionDiff({ container }) {
|
|
|
2947
2908
|
notFoundMessage: "Action config file not found"
|
|
2948
2909
|
});
|
|
2949
2910
|
}
|
|
2950
|
-
|
|
2951
2911
|
//#endregion
|
|
2952
2912
|
//#region src/cli/commands/diffCommandFactory.ts
|
|
2953
2913
|
function createDiffCommand(config) {
|
|
@@ -2993,21 +2953,6 @@ function createDiffCommand(config) {
|
|
|
2993
2953
|
}
|
|
2994
2954
|
});
|
|
2995
2955
|
}
|
|
2996
|
-
|
|
2997
|
-
//#endregion
|
|
2998
|
-
//#region src/cli/commands/action/diff.ts
|
|
2999
|
-
var diff_default$12 = createDiffCommand({
|
|
3000
|
-
description: "Compare local action config with remote kintone app",
|
|
3001
|
-
args: actionArgs,
|
|
3002
|
-
spinnerMessage: "Comparing action settings...",
|
|
3003
|
-
multiAppSuccessMessage: "All action diffs completed successfully.",
|
|
3004
|
-
createContainer: createActionCliContainer,
|
|
3005
|
-
detectDiff: detectActionDiff,
|
|
3006
|
-
printResult: printActionDiffResult,
|
|
3007
|
-
resolveContainerConfig: resolveActionContainerConfig,
|
|
3008
|
-
resolveAppContainerConfig: resolveActionAppContainerConfig
|
|
3009
|
-
});
|
|
3010
|
-
|
|
3011
2956
|
//#endregion
|
|
3012
2957
|
//#region src/cli/commands/action/index.ts
|
|
3013
2958
|
var action_default = define({
|
|
@@ -3016,11 +2961,20 @@ var action_default = define({
|
|
|
3016
2961
|
subCommands: {
|
|
3017
2962
|
apply: apply_default$12,
|
|
3018
2963
|
capture: capture_default$13,
|
|
3019
|
-
diff:
|
|
2964
|
+
diff: createDiffCommand({
|
|
2965
|
+
description: "Compare local action config with remote kintone app",
|
|
2966
|
+
args: actionArgs,
|
|
2967
|
+
spinnerMessage: "Comparing action settings...",
|
|
2968
|
+
multiAppSuccessMessage: "All action diffs completed successfully.",
|
|
2969
|
+
createContainer: createActionCliContainer,
|
|
2970
|
+
detectDiff: detectActionDiff,
|
|
2971
|
+
printResult: printActionDiffResult,
|
|
2972
|
+
resolveContainerConfig: resolveActionContainerConfig,
|
|
2973
|
+
resolveAppContainerConfig: resolveActionAppContainerConfig
|
|
2974
|
+
})
|
|
3020
2975
|
},
|
|
3021
2976
|
run: () => {}
|
|
3022
2977
|
});
|
|
3023
|
-
|
|
3024
2978
|
//#endregion
|
|
3025
2979
|
//#region src/core/domain/adminNotes/services/configParser.ts
|
|
3026
2980
|
const AdminNotesConfigParser = { parse: (rawText) => {
|
|
@@ -3036,13 +2990,11 @@ const AdminNotesConfigParser = { parse: (rawText) => {
|
|
|
3036
2990
|
includeInTemplateAndDuplicates: parsed.includeInTemplateAndDuplicates
|
|
3037
2991
|
};
|
|
3038
2992
|
} };
|
|
3039
|
-
|
|
3040
2993
|
//#endregion
|
|
3041
2994
|
//#region src/core/application/adminNotes/parseConfig.ts
|
|
3042
2995
|
function parseAdminNotesConfigText(rawText) {
|
|
3043
2996
|
return wrapBusinessRuleError(() => AdminNotesConfigParser.parse(rawText));
|
|
3044
2997
|
}
|
|
3045
|
-
|
|
3046
2998
|
//#endregion
|
|
3047
2999
|
//#region src/core/application/adminNotes/applyAdminNotes.ts
|
|
3048
3000
|
async function applyAdminNotes({ container }) {
|
|
@@ -3059,7 +3011,6 @@ async function applyAdminNotes({ container }) {
|
|
|
3059
3011
|
notFoundMessage: "Admin notes config file not found"
|
|
3060
3012
|
});
|
|
3061
3013
|
}
|
|
3062
|
-
|
|
3063
3014
|
//#endregion
|
|
3064
3015
|
//#region src/core/adapters/kintone/adminNotesConfigurator.ts
|
|
3065
3016
|
var KintoneAdminNotesConfigurator = class {
|
|
@@ -3098,13 +3049,11 @@ var KintoneAdminNotesConfigurator = class {
|
|
|
3098
3049
|
}
|
|
3099
3050
|
}
|
|
3100
3051
|
};
|
|
3101
|
-
|
|
3102
3052
|
//#endregion
|
|
3103
3053
|
//#region src/core/adapters/local/adminNotesStorage.ts
|
|
3104
3054
|
function createLocalFileAdminNotesStorage(filePath) {
|
|
3105
3055
|
return createLocalFileStorage(filePath, "admin notes file");
|
|
3106
3056
|
}
|
|
3107
|
-
|
|
3108
3057
|
//#endregion
|
|
3109
3058
|
//#region src/core/application/container/adminNotesCli.ts
|
|
3110
3059
|
function createAdminNotesCliContainer(config) {
|
|
@@ -3115,7 +3064,6 @@ function createAdminNotesCliContainer(config) {
|
|
|
3115
3064
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
3116
3065
|
};
|
|
3117
3066
|
}
|
|
3118
|
-
|
|
3119
3067
|
//#endregion
|
|
3120
3068
|
//#region src/cli/adminNotesConfig.ts
|
|
3121
3069
|
const adminNotesArgs = {
|
|
@@ -3137,7 +3085,6 @@ const { resolveFilePath: resolveAdminNotesFilePath, resolveContainerConfig: reso
|
|
|
3137
3085
|
adminNotesFilePath: filePath
|
|
3138
3086
|
})
|
|
3139
3087
|
});
|
|
3140
|
-
|
|
3141
3088
|
//#endregion
|
|
3142
3089
|
//#region src/cli/commands/admin-notes/apply.ts
|
|
3143
3090
|
async function runAdminNotes(config) {
|
|
@@ -3184,7 +3131,6 @@ var apply_default$11 = define({
|
|
|
3184
3131
|
}
|
|
3185
3132
|
}
|
|
3186
3133
|
});
|
|
3187
|
-
|
|
3188
3134
|
//#endregion
|
|
3189
3135
|
//#region src/core/domain/adminNotes/services/configSerializer.ts
|
|
3190
3136
|
const AdminNotesConfigSerializer = { serialize: (config) => {
|
|
@@ -3193,7 +3139,6 @@ const AdminNotesConfigSerializer = { serialize: (config) => {
|
|
|
3193
3139
|
includeInTemplateAndDuplicates: config.includeInTemplateAndDuplicates
|
|
3194
3140
|
});
|
|
3195
3141
|
} };
|
|
3196
|
-
|
|
3197
3142
|
//#endregion
|
|
3198
3143
|
//#region src/core/application/adminNotes/captureAdminNotes.ts
|
|
3199
3144
|
async function captureAdminNotes({ container }) {
|
|
@@ -3203,13 +3148,11 @@ async function captureAdminNotes({ container }) {
|
|
|
3203
3148
|
getStorage: () => container.adminNotesStorage.get()
|
|
3204
3149
|
});
|
|
3205
3150
|
}
|
|
3206
|
-
|
|
3207
3151
|
//#endregion
|
|
3208
3152
|
//#region src/core/application/adminNotes/saveAdminNotes.ts
|
|
3209
3153
|
async function saveAdminNotes({ container, input }) {
|
|
3210
3154
|
await container.adminNotesStorage.update(input.configText);
|
|
3211
3155
|
}
|
|
3212
|
-
|
|
3213
3156
|
//#endregion
|
|
3214
3157
|
//#region src/cli/commands/admin-notes/capture.ts
|
|
3215
3158
|
async function runCaptureAdminNotes(config) {
|
|
@@ -3252,7 +3195,6 @@ var capture_default$12 = define({
|
|
|
3252
3195
|
}
|
|
3253
3196
|
}
|
|
3254
3197
|
});
|
|
3255
|
-
|
|
3256
3198
|
//#endregion
|
|
3257
3199
|
//#region src/core/domain/adminNotes/services/diffDetector.ts
|
|
3258
3200
|
function compareConfigs$2(local, remote) {
|
|
@@ -3272,7 +3214,6 @@ function compareConfigs$2(local, remote) {
|
|
|
3272
3214
|
const AdminNotesDiffDetector = { detect: (local, remote) => {
|
|
3273
3215
|
return buildDiffResult(compareConfigs$2(local, remote));
|
|
3274
3216
|
} };
|
|
3275
|
-
|
|
3276
3217
|
//#endregion
|
|
3277
3218
|
//#region src/core/application/adminNotes/detectAdminNotesDiff.ts
|
|
3278
3219
|
async function detectAdminNotesDiff({ container }) {
|
|
@@ -3284,21 +3225,6 @@ async function detectAdminNotesDiff({ container }) {
|
|
|
3284
3225
|
notFoundMessage: "Admin notes config file not found"
|
|
3285
3226
|
});
|
|
3286
3227
|
}
|
|
3287
|
-
|
|
3288
|
-
//#endregion
|
|
3289
|
-
//#region src/cli/commands/admin-notes/diff.ts
|
|
3290
|
-
var diff_default$11 = createDiffCommand({
|
|
3291
|
-
description: "Compare local admin notes config with remote kintone app",
|
|
3292
|
-
args: adminNotesArgs,
|
|
3293
|
-
spinnerMessage: "Comparing admin notes...",
|
|
3294
|
-
multiAppSuccessMessage: "All admin notes diffs completed successfully.",
|
|
3295
|
-
createContainer: createAdminNotesCliContainer,
|
|
3296
|
-
detectDiff: detectAdminNotesDiff,
|
|
3297
|
-
printResult: printAdminNotesDiffResult,
|
|
3298
|
-
resolveContainerConfig: resolveAdminNotesContainerConfig,
|
|
3299
|
-
resolveAppContainerConfig: resolveAdminNotesAppContainerConfig
|
|
3300
|
-
});
|
|
3301
|
-
|
|
3302
3228
|
//#endregion
|
|
3303
3229
|
//#region src/cli/commands/admin-notes/index.ts
|
|
3304
3230
|
var admin_notes_default = define({
|
|
@@ -3307,11 +3233,20 @@ var admin_notes_default = define({
|
|
|
3307
3233
|
subCommands: {
|
|
3308
3234
|
apply: apply_default$11,
|
|
3309
3235
|
capture: capture_default$12,
|
|
3310
|
-
diff:
|
|
3236
|
+
diff: createDiffCommand({
|
|
3237
|
+
description: "Compare local admin notes config with remote kintone app",
|
|
3238
|
+
args: adminNotesArgs,
|
|
3239
|
+
spinnerMessage: "Comparing admin notes...",
|
|
3240
|
+
multiAppSuccessMessage: "All admin notes diffs completed successfully.",
|
|
3241
|
+
createContainer: createAdminNotesCliContainer,
|
|
3242
|
+
detectDiff: detectAdminNotesDiff,
|
|
3243
|
+
printResult: printAdminNotesDiffResult,
|
|
3244
|
+
resolveContainerConfig: resolveAdminNotesContainerConfig,
|
|
3245
|
+
resolveAppContainerConfig: resolveAdminNotesAppContainerConfig
|
|
3246
|
+
})
|
|
3311
3247
|
},
|
|
3312
3248
|
run: () => {}
|
|
3313
3249
|
});
|
|
3314
|
-
|
|
3315
3250
|
//#endregion
|
|
3316
3251
|
//#region src/core/domain/appPermission/services/configParser.ts
|
|
3317
3252
|
const VALID_ENTITY_TYPES$8 = new Set([
|
|
@@ -3357,13 +3292,11 @@ const AppPermissionConfigParser = { parse: (rawText) => {
|
|
|
3357
3292
|
}
|
|
3358
3293
|
return { rights };
|
|
3359
3294
|
} };
|
|
3360
|
-
|
|
3361
3295
|
//#endregion
|
|
3362
3296
|
//#region src/core/application/appPermission/parseConfig.ts
|
|
3363
3297
|
function parseAppPermissionConfigText(rawText) {
|
|
3364
3298
|
return wrapBusinessRuleError(() => AppPermissionConfigParser.parse(rawText));
|
|
3365
3299
|
}
|
|
3366
|
-
|
|
3367
3300
|
//#endregion
|
|
3368
3301
|
//#region src/core/application/appPermission/applyAppPermission.ts
|
|
3369
3302
|
async function applyAppPermission({ container }) {
|
|
@@ -3380,7 +3313,6 @@ async function applyAppPermission({ container }) {
|
|
|
3380
3313
|
notFoundMessage: "App permission config file not found"
|
|
3381
3314
|
});
|
|
3382
3315
|
}
|
|
3383
|
-
|
|
3384
3316
|
//#endregion
|
|
3385
3317
|
//#region src/core/adapters/kintone/appPermissionConfigurator.ts
|
|
3386
3318
|
const VALID_ENTITY_TYPES$7 = new Set([
|
|
@@ -3461,13 +3393,11 @@ var KintoneAppPermissionConfigurator = class {
|
|
|
3461
3393
|
}
|
|
3462
3394
|
}
|
|
3463
3395
|
};
|
|
3464
|
-
|
|
3465
3396
|
//#endregion
|
|
3466
3397
|
//#region src/core/adapters/local/appPermissionStorage.ts
|
|
3467
3398
|
function createLocalFileAppPermissionStorage(filePath) {
|
|
3468
3399
|
return createLocalFileStorage(filePath, "app permission file");
|
|
3469
3400
|
}
|
|
3470
|
-
|
|
3471
3401
|
//#endregion
|
|
3472
3402
|
//#region src/core/application/container/appPermissionCli.ts
|
|
3473
3403
|
function createAppPermissionCliContainer(config) {
|
|
@@ -3478,7 +3408,6 @@ function createAppPermissionCliContainer(config) {
|
|
|
3478
3408
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
3479
3409
|
};
|
|
3480
3410
|
}
|
|
3481
|
-
|
|
3482
3411
|
//#endregion
|
|
3483
3412
|
//#region src/cli/appAclConfig.ts
|
|
3484
3413
|
const appAclArgs = {
|
|
@@ -3500,7 +3429,6 @@ const { resolveFilePath: resolveAppAclFilePath, resolveContainerConfig: resolveA
|
|
|
3500
3429
|
appAclFilePath: filePath
|
|
3501
3430
|
})
|
|
3502
3431
|
});
|
|
3503
|
-
|
|
3504
3432
|
//#endregion
|
|
3505
3433
|
//#region src/cli/commands/app-acl/apply.ts
|
|
3506
3434
|
async function runAppAcl(config) {
|
|
@@ -3547,7 +3475,6 @@ var apply_default$10 = define({
|
|
|
3547
3475
|
}
|
|
3548
3476
|
}
|
|
3549
3477
|
});
|
|
3550
|
-
|
|
3551
3478
|
//#endregion
|
|
3552
3479
|
//#region src/core/domain/appPermission/services/configSerializer.ts
|
|
3553
3480
|
function serializeAppRight(right) {
|
|
@@ -3569,7 +3496,6 @@ function serializeAppRight(right) {
|
|
|
3569
3496
|
const AppPermissionConfigSerializer = { serialize: (config) => {
|
|
3570
3497
|
return serializeToYaml({ rights: config.rights.map(serializeAppRight) });
|
|
3571
3498
|
} };
|
|
3572
|
-
|
|
3573
3499
|
//#endregion
|
|
3574
3500
|
//#region src/core/application/appPermission/captureAppPermission.ts
|
|
3575
3501
|
async function captureAppPermission({ container }) {
|
|
@@ -3579,13 +3505,11 @@ async function captureAppPermission({ container }) {
|
|
|
3579
3505
|
getStorage: () => container.appPermissionStorage.get()
|
|
3580
3506
|
});
|
|
3581
3507
|
}
|
|
3582
|
-
|
|
3583
3508
|
//#endregion
|
|
3584
3509
|
//#region src/core/application/appPermission/saveAppPermission.ts
|
|
3585
3510
|
async function saveAppPermission({ container, input }) {
|
|
3586
3511
|
await container.appPermissionStorage.update(input.configText);
|
|
3587
3512
|
}
|
|
3588
|
-
|
|
3589
3513
|
//#endregion
|
|
3590
3514
|
//#region src/cli/commands/app-acl/capture.ts
|
|
3591
3515
|
async function runCaptureAppAcl(config) {
|
|
@@ -3628,7 +3552,6 @@ var capture_default$11 = define({
|
|
|
3628
3552
|
}
|
|
3629
3553
|
}
|
|
3630
3554
|
});
|
|
3631
|
-
|
|
3632
3555
|
//#endregion
|
|
3633
3556
|
//#region src/core/domain/appPermission/services/diffDetector.ts
|
|
3634
3557
|
const BOOLEAN_FLAGS = [
|
|
@@ -3680,7 +3603,6 @@ const AppPermissionDiffDetector = { detect: (local, remote) => {
|
|
|
3680
3603
|
});
|
|
3681
3604
|
return buildDiffResult(entries);
|
|
3682
3605
|
} };
|
|
3683
|
-
|
|
3684
3606
|
//#endregion
|
|
3685
3607
|
//#region src/core/application/appPermission/detectAppPermissionDiff.ts
|
|
3686
3608
|
async function detectAppPermissionDiff({ container }) {
|
|
@@ -3692,21 +3614,6 @@ async function detectAppPermissionDiff({ container }) {
|
|
|
3692
3614
|
notFoundMessage: "App permission config file not found"
|
|
3693
3615
|
});
|
|
3694
3616
|
}
|
|
3695
|
-
|
|
3696
|
-
//#endregion
|
|
3697
|
-
//#region src/cli/commands/app-acl/diff.ts
|
|
3698
|
-
var diff_default$10 = createDiffCommand({
|
|
3699
|
-
description: "Compare local app permission config with remote kintone app",
|
|
3700
|
-
args: appAclArgs,
|
|
3701
|
-
spinnerMessage: "Comparing app permissions...",
|
|
3702
|
-
multiAppSuccessMessage: "All app permission diffs completed successfully.",
|
|
3703
|
-
createContainer: createAppPermissionCliContainer,
|
|
3704
|
-
detectDiff: detectAppPermissionDiff,
|
|
3705
|
-
printResult: printAppPermissionDiffResult,
|
|
3706
|
-
resolveContainerConfig: resolveAppAclContainerConfig,
|
|
3707
|
-
resolveAppContainerConfig: resolveAppAclAppContainerConfig
|
|
3708
|
-
});
|
|
3709
|
-
|
|
3710
3617
|
//#endregion
|
|
3711
3618
|
//#region src/cli/commands/app-acl/index.ts
|
|
3712
3619
|
var app_acl_default = define({
|
|
@@ -3715,11 +3622,20 @@ var app_acl_default = define({
|
|
|
3715
3622
|
subCommands: {
|
|
3716
3623
|
apply: apply_default$10,
|
|
3717
3624
|
capture: capture_default$11,
|
|
3718
|
-
diff:
|
|
3625
|
+
diff: createDiffCommand({
|
|
3626
|
+
description: "Compare local app permission config with remote kintone app",
|
|
3627
|
+
args: appAclArgs,
|
|
3628
|
+
spinnerMessage: "Comparing app permissions...",
|
|
3629
|
+
multiAppSuccessMessage: "All app permission diffs completed successfully.",
|
|
3630
|
+
createContainer: createAppPermissionCliContainer,
|
|
3631
|
+
detectDiff: detectAppPermissionDiff,
|
|
3632
|
+
printResult: printAppPermissionDiffResult,
|
|
3633
|
+
resolveContainerConfig: resolveAppAclContainerConfig,
|
|
3634
|
+
resolveAppContainerConfig: resolveAppAclAppContainerConfig
|
|
3635
|
+
})
|
|
3719
3636
|
},
|
|
3720
3637
|
run: () => {}
|
|
3721
3638
|
});
|
|
3722
|
-
|
|
3723
3639
|
//#endregion
|
|
3724
3640
|
//#region src/core/domain/customization/services/resourceMerger.ts
|
|
3725
3641
|
const MAX_RESOURCES_PER_CATEGORY = 30;
|
|
@@ -3747,7 +3663,6 @@ const ResourceMerger = {
|
|
|
3747
3663
|
return [...kept, ...incoming];
|
|
3748
3664
|
}
|
|
3749
3665
|
};
|
|
3750
|
-
|
|
3751
3666
|
//#endregion
|
|
3752
3667
|
//#region src/core/domain/customization/services/configParser.ts
|
|
3753
3668
|
function parseResource(raw, index) {
|
|
@@ -3803,13 +3718,11 @@ const CustomizationConfigParser = { parse: (rawText) => {
|
|
|
3803
3718
|
mobile
|
|
3804
3719
|
};
|
|
3805
3720
|
} };
|
|
3806
|
-
|
|
3807
3721
|
//#endregion
|
|
3808
3722
|
//#region src/core/application/customization/parseConfig.ts
|
|
3809
3723
|
function parseConfigText(rawText) {
|
|
3810
3724
|
return wrapBusinessRuleError(() => CustomizationConfigParser.parse(rawText));
|
|
3811
3725
|
}
|
|
3812
|
-
|
|
3813
3726
|
//#endregion
|
|
3814
3727
|
//#region src/core/application/customization/applyCustomization.ts
|
|
3815
3728
|
async function resolveResources(platform, basePath, fileUploader) {
|
|
@@ -3862,7 +3775,6 @@ async function applyCustomization({ container, input }) {
|
|
|
3862
3775
|
revision: currentCustomization.revision
|
|
3863
3776
|
});
|
|
3864
3777
|
}
|
|
3865
|
-
|
|
3866
3778
|
//#endregion
|
|
3867
3779
|
//#region src/cli/customizeConfig.ts
|
|
3868
3780
|
const customizeArgs = {
|
|
@@ -3884,7 +3796,6 @@ const { resolveFilePath: resolveCustomizeFilePath, resolveContainerConfig: resol
|
|
|
3884
3796
|
customizeFilePath: filePath
|
|
3885
3797
|
})
|
|
3886
3798
|
});
|
|
3887
|
-
|
|
3888
3799
|
//#endregion
|
|
3889
3800
|
//#region src/core/domain/customization/services/configSerializer.ts
|
|
3890
3801
|
function serializeResource(resource) {
|
|
@@ -3916,7 +3827,6 @@ const CustomizationConfigSerializer = { serialize: (config) => {
|
|
|
3916
3827
|
...hasPlatformResources(config.mobile) ? { mobile: serializePlatform(config.mobile) } : {}
|
|
3917
3828
|
});
|
|
3918
3829
|
} };
|
|
3919
|
-
|
|
3920
3830
|
//#endregion
|
|
3921
3831
|
//#region src/lib/deduplicateName.ts
|
|
3922
3832
|
const DEFAULT_MAX_COUNTER = 1e4;
|
|
@@ -3925,11 +3835,17 @@ const DEFAULT_MAX_COUNTER = 1e4;
|
|
|
3925
3835
|
*
|
|
3926
3836
|
* NOTE: This function mutates `usedNames` by adding the returned name to the set.
|
|
3927
3837
|
* This is intentional to allow sequential calls to track used names efficiently.
|
|
3838
|
+
*
|
|
3839
|
+
* Caveat: If `baseName` already ends with `separator + number` (e.g. "app_1" with
|
|
3840
|
+
* separator "_"), the generated suffix may collide with names produced by a different
|
|
3841
|
+
* baseName (e.g. baseName="app" generating "app_1"). Callers should be aware of this
|
|
3842
|
+
* when working with names that may contain the separator.
|
|
3928
3843
|
*/
|
|
3929
3844
|
function deduplicateName(baseName, usedNames, options) {
|
|
3930
3845
|
if (baseName === "") throw new Error("baseName must not be empty");
|
|
3931
3846
|
if (options.separator === "") throw new Error("separator must not be empty");
|
|
3932
3847
|
if (options.startCounter < 1) throw new Error("startCounter must be >= 1");
|
|
3848
|
+
if (options.maxCounter !== void 0 && options.maxCounter < options.startCounter) throw new Error("maxCounter must be >= startCounter");
|
|
3933
3849
|
if (!usedNames.has(baseName)) {
|
|
3934
3850
|
usedNames.add(baseName);
|
|
3935
3851
|
return baseName;
|
|
@@ -3945,7 +3861,6 @@ function deduplicateName(baseName, usedNames, options) {
|
|
|
3945
3861
|
usedNames.add(candidate);
|
|
3946
3862
|
return candidate;
|
|
3947
3863
|
}
|
|
3948
|
-
|
|
3949
3864
|
//#endregion
|
|
3950
3865
|
//#region src/core/application/customization/captureCustomization.ts
|
|
3951
3866
|
const UNSAFE_FILE_CHARS = /[<>:"|?*\u0000-\u001f]/g;
|
|
@@ -4060,13 +3975,11 @@ async function captureCustomization({ container, input }) {
|
|
|
4060
3975
|
fileResourceCount: desktopPlan.fileCount + mobilePlan.fileCount
|
|
4061
3976
|
};
|
|
4062
3977
|
}
|
|
4063
|
-
|
|
4064
3978
|
//#endregion
|
|
4065
3979
|
//#region src/core/application/customization/saveCustomization.ts
|
|
4066
3980
|
async function saveCustomization({ container, input }) {
|
|
4067
3981
|
await container.customizationStorage.update(input.configText);
|
|
4068
3982
|
}
|
|
4069
|
-
|
|
4070
3983
|
//#endregion
|
|
4071
3984
|
//#region src/cli/commands/customize/capture.ts
|
|
4072
3985
|
function deriveFilePrefix(customizeFilePath) {
|
|
@@ -4124,7 +4037,6 @@ var capture_default$10 = define({
|
|
|
4124
4037
|
}
|
|
4125
4038
|
}
|
|
4126
4039
|
});
|
|
4127
|
-
|
|
4128
4040
|
//#endregion
|
|
4129
4041
|
//#region src/cli/commands/customize/apply.ts
|
|
4130
4042
|
async function applyCustomizationForApp(config) {
|
|
@@ -4175,7 +4087,6 @@ var apply_default$9 = define({
|
|
|
4175
4087
|
}
|
|
4176
4088
|
}
|
|
4177
4089
|
});
|
|
4178
|
-
|
|
4179
4090
|
//#endregion
|
|
4180
4091
|
//#region src/core/domain/customization/services/diffDetector.ts
|
|
4181
4092
|
function resourceName(resource) {
|
|
@@ -4232,7 +4143,7 @@ function comparePlatform(localJs, localCss, remote, platform, warnings) {
|
|
|
4232
4143
|
const CustomizationDiffDetector = { detect: (local, remote) => {
|
|
4233
4144
|
const entries = [];
|
|
4234
4145
|
const warnings = [];
|
|
4235
|
-
const localScope = local.scope ??
|
|
4146
|
+
const localScope = local.scope ?? "ALL";
|
|
4236
4147
|
if (localScope !== remote.scope) entries.push({
|
|
4237
4148
|
type: "modified",
|
|
4238
4149
|
platform: "config",
|
|
@@ -4244,7 +4155,6 @@ const CustomizationDiffDetector = { detect: (local, remote) => {
|
|
|
4244
4155
|
entries.push(...comparePlatform(local.mobile.js, local.mobile.css, remote.mobile, "mobile", warnings));
|
|
4245
4156
|
return buildDiffResult(entries, warnings);
|
|
4246
4157
|
} };
|
|
4247
|
-
|
|
4248
4158
|
//#endregion
|
|
4249
4159
|
//#region src/core/application/customization/detectCustomizationDiff.ts
|
|
4250
4160
|
async function detectCustomizationDiff({ container }) {
|
|
@@ -4256,21 +4166,6 @@ async function detectCustomizationDiff({ container }) {
|
|
|
4256
4166
|
notFoundMessage: "Customization config file not found"
|
|
4257
4167
|
});
|
|
4258
4168
|
}
|
|
4259
|
-
|
|
4260
|
-
//#endregion
|
|
4261
|
-
//#region src/cli/commands/customize/diff.ts
|
|
4262
|
-
var diff_default$9 = createDiffCommand({
|
|
4263
|
-
description: "Compare local customization config with remote kintone app",
|
|
4264
|
-
args: customizeArgs,
|
|
4265
|
-
spinnerMessage: "Comparing customization settings...",
|
|
4266
|
-
multiAppSuccessMessage: "All customization diffs completed successfully.",
|
|
4267
|
-
createContainer: createCustomizationCliContainer,
|
|
4268
|
-
detectDiff: detectCustomizationDiff,
|
|
4269
|
-
printResult: printCustomizationDiffResult,
|
|
4270
|
-
resolveContainerConfig: resolveCustomizeConfig,
|
|
4271
|
-
resolveAppContainerConfig: resolveCustomizeAppConfig
|
|
4272
|
-
});
|
|
4273
|
-
|
|
4274
4169
|
//#endregion
|
|
4275
4170
|
//#region src/cli/commands/customize/index.ts
|
|
4276
4171
|
var customize_default = define({
|
|
@@ -4279,11 +4174,20 @@ var customize_default = define({
|
|
|
4279
4174
|
subCommands: {
|
|
4280
4175
|
apply: apply_default$9,
|
|
4281
4176
|
capture: capture_default$10,
|
|
4282
|
-
diff:
|
|
4177
|
+
diff: createDiffCommand({
|
|
4178
|
+
description: "Compare local customization config with remote kintone app",
|
|
4179
|
+
args: customizeArgs,
|
|
4180
|
+
spinnerMessage: "Comparing customization settings...",
|
|
4181
|
+
multiAppSuccessMessage: "All customization diffs completed successfully.",
|
|
4182
|
+
createContainer: createCustomizationCliContainer,
|
|
4183
|
+
detectDiff: detectCustomizationDiff,
|
|
4184
|
+
printResult: printCustomizationDiffResult,
|
|
4185
|
+
resolveContainerConfig: resolveCustomizeConfig,
|
|
4186
|
+
resolveAppContainerConfig: resolveCustomizeAppConfig
|
|
4187
|
+
})
|
|
4283
4188
|
},
|
|
4284
4189
|
run: () => {}
|
|
4285
4190
|
});
|
|
4286
|
-
|
|
4287
4191
|
//#endregion
|
|
4288
4192
|
//#region src/core/adapters/kintone/fieldPermissionConfigurator.ts
|
|
4289
4193
|
const VALID_ACCESSIBILITIES$1 = new Set([
|
|
@@ -4368,13 +4272,11 @@ var KintoneFieldPermissionConfigurator = class {
|
|
|
4368
4272
|
}
|
|
4369
4273
|
}
|
|
4370
4274
|
};
|
|
4371
|
-
|
|
4372
4275
|
//#endregion
|
|
4373
4276
|
//#region src/core/adapters/local/fieldPermissionStorage.ts
|
|
4374
4277
|
function createLocalFileFieldPermissionStorage(filePath) {
|
|
4375
4278
|
return createLocalFileStorage(filePath, "field permission file");
|
|
4376
4279
|
}
|
|
4377
|
-
|
|
4378
4280
|
//#endregion
|
|
4379
4281
|
//#region src/core/application/container/fieldPermissionCli.ts
|
|
4380
4282
|
function createFieldPermissionCliContainer(config) {
|
|
@@ -4385,7 +4287,6 @@ function createFieldPermissionCliContainer(config) {
|
|
|
4385
4287
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
4386
4288
|
};
|
|
4387
4289
|
}
|
|
4388
|
-
|
|
4389
4290
|
//#endregion
|
|
4390
4291
|
//#region src/core/domain/fieldPermission/services/configParser.ts
|
|
4391
4292
|
const VALID_ACCESSIBILITIES = new Set([
|
|
@@ -4443,13 +4344,11 @@ const FieldPermissionConfigParser = { parse: (rawText) => {
|
|
|
4443
4344
|
}
|
|
4444
4345
|
return { rights };
|
|
4445
4346
|
} };
|
|
4446
|
-
|
|
4447
4347
|
//#endregion
|
|
4448
4348
|
//#region src/core/application/fieldPermission/parseConfig.ts
|
|
4449
4349
|
function parseFieldPermissionConfigText(rawText) {
|
|
4450
4350
|
return wrapBusinessRuleError(() => FieldPermissionConfigParser.parse(rawText));
|
|
4451
4351
|
}
|
|
4452
|
-
|
|
4453
4352
|
//#endregion
|
|
4454
4353
|
//#region src/core/application/fieldPermission/applyFieldPermission.ts
|
|
4455
4354
|
async function applyFieldPermission({ container }) {
|
|
@@ -4466,7 +4365,6 @@ async function applyFieldPermission({ container }) {
|
|
|
4466
4365
|
notFoundMessage: "Field permission config file not found"
|
|
4467
4366
|
});
|
|
4468
4367
|
}
|
|
4469
|
-
|
|
4470
4368
|
//#endregion
|
|
4471
4369
|
//#region src/cli/fieldAclConfig.ts
|
|
4472
4370
|
const fieldAclArgs = {
|
|
@@ -4488,7 +4386,6 @@ const { resolveFilePath: resolveFieldAclFilePath, resolveContainerConfig: resolv
|
|
|
4488
4386
|
fieldAclFilePath: filePath
|
|
4489
4387
|
})
|
|
4490
4388
|
});
|
|
4491
|
-
|
|
4492
4389
|
//#endregion
|
|
4493
4390
|
//#region src/cli/commands/field-acl/apply.ts
|
|
4494
4391
|
async function runFieldAcl(config) {
|
|
@@ -4535,7 +4432,6 @@ var apply_default$8 = define({
|
|
|
4535
4432
|
}
|
|
4536
4433
|
}
|
|
4537
4434
|
});
|
|
4538
|
-
|
|
4539
4435
|
//#endregion
|
|
4540
4436
|
//#region src/core/domain/fieldPermission/services/configSerializer.ts
|
|
4541
4437
|
function serializeFieldRightEntity(entity) {
|
|
@@ -4555,7 +4451,6 @@ const FieldPermissionConfigSerializer = { serialize: (config) => {
|
|
|
4555
4451
|
entities: right.entities.map(serializeFieldRightEntity)
|
|
4556
4452
|
})) });
|
|
4557
4453
|
} };
|
|
4558
|
-
|
|
4559
4454
|
//#endregion
|
|
4560
4455
|
//#region src/core/application/fieldPermission/captureFieldPermission.ts
|
|
4561
4456
|
async function captureFieldPermission({ container }) {
|
|
@@ -4565,13 +4460,11 @@ async function captureFieldPermission({ container }) {
|
|
|
4565
4460
|
getStorage: () => container.fieldPermissionStorage.get()
|
|
4566
4461
|
});
|
|
4567
4462
|
}
|
|
4568
|
-
|
|
4569
4463
|
//#endregion
|
|
4570
4464
|
//#region src/core/application/fieldPermission/saveFieldPermission.ts
|
|
4571
4465
|
async function saveFieldPermission({ container, input }) {
|
|
4572
4466
|
await container.fieldPermissionStorage.update(input.configText);
|
|
4573
4467
|
}
|
|
4574
|
-
|
|
4575
4468
|
//#endregion
|
|
4576
4469
|
//#region src/cli/commands/field-acl/capture.ts
|
|
4577
4470
|
async function runCaptureFieldAcl(config) {
|
|
@@ -4614,7 +4507,6 @@ var capture_default$9 = define({
|
|
|
4614
4507
|
}
|
|
4615
4508
|
}
|
|
4616
4509
|
});
|
|
4617
|
-
|
|
4618
4510
|
//#endregion
|
|
4619
4511
|
//#region src/core/domain/fieldPermission/services/diffDetector.ts
|
|
4620
4512
|
function isEntitiesEqual$1(a, b) {
|
|
@@ -4654,7 +4546,6 @@ const FieldPermissionDiffDetector = { detect: (local, remote) => {
|
|
|
4654
4546
|
});
|
|
4655
4547
|
return buildDiffResult(entries);
|
|
4656
4548
|
} };
|
|
4657
|
-
|
|
4658
4549
|
//#endregion
|
|
4659
4550
|
//#region src/core/application/fieldPermission/detectFieldPermissionDiff.ts
|
|
4660
4551
|
async function detectFieldPermissionDiff({ container }) {
|
|
@@ -4666,21 +4557,6 @@ async function detectFieldPermissionDiff({ container }) {
|
|
|
4666
4557
|
notFoundMessage: "Field permission config file not found"
|
|
4667
4558
|
});
|
|
4668
4559
|
}
|
|
4669
|
-
|
|
4670
|
-
//#endregion
|
|
4671
|
-
//#region src/cli/commands/field-acl/diff.ts
|
|
4672
|
-
var diff_default$8 = createDiffCommand({
|
|
4673
|
-
description: "Compare local field permission config with remote kintone app",
|
|
4674
|
-
args: fieldAclArgs,
|
|
4675
|
-
spinnerMessage: "Comparing field permissions...",
|
|
4676
|
-
multiAppSuccessMessage: "All field permission diffs completed successfully.",
|
|
4677
|
-
createContainer: createFieldPermissionCliContainer,
|
|
4678
|
-
detectDiff: detectFieldPermissionDiff,
|
|
4679
|
-
printResult: printFieldPermissionDiffResult,
|
|
4680
|
-
resolveContainerConfig: resolveFieldAclContainerConfig,
|
|
4681
|
-
resolveAppContainerConfig: resolveFieldAclAppContainerConfig
|
|
4682
|
-
});
|
|
4683
|
-
|
|
4684
4560
|
//#endregion
|
|
4685
4561
|
//#region src/cli/commands/field-acl/index.ts
|
|
4686
4562
|
var field_acl_default = define({
|
|
@@ -4689,11 +4565,20 @@ var field_acl_default = define({
|
|
|
4689
4565
|
subCommands: {
|
|
4690
4566
|
apply: apply_default$8,
|
|
4691
4567
|
capture: capture_default$9,
|
|
4692
|
-
diff:
|
|
4568
|
+
diff: createDiffCommand({
|
|
4569
|
+
description: "Compare local field permission config with remote kintone app",
|
|
4570
|
+
args: fieldAclArgs,
|
|
4571
|
+
spinnerMessage: "Comparing field permissions...",
|
|
4572
|
+
multiAppSuccessMessage: "All field permission diffs completed successfully.",
|
|
4573
|
+
createContainer: createFieldPermissionCliContainer,
|
|
4574
|
+
detectDiff: detectFieldPermissionDiff,
|
|
4575
|
+
printResult: printFieldPermissionDiffResult,
|
|
4576
|
+
resolveContainerConfig: resolveFieldAclContainerConfig,
|
|
4577
|
+
resolveAppContainerConfig: resolveFieldAclAppContainerConfig
|
|
4578
|
+
})
|
|
4693
4579
|
},
|
|
4694
4580
|
run: () => {}
|
|
4695
4581
|
});
|
|
4696
|
-
|
|
4697
4582
|
//#endregion
|
|
4698
4583
|
//#region src/core/adapters/kintone/parseKintoneIntegerField.ts
|
|
4699
4584
|
function parseKintoneIntegerField(raw, fieldName) {
|
|
@@ -4701,7 +4586,6 @@ function parseKintoneIntegerField(raw, fieldName) {
|
|
|
4701
4586
|
if (!Number.isFinite(n) || !Number.isInteger(n)) throw new SystemError(SystemErrorCode.ExternalApiError, `Unexpected non-integer ${fieldName} from kintone API: ${raw}`);
|
|
4702
4587
|
return n;
|
|
4703
4588
|
}
|
|
4704
|
-
|
|
4705
4589
|
//#endregion
|
|
4706
4590
|
//#region src/core/adapters/kintone/generalSettingsConfigurator.ts
|
|
4707
4591
|
const VALID_THEMES$1 = new Set([
|
|
@@ -4834,13 +4718,11 @@ var KintoneGeneralSettingsConfigurator = class {
|
|
|
4834
4718
|
}
|
|
4835
4719
|
}
|
|
4836
4720
|
};
|
|
4837
|
-
|
|
4838
4721
|
//#endregion
|
|
4839
4722
|
//#region src/core/adapters/local/generalSettingsStorage.ts
|
|
4840
4723
|
function createLocalFileGeneralSettingsStorage(filePath) {
|
|
4841
4724
|
return createLocalFileStorage(filePath, "general settings file");
|
|
4842
4725
|
}
|
|
4843
|
-
|
|
4844
4726
|
//#endregion
|
|
4845
4727
|
//#region src/core/application/container/generalSettingsCli.ts
|
|
4846
4728
|
function createGeneralSettingsCliContainer(config) {
|
|
@@ -4851,20 +4733,15 @@ function createGeneralSettingsCliContainer(config) {
|
|
|
4851
4733
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
4852
4734
|
};
|
|
4853
4735
|
}
|
|
4854
|
-
|
|
4855
|
-
//#endregion
|
|
4856
|
-
//#region src/core/domain/notification/valueObject.ts
|
|
4857
|
-
const ENTITY_TYPES = [
|
|
4736
|
+
const VALID_ENTITY_TYPES$4 = new Set([
|
|
4858
4737
|
"USER",
|
|
4859
4738
|
"GROUP",
|
|
4860
4739
|
"ORGANIZATION",
|
|
4861
4740
|
"FIELD_ENTITY"
|
|
4862
|
-
];
|
|
4863
|
-
const VALID_ENTITY_TYPES$4 = new Set(ENTITY_TYPES);
|
|
4741
|
+
]);
|
|
4864
4742
|
function isNotificationEntityType(value) {
|
|
4865
4743
|
return VALID_ENTITY_TYPES$4.has(value);
|
|
4866
4744
|
}
|
|
4867
|
-
|
|
4868
4745
|
//#endregion
|
|
4869
4746
|
//#region src/core/adapters/kintone/notificationConfigurator.ts
|
|
4870
4747
|
function fromKintoneEntity$2(raw) {
|
|
@@ -5061,13 +4938,11 @@ var KintoneNotificationConfigurator = class {
|
|
|
5061
4938
|
}
|
|
5062
4939
|
}
|
|
5063
4940
|
};
|
|
5064
|
-
|
|
5065
4941
|
//#endregion
|
|
5066
4942
|
//#region src/core/adapters/local/notificationStorage.ts
|
|
5067
4943
|
function createLocalFileNotificationStorage(filePath) {
|
|
5068
4944
|
return createLocalFileStorage(filePath, "notification file");
|
|
5069
4945
|
}
|
|
5070
|
-
|
|
5071
4946
|
//#endregion
|
|
5072
4947
|
//#region src/core/application/container/notificationCli.ts
|
|
5073
4948
|
function createNotificationCliContainer(config) {
|
|
@@ -5078,7 +4953,6 @@ function createNotificationCliContainer(config) {
|
|
|
5078
4953
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
5079
4954
|
};
|
|
5080
4955
|
}
|
|
5081
|
-
|
|
5082
4956
|
//#endregion
|
|
5083
4957
|
//#region src/core/adapters/kintone/pluginConfigurator.ts
|
|
5084
4958
|
var KintonePluginConfigurator = class {
|
|
@@ -5116,13 +4990,11 @@ var KintonePluginConfigurator = class {
|
|
|
5116
4990
|
}
|
|
5117
4991
|
}
|
|
5118
4992
|
};
|
|
5119
|
-
|
|
5120
4993
|
//#endregion
|
|
5121
4994
|
//#region src/core/adapters/local/pluginStorage.ts
|
|
5122
4995
|
function createLocalFilePluginStorage(filePath) {
|
|
5123
4996
|
return createLocalFileStorage(filePath, "plugin file");
|
|
5124
4997
|
}
|
|
5125
|
-
|
|
5126
4998
|
//#endregion
|
|
5127
4999
|
//#region src/core/application/container/pluginCli.ts
|
|
5128
5000
|
function createPluginCliContainer(config) {
|
|
@@ -5133,7 +5005,6 @@ function createPluginCliContainer(config) {
|
|
|
5133
5005
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
5134
5006
|
};
|
|
5135
5007
|
}
|
|
5136
|
-
|
|
5137
5008
|
//#endregion
|
|
5138
5009
|
//#region src/core/adapters/kintone/processManagementConfigurator.ts
|
|
5139
5010
|
const VALID_ASSIGNEE_TYPES$1 = new Set([
|
|
@@ -5265,13 +5136,11 @@ var KintoneProcessManagementConfigurator = class {
|
|
|
5265
5136
|
}
|
|
5266
5137
|
}
|
|
5267
5138
|
};
|
|
5268
|
-
|
|
5269
5139
|
//#endregion
|
|
5270
5140
|
//#region src/core/adapters/local/processManagementStorage.ts
|
|
5271
5141
|
function createLocalFileProcessManagementStorage(filePath) {
|
|
5272
5142
|
return createLocalFileStorage(filePath, "process management file");
|
|
5273
5143
|
}
|
|
5274
|
-
|
|
5275
5144
|
//#endregion
|
|
5276
5145
|
//#region src/core/application/container/processManagementCli.ts
|
|
5277
5146
|
function createProcessManagementCliContainer(config) {
|
|
@@ -5282,7 +5151,6 @@ function createProcessManagementCliContainer(config) {
|
|
|
5282
5151
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
5283
5152
|
};
|
|
5284
5153
|
}
|
|
5285
|
-
|
|
5286
5154
|
//#endregion
|
|
5287
5155
|
//#region src/core/adapters/kintone/recordPermissionConfigurator.ts
|
|
5288
5156
|
const VALID_ENTITY_TYPES$2 = new Set([
|
|
@@ -5360,13 +5228,11 @@ var KintoneRecordPermissionConfigurator = class {
|
|
|
5360
5228
|
}
|
|
5361
5229
|
}
|
|
5362
5230
|
};
|
|
5363
|
-
|
|
5364
5231
|
//#endregion
|
|
5365
5232
|
//#region src/core/adapters/local/recordPermissionStorage.ts
|
|
5366
5233
|
function createLocalFileRecordPermissionStorage(filePath) {
|
|
5367
5234
|
return createLocalFileStorage(filePath, "record permission file");
|
|
5368
5235
|
}
|
|
5369
|
-
|
|
5370
5236
|
//#endregion
|
|
5371
5237
|
//#region src/core/application/container/recordPermissionCli.ts
|
|
5372
5238
|
function createRecordPermissionCliContainer(config) {
|
|
@@ -5377,10 +5243,7 @@ function createRecordPermissionCliContainer(config) {
|
|
|
5377
5243
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
5378
5244
|
};
|
|
5379
5245
|
}
|
|
5380
|
-
|
|
5381
|
-
//#endregion
|
|
5382
|
-
//#region src/core/domain/report/valueObject.ts
|
|
5383
|
-
const CHART_TYPES = [
|
|
5246
|
+
const VALID_CHART_TYPES = new Set([
|
|
5384
5247
|
"BAR",
|
|
5385
5248
|
"COLUMN",
|
|
5386
5249
|
"PIE",
|
|
@@ -5390,21 +5253,19 @@ const CHART_TYPES = [
|
|
|
5390
5253
|
"AREA",
|
|
5391
5254
|
"SPLINE",
|
|
5392
5255
|
"SPLINE_AREA"
|
|
5393
|
-
];
|
|
5394
|
-
const VALID_CHART_TYPES = new Set(CHART_TYPES);
|
|
5256
|
+
]);
|
|
5395
5257
|
function isChartType(value) {
|
|
5396
5258
|
return VALID_CHART_TYPES.has(value);
|
|
5397
5259
|
}
|
|
5398
|
-
const
|
|
5260
|
+
const VALID_CHART_MODES = new Set([
|
|
5399
5261
|
"NORMAL",
|
|
5400
5262
|
"STACKED",
|
|
5401
5263
|
"PERCENTAGE"
|
|
5402
|
-
];
|
|
5403
|
-
const VALID_CHART_MODES = new Set(CHART_MODES);
|
|
5264
|
+
]);
|
|
5404
5265
|
function isChartMode(value) {
|
|
5405
5266
|
return VALID_CHART_MODES.has(value);
|
|
5406
5267
|
}
|
|
5407
|
-
const
|
|
5268
|
+
const VALID_GROUP_PERS = new Set([
|
|
5408
5269
|
"YEAR",
|
|
5409
5270
|
"QUARTER",
|
|
5410
5271
|
"MONTH",
|
|
@@ -5412,59 +5273,53 @@ const GROUP_PERS = [
|
|
|
5412
5273
|
"DAY",
|
|
5413
5274
|
"HOUR",
|
|
5414
5275
|
"MINUTE"
|
|
5415
|
-
];
|
|
5416
|
-
const VALID_GROUP_PERS = new Set(GROUP_PERS);
|
|
5276
|
+
]);
|
|
5417
5277
|
function isGroupPer(value) {
|
|
5418
5278
|
return VALID_GROUP_PERS.has(value);
|
|
5419
5279
|
}
|
|
5420
|
-
const
|
|
5280
|
+
const VALID_AGGREGATION_TYPES = new Set([
|
|
5421
5281
|
"COUNT",
|
|
5422
5282
|
"SUM",
|
|
5423
5283
|
"AVERAGE",
|
|
5424
5284
|
"MAX",
|
|
5425
5285
|
"MIN"
|
|
5426
|
-
];
|
|
5427
|
-
const VALID_AGGREGATION_TYPES = new Set(AGGREGATION_TYPES);
|
|
5286
|
+
]);
|
|
5428
5287
|
function isAggregationType(value) {
|
|
5429
5288
|
return VALID_AGGREGATION_TYPES.has(value);
|
|
5430
5289
|
}
|
|
5431
|
-
const
|
|
5290
|
+
const VALID_SORT_BYS = new Set([
|
|
5432
5291
|
"TOTAL",
|
|
5433
5292
|
"GROUP1",
|
|
5434
5293
|
"GROUP2",
|
|
5435
5294
|
"GROUP3"
|
|
5436
|
-
];
|
|
5437
|
-
const VALID_SORT_BYS = new Set(SORT_BYS);
|
|
5295
|
+
]);
|
|
5438
5296
|
function isSortBy(value) {
|
|
5439
5297
|
return VALID_SORT_BYS.has(value);
|
|
5440
5298
|
}
|
|
5441
|
-
const
|
|
5442
|
-
const VALID_SORT_ORDERS = new Set(SORT_ORDERS);
|
|
5299
|
+
const VALID_SORT_ORDERS = new Set(["ASC", "DESC"]);
|
|
5443
5300
|
function isSortOrder(value) {
|
|
5444
5301
|
return VALID_SORT_ORDERS.has(value);
|
|
5445
5302
|
}
|
|
5446
|
-
const
|
|
5303
|
+
const VALID_PERIODIC_REPORT_EVERYS = new Set([
|
|
5447
5304
|
"YEAR",
|
|
5448
5305
|
"QUARTER",
|
|
5449
5306
|
"MONTH",
|
|
5450
5307
|
"WEEK",
|
|
5451
5308
|
"DAY",
|
|
5452
5309
|
"HOUR"
|
|
5453
|
-
];
|
|
5454
|
-
const VALID_PERIODIC_REPORT_EVERYS = new Set(PERIODIC_REPORT_EVERYS);
|
|
5310
|
+
]);
|
|
5455
5311
|
function isPeriodicReportEvery(value) {
|
|
5456
5312
|
return VALID_PERIODIC_REPORT_EVERYS.has(value);
|
|
5457
5313
|
}
|
|
5458
|
-
const
|
|
5314
|
+
const VALID_PERIODIC_REPORT_PATTERNS = new Set([
|
|
5459
5315
|
"JAN_APR_JUL_OCT",
|
|
5460
5316
|
"FEB_MAY_AUG_NOV",
|
|
5461
5317
|
"MAR_JUN_SEP_DEC"
|
|
5462
|
-
];
|
|
5463
|
-
const VALID_PERIODIC_REPORT_PATTERNS = new Set(PERIODIC_REPORT_PATTERNS);
|
|
5318
|
+
]);
|
|
5464
5319
|
function isPeriodicReportPattern(value) {
|
|
5465
5320
|
return VALID_PERIODIC_REPORT_PATTERNS.has(value);
|
|
5466
5321
|
}
|
|
5467
|
-
const
|
|
5322
|
+
const VALID_DAYS_OF_WEEK = new Set([
|
|
5468
5323
|
"SUNDAY",
|
|
5469
5324
|
"MONDAY",
|
|
5470
5325
|
"TUESDAY",
|
|
@@ -5472,12 +5327,10 @@ const DAYS_OF_WEEK = [
|
|
|
5472
5327
|
"THURSDAY",
|
|
5473
5328
|
"FRIDAY",
|
|
5474
5329
|
"SATURDAY"
|
|
5475
|
-
];
|
|
5476
|
-
const VALID_DAYS_OF_WEEK = new Set(DAYS_OF_WEEK);
|
|
5330
|
+
]);
|
|
5477
5331
|
function isDayOfWeek(value) {
|
|
5478
5332
|
return VALID_DAYS_OF_WEEK.has(value);
|
|
5479
5333
|
}
|
|
5480
|
-
|
|
5481
5334
|
//#endregion
|
|
5482
5335
|
//#region src/core/adapters/kintone/reportConfigurator.ts
|
|
5483
5336
|
function fromKintoneGroup(raw) {
|
|
@@ -5647,13 +5500,11 @@ var KintoneReportConfigurator = class {
|
|
|
5647
5500
|
}
|
|
5648
5501
|
}
|
|
5649
5502
|
};
|
|
5650
|
-
|
|
5651
5503
|
//#endregion
|
|
5652
5504
|
//#region src/core/adapters/local/reportStorage.ts
|
|
5653
5505
|
function createLocalFileReportStorage(filePath) {
|
|
5654
5506
|
return createLocalFileStorage(filePath, "report file");
|
|
5655
5507
|
}
|
|
5656
|
-
|
|
5657
5508
|
//#endregion
|
|
5658
5509
|
//#region src/core/application/container/reportCli.ts
|
|
5659
5510
|
function createReportCliContainer(config) {
|
|
@@ -5664,24 +5515,18 @@ function createReportCliContainer(config) {
|
|
|
5664
5515
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
5665
5516
|
};
|
|
5666
5517
|
}
|
|
5667
|
-
|
|
5668
|
-
//#endregion
|
|
5669
|
-
//#region src/core/domain/view/valueObject.ts
|
|
5670
|
-
const VIEW_TYPES = [
|
|
5518
|
+
const VALID_VIEW_TYPES = new Set([
|
|
5671
5519
|
"LIST",
|
|
5672
5520
|
"CALENDAR",
|
|
5673
5521
|
"CUSTOM"
|
|
5674
|
-
];
|
|
5675
|
-
const VALID_VIEW_TYPES = new Set(VIEW_TYPES);
|
|
5522
|
+
]);
|
|
5676
5523
|
function isViewType(value) {
|
|
5677
5524
|
return VALID_VIEW_TYPES.has(value);
|
|
5678
5525
|
}
|
|
5679
|
-
const
|
|
5680
|
-
const VALID_DEVICE_TYPES = new Set(DEVICE_TYPES);
|
|
5526
|
+
const VALID_DEVICE_TYPES = new Set(["DESKTOP", "ANY"]);
|
|
5681
5527
|
function isDeviceType(value) {
|
|
5682
5528
|
return VALID_DEVICE_TYPES.has(value);
|
|
5683
5529
|
}
|
|
5684
|
-
|
|
5685
5530
|
//#endregion
|
|
5686
5531
|
//#region src/core/adapters/kintone/viewConfigurator.ts
|
|
5687
5532
|
function fromKintoneView(name, raw) {
|
|
@@ -5761,13 +5606,11 @@ var KintoneViewConfigurator = class {
|
|
|
5761
5606
|
}
|
|
5762
5607
|
}
|
|
5763
5608
|
};
|
|
5764
|
-
|
|
5765
5609
|
//#endregion
|
|
5766
5610
|
//#region src/core/adapters/local/viewStorage.ts
|
|
5767
5611
|
function createLocalFileViewStorage(filePath) {
|
|
5768
5612
|
return createLocalFileStorage(filePath, "view file");
|
|
5769
5613
|
}
|
|
5770
|
-
|
|
5771
5614
|
//#endregion
|
|
5772
5615
|
//#region src/core/application/container/viewCli.ts
|
|
5773
5616
|
function createViewCliContainer(config) {
|
|
@@ -5778,7 +5621,6 @@ function createViewCliContainer(config) {
|
|
|
5778
5621
|
appDeployer: new KintoneAppDeployer(client, config.appId)
|
|
5779
5622
|
};
|
|
5780
5623
|
}
|
|
5781
|
-
|
|
5782
5624
|
//#endregion
|
|
5783
5625
|
//#region src/core/application/container/captureAllCli.ts
|
|
5784
5626
|
function createCliCaptureContainers(input) {
|
|
@@ -5853,7 +5695,6 @@ function createCliCaptureContainers(input) {
|
|
|
5853
5695
|
}
|
|
5854
5696
|
};
|
|
5855
5697
|
}
|
|
5856
|
-
|
|
5857
5698
|
//#endregion
|
|
5858
5699
|
//#region src/core/adapters/kintone/spaceReader.ts
|
|
5859
5700
|
/**
|
|
@@ -5896,13 +5737,11 @@ var KintoneSpaceReader = class {
|
|
|
5896
5737
|
}
|
|
5897
5738
|
}
|
|
5898
5739
|
};
|
|
5899
|
-
|
|
5900
5740
|
//#endregion
|
|
5901
5741
|
//#region src/core/adapters/local/projectConfigStorage.ts
|
|
5902
5742
|
function createLocalFileProjectConfigStorage(filePath) {
|
|
5903
5743
|
return createLocalFileStorage(filePath, "project config file");
|
|
5904
5744
|
}
|
|
5905
|
-
|
|
5906
5745
|
//#endregion
|
|
5907
5746
|
//#region src/core/application/container/initCli.ts
|
|
5908
5747
|
function createInitCliContainer(config) {
|
|
@@ -5911,7 +5750,6 @@ function createInitCliContainer(config) {
|
|
|
5911
5750
|
projectConfigStorage: createLocalFileProjectConfigStorage(config.configFilePath)
|
|
5912
5751
|
};
|
|
5913
5752
|
}
|
|
5914
|
-
|
|
5915
5753
|
//#endregion
|
|
5916
5754
|
//#region src/core/domain/formSchema/services/layoutEnricher.ts
|
|
5917
5755
|
function enrichLayoutElement(element, fields) {
|
|
@@ -5971,7 +5809,6 @@ function collectSubtableInnerFieldCodes(fields) {
|
|
|
5971
5809
|
for (const def of fields.values()) if (def.type === "SUBTABLE") for (const subCode of def.properties.fields.keys()) innerCodes.add(subCode);
|
|
5972
5810
|
return innerCodes;
|
|
5973
5811
|
}
|
|
5974
|
-
|
|
5975
5812
|
//#endregion
|
|
5976
5813
|
//#region src/core/domain/formSchema/services/schemaSerializer.ts
|
|
5977
5814
|
function serializeSize(size) {
|
|
@@ -6073,7 +5910,6 @@ const SchemaSerializer = { serialize: (layout, fields) => {
|
|
|
6073
5910
|
defaultStringType: "PLAIN"
|
|
6074
5911
|
});
|
|
6075
5912
|
} };
|
|
6076
|
-
|
|
6077
5913
|
//#endregion
|
|
6078
5914
|
//#region src/core/application/formSchema/captureSchema.ts
|
|
6079
5915
|
async function captureSchema({ container }) {
|
|
@@ -6084,13 +5920,11 @@ async function captureSchema({ container }) {
|
|
|
6084
5920
|
hasExistingSchema: (await container.schemaStorage.get()).exists
|
|
6085
5921
|
};
|
|
6086
5922
|
}
|
|
6087
|
-
|
|
6088
5923
|
//#endregion
|
|
6089
5924
|
//#region src/core/application/formSchema/saveSchema.ts
|
|
6090
5925
|
async function saveSchema({ container, input }) {
|
|
6091
5926
|
await container.schemaStorage.update(input.schemaText);
|
|
6092
5927
|
}
|
|
6093
|
-
|
|
6094
5928
|
//#endregion
|
|
6095
5929
|
//#region src/core/domain/generalSettings/services/configSerializer.ts
|
|
6096
5930
|
function serializeConfig(config) {
|
|
@@ -6123,7 +5957,6 @@ function serializeConfig(config) {
|
|
|
6123
5957
|
const GeneralSettingsConfigSerializer = { serialize: (config) => {
|
|
6124
5958
|
return serializeToYaml(serializeConfig(config));
|
|
6125
5959
|
} };
|
|
6126
|
-
|
|
6127
5960
|
//#endregion
|
|
6128
5961
|
//#region src/core/application/generalSettings/captureGeneralSettings.ts
|
|
6129
5962
|
async function captureGeneralSettings({ container }) {
|
|
@@ -6133,13 +5966,11 @@ async function captureGeneralSettings({ container }) {
|
|
|
6133
5966
|
getStorage: () => container.generalSettingsStorage.get()
|
|
6134
5967
|
});
|
|
6135
5968
|
}
|
|
6136
|
-
|
|
6137
5969
|
//#endregion
|
|
6138
5970
|
//#region src/core/application/generalSettings/saveGeneralSettings.ts
|
|
6139
5971
|
async function saveGeneralSettings({ container, input }) {
|
|
6140
5972
|
await container.generalSettingsStorage.update(input.configText);
|
|
6141
5973
|
}
|
|
6142
|
-
|
|
6143
5974
|
//#endregion
|
|
6144
5975
|
//#region src/core/domain/notification/services/configSerializer.ts
|
|
6145
5976
|
function serializeEntity$1(entity) {
|
|
@@ -6197,7 +6028,6 @@ const NotificationConfigSerializer = { serialize: (config) => {
|
|
|
6197
6028
|
};
|
|
6198
6029
|
return serializeToYaml(serialized);
|
|
6199
6030
|
} };
|
|
6200
|
-
|
|
6201
6031
|
//#endregion
|
|
6202
6032
|
//#region src/core/application/notification/captureNotification.ts
|
|
6203
6033
|
async function captureNotification({ container }) {
|
|
@@ -6222,13 +6052,11 @@ async function captureNotification({ container }) {
|
|
|
6222
6052
|
hasExistingConfig: (await container.notificationStorage.get()).exists
|
|
6223
6053
|
};
|
|
6224
6054
|
}
|
|
6225
|
-
|
|
6226
6055
|
//#endregion
|
|
6227
6056
|
//#region src/core/application/notification/saveNotification.ts
|
|
6228
6057
|
async function saveNotification({ container, input }) {
|
|
6229
6058
|
await container.notificationStorage.update(input.configText);
|
|
6230
6059
|
}
|
|
6231
|
-
|
|
6232
6060
|
//#endregion
|
|
6233
6061
|
//#region src/core/domain/plugin/services/configSerializer.ts
|
|
6234
6062
|
const PluginConfigSerializer = { serialize: (config) => {
|
|
@@ -6238,7 +6066,6 @@ const PluginConfigSerializer = { serialize: (config) => {
|
|
|
6238
6066
|
enabled: plugin.enabled
|
|
6239
6067
|
})) });
|
|
6240
6068
|
} };
|
|
6241
|
-
|
|
6242
6069
|
//#endregion
|
|
6243
6070
|
//#region src/core/application/plugin/capturePlugin.ts
|
|
6244
6071
|
async function capturePlugin({ container }) {
|
|
@@ -6248,13 +6075,11 @@ async function capturePlugin({ container }) {
|
|
|
6248
6075
|
getStorage: () => container.pluginStorage.get()
|
|
6249
6076
|
});
|
|
6250
6077
|
}
|
|
6251
|
-
|
|
6252
6078
|
//#endregion
|
|
6253
6079
|
//#region src/core/application/plugin/savePlugin.ts
|
|
6254
6080
|
async function savePlugin({ container, input }) {
|
|
6255
6081
|
await container.pluginStorage.update(input.configText);
|
|
6256
6082
|
}
|
|
6257
|
-
|
|
6258
6083
|
//#endregion
|
|
6259
6084
|
//#region src/core/domain/processManagement/services/configSerializer.ts
|
|
6260
6085
|
function serializeProcessEntity(entity) {
|
|
@@ -6288,7 +6113,6 @@ const ProcessManagementConfigSerializer = { serialize: (config) => {
|
|
|
6288
6113
|
})
|
|
6289
6114
|
});
|
|
6290
6115
|
} };
|
|
6291
|
-
|
|
6292
6116
|
//#endregion
|
|
6293
6117
|
//#region src/core/application/processManagement/captureProcessManagement.ts
|
|
6294
6118
|
async function captureProcessManagement({ container }) {
|
|
@@ -6298,13 +6122,11 @@ async function captureProcessManagement({ container }) {
|
|
|
6298
6122
|
getStorage: () => container.processManagementStorage.get()
|
|
6299
6123
|
});
|
|
6300
6124
|
}
|
|
6301
|
-
|
|
6302
6125
|
//#endregion
|
|
6303
6126
|
//#region src/core/application/processManagement/saveProcessManagement.ts
|
|
6304
6127
|
async function saveProcessManagement({ container, input }) {
|
|
6305
6128
|
await container.processManagementStorage.update(input.configText);
|
|
6306
6129
|
}
|
|
6307
|
-
|
|
6308
6130
|
//#endregion
|
|
6309
6131
|
//#region src/core/domain/recordPermission/services/configSerializer.ts
|
|
6310
6132
|
function serializeRecordRightEntity(entity) {
|
|
@@ -6325,7 +6147,6 @@ const RecordPermissionConfigSerializer = { serialize: (config) => {
|
|
|
6325
6147
|
entities: right.entities.map(serializeRecordRightEntity)
|
|
6326
6148
|
})) });
|
|
6327
6149
|
} };
|
|
6328
|
-
|
|
6329
6150
|
//#endregion
|
|
6330
6151
|
//#region src/core/application/recordPermission/captureRecordPermission.ts
|
|
6331
6152
|
async function captureRecordPermission({ container }) {
|
|
@@ -6335,13 +6156,11 @@ async function captureRecordPermission({ container }) {
|
|
|
6335
6156
|
getStorage: () => container.recordPermissionStorage.get()
|
|
6336
6157
|
});
|
|
6337
6158
|
}
|
|
6338
|
-
|
|
6339
6159
|
//#endregion
|
|
6340
6160
|
//#region src/core/application/recordPermission/saveRecordPermission.ts
|
|
6341
6161
|
async function saveRecordPermission({ container, input }) {
|
|
6342
6162
|
await container.recordPermissionStorage.update(input.configText);
|
|
6343
6163
|
}
|
|
6344
|
-
|
|
6345
6164
|
//#endregion
|
|
6346
6165
|
//#region src/core/domain/report/services/configSerializer.ts
|
|
6347
6166
|
function serializeGroup(group) {
|
|
@@ -6396,7 +6215,6 @@ const ReportConfigSerializer = { serialize: (config) => {
|
|
|
6396
6215
|
serialized.reports = reports;
|
|
6397
6216
|
return serializeToYaml(serialized);
|
|
6398
6217
|
} };
|
|
6399
|
-
|
|
6400
6218
|
//#endregion
|
|
6401
6219
|
//#region src/core/application/report/captureReport.ts
|
|
6402
6220
|
async function captureReport({ container }) {
|
|
@@ -6406,13 +6224,11 @@ async function captureReport({ container }) {
|
|
|
6406
6224
|
getStorage: () => container.reportStorage.get()
|
|
6407
6225
|
});
|
|
6408
6226
|
}
|
|
6409
|
-
|
|
6410
6227
|
//#endregion
|
|
6411
6228
|
//#region src/core/application/report/saveReport.ts
|
|
6412
6229
|
async function saveReport({ container, input }) {
|
|
6413
6230
|
await container.reportStorage.update(input.configText);
|
|
6414
6231
|
}
|
|
6415
|
-
|
|
6416
6232
|
//#endregion
|
|
6417
6233
|
//#region src/core/domain/seedData/services/seedSerializer.ts
|
|
6418
6234
|
const SeedSerializer = { serialize: (seedData) => {
|
|
@@ -6426,14 +6242,12 @@ const SeedSerializer = { serialize: (seedData) => {
|
|
|
6426
6242
|
defaultStringType: "PLAIN"
|
|
6427
6243
|
});
|
|
6428
6244
|
} };
|
|
6429
|
-
|
|
6430
6245
|
//#endregion
|
|
6431
6246
|
//#region src/core/domain/seedData/valueObject.ts
|
|
6432
6247
|
const UpsertKey = { create: (key) => {
|
|
6433
6248
|
if (key.length === 0) throw new BusinessRuleError(SeedDataErrorCode.SdEmptyUpsertKey, "Upsert key cannot be empty");
|
|
6434
6249
|
return key;
|
|
6435
6250
|
} };
|
|
6436
|
-
|
|
6437
6251
|
//#endregion
|
|
6438
6252
|
//#region src/core/application/seedData/captureSeed.ts
|
|
6439
6253
|
async function captureSeed({ container, input }) {
|
|
@@ -6450,13 +6264,11 @@ async function captureSeed({ container, input }) {
|
|
|
6450
6264
|
hasExistingSeed: existing.exists
|
|
6451
6265
|
};
|
|
6452
6266
|
}
|
|
6453
|
-
|
|
6454
6267
|
//#endregion
|
|
6455
6268
|
//#region src/core/application/seedData/saveSeed.ts
|
|
6456
6269
|
async function saveSeed({ container, input }) {
|
|
6457
6270
|
await container.seedStorage.update(input.seedText);
|
|
6458
6271
|
}
|
|
6459
|
-
|
|
6460
6272
|
//#endregion
|
|
6461
6273
|
//#region src/core/domain/view/services/configSerializer.ts
|
|
6462
6274
|
function serializeViewConfig(config) {
|
|
@@ -6480,7 +6292,6 @@ const ViewConfigSerializer = { serialize: (config) => {
|
|
|
6480
6292
|
for (const [name, viewConfig] of Object.entries(config.views)) serialized[name] = serializeViewConfig(viewConfig);
|
|
6481
6293
|
return serializeToYaml({ views: serialized });
|
|
6482
6294
|
} };
|
|
6483
|
-
|
|
6484
6295
|
//#endregion
|
|
6485
6296
|
//#region src/core/application/view/captureView.ts
|
|
6486
6297
|
async function captureView({ container }) {
|
|
@@ -6490,13 +6301,11 @@ async function captureView({ container }) {
|
|
|
6490
6301
|
getStorage: () => container.viewStorage.get()
|
|
6491
6302
|
});
|
|
6492
6303
|
}
|
|
6493
|
-
|
|
6494
6304
|
//#endregion
|
|
6495
6305
|
//#region src/core/application/view/saveView.ts
|
|
6496
6306
|
async function saveView({ container, input }) {
|
|
6497
6307
|
await container.viewStorage.update(input.configText);
|
|
6498
6308
|
}
|
|
6499
|
-
|
|
6500
6309
|
//#endregion
|
|
6501
6310
|
//#region src/core/application/init/captureAllForApp.ts
|
|
6502
6311
|
function buildStandardTask(domain, container, capture, save) {
|
|
@@ -6602,8 +6411,6 @@ function isFatalError(error) {
|
|
|
6602
6411
|
if (isSystemError(error) && error.code === SystemErrorCode.NetworkError) return true;
|
|
6603
6412
|
return false;
|
|
6604
6413
|
}
|
|
6605
|
-
/** Number of domains to capture concurrently within each batch. */
|
|
6606
|
-
const CAPTURE_BATCH_SIZE = 4;
|
|
6607
6414
|
/**
|
|
6608
6415
|
* Capture all domains for a single app, processing tasks in concurrent batches.
|
|
6609
6416
|
*
|
|
@@ -6615,8 +6422,8 @@ const CAPTURE_BATCH_SIZE = 4;
|
|
|
6615
6422
|
async function captureAllForApp(args) {
|
|
6616
6423
|
const tasks = buildCaptureTasks(args);
|
|
6617
6424
|
const results = [];
|
|
6618
|
-
for (let i = 0; i < tasks.length; i +=
|
|
6619
|
-
const batch = tasks.slice(i, i +
|
|
6425
|
+
for (let i = 0; i < tasks.length; i += 4) {
|
|
6426
|
+
const batch = tasks.slice(i, i + 4);
|
|
6620
6427
|
const settled = await Promise.allSettled(batch.map((task) => task.run()));
|
|
6621
6428
|
let fatalDomain;
|
|
6622
6429
|
let fatalReason;
|
|
@@ -6638,7 +6445,7 @@ async function captureAllForApp(args) {
|
|
|
6638
6445
|
}
|
|
6639
6446
|
if (fatalDomain !== void 0) {
|
|
6640
6447
|
const skipError = new SystemError(SystemErrorCode.InternalServerError, `Skipped due to fatal error in "${fatalDomain}"`, fatalReason);
|
|
6641
|
-
for (const remaining of tasks.slice(i +
|
|
6448
|
+
for (const remaining of tasks.slice(i + 4)) results.push({
|
|
6642
6449
|
domain: remaining.domain,
|
|
6643
6450
|
success: false,
|
|
6644
6451
|
error: skipError
|
|
@@ -6648,7 +6455,6 @@ async function captureAllForApp(args) {
|
|
|
6648
6455
|
}
|
|
6649
6456
|
return results;
|
|
6650
6457
|
}
|
|
6651
|
-
|
|
6652
6458
|
//#endregion
|
|
6653
6459
|
//#region src/core/application/init/fetchSpaceApps.ts
|
|
6654
6460
|
async function fetchSpaceApps(args) {
|
|
@@ -6656,7 +6462,6 @@ async function fetchSpaceApps(args) {
|
|
|
6656
6462
|
if (apps.length === 0) throw new NotFoundError(NotFoundErrorCode.NotFound, `No apps found in space ID: ${args.input.spaceId}`);
|
|
6657
6463
|
return apps;
|
|
6658
6464
|
}
|
|
6659
|
-
|
|
6660
6465
|
//#endregion
|
|
6661
6466
|
//#region src/core/domain/space/entity.ts
|
|
6662
6467
|
const UNSAFE_PATH_CHARS = /[<>:"/\\|?*\u0000-\u001f]/g;
|
|
@@ -6668,7 +6473,6 @@ function resolveAppName(app) {
|
|
|
6668
6473
|
const raw = app.code !== "" ? app.code : app.name !== "" ? app.name : `app-${app.appId}`;
|
|
6669
6474
|
return AppName.create(sanitizeForFileSystem(raw));
|
|
6670
6475
|
}
|
|
6671
|
-
|
|
6672
6476
|
//#endregion
|
|
6673
6477
|
//#region src/core/application/init/generateProjectConfig.ts
|
|
6674
6478
|
function deduplicateAppName(baseName, usedNames) {
|
|
@@ -6693,7 +6497,6 @@ function generateProjectConfig(input) {
|
|
|
6693
6497
|
apps
|
|
6694
6498
|
}, { lineWidth: 0 });
|
|
6695
6499
|
}
|
|
6696
|
-
|
|
6697
6500
|
//#endregion
|
|
6698
6501
|
//#region src/cli/commands/init.ts
|
|
6699
6502
|
const initArgs = {
|
|
@@ -6831,7 +6634,6 @@ var init_default = define({
|
|
|
6831
6634
|
}
|
|
6832
6635
|
}
|
|
6833
6636
|
});
|
|
6834
|
-
|
|
6835
6637
|
//#endregion
|
|
6836
6638
|
//#region src/core/domain/notification/services/configParser.ts
|
|
6837
6639
|
function parseEntity$1(raw, context) {
|
|
@@ -6942,13 +6744,11 @@ const NotificationConfigParser = { parse: (rawText) => {
|
|
|
6942
6744
|
if (obj.reminder !== void 0) config.reminder = parseReminderConfig(obj.reminder);
|
|
6943
6745
|
return config;
|
|
6944
6746
|
} };
|
|
6945
|
-
|
|
6946
6747
|
//#endregion
|
|
6947
6748
|
//#region src/core/application/notification/parseConfig.ts
|
|
6948
6749
|
function parseNotificationConfigText(rawText) {
|
|
6949
6750
|
return wrapBusinessRuleError(() => NotificationConfigParser.parse(rawText));
|
|
6950
6751
|
}
|
|
6951
|
-
|
|
6952
6752
|
//#endregion
|
|
6953
6753
|
//#region src/core/application/notification/applyNotification.ts
|
|
6954
6754
|
/**
|
|
@@ -6988,7 +6788,6 @@ async function applyNotification({ container }) {
|
|
|
6988
6788
|
});
|
|
6989
6789
|
}
|
|
6990
6790
|
}
|
|
6991
|
-
|
|
6992
6791
|
//#endregion
|
|
6993
6792
|
//#region src/cli/notificationConfig.ts
|
|
6994
6793
|
const notificationArgs = {
|
|
@@ -7010,7 +6809,6 @@ const { resolveFilePath: resolveNotificationFilePath, resolveContainerConfig: re
|
|
|
7010
6809
|
notificationFilePath: filePath
|
|
7011
6810
|
})
|
|
7012
6811
|
});
|
|
7013
|
-
|
|
7014
6812
|
//#endregion
|
|
7015
6813
|
//#region src/cli/commands/notification/apply.ts
|
|
7016
6814
|
async function runNotification(config) {
|
|
@@ -7057,7 +6855,6 @@ var apply_default$7 = define({
|
|
|
7057
6855
|
}
|
|
7058
6856
|
}
|
|
7059
6857
|
});
|
|
7060
|
-
|
|
7061
6858
|
//#endregion
|
|
7062
6859
|
//#region src/cli/commands/notification/capture.ts
|
|
7063
6860
|
async function runCaptureNotification(config) {
|
|
@@ -7100,7 +6897,6 @@ var capture_default$8 = define({
|
|
|
7100
6897
|
}
|
|
7101
6898
|
}
|
|
7102
6899
|
});
|
|
7103
|
-
|
|
7104
6900
|
//#endregion
|
|
7105
6901
|
//#region src/lib/groupByKey.ts
|
|
7106
6902
|
/**
|
|
@@ -7117,7 +6913,6 @@ function groupByKey(items, keyFn) {
|
|
|
7117
6913
|
}
|
|
7118
6914
|
return map;
|
|
7119
6915
|
}
|
|
7120
|
-
|
|
7121
6916
|
//#endregion
|
|
7122
6917
|
//#region src/core/domain/notification/services/diffDetector.ts
|
|
7123
6918
|
function serializeEntity(entity) {
|
|
@@ -7307,7 +7102,6 @@ const NotificationDiffDetector = { detect: (local, remote) => {
|
|
|
7307
7102
|
});
|
|
7308
7103
|
return buildDiffResult(entries);
|
|
7309
7104
|
} };
|
|
7310
|
-
|
|
7311
7105
|
//#endregion
|
|
7312
7106
|
//#region src/core/application/notification/detectNotificationDiff.ts
|
|
7313
7107
|
async function detectNotificationDiff({ container }) {
|
|
@@ -7332,21 +7126,6 @@ async function detectNotificationDiff({ container }) {
|
|
|
7332
7126
|
};
|
|
7333
7127
|
return NotificationDiffDetector.detect(localConfig, remoteConfig);
|
|
7334
7128
|
}
|
|
7335
|
-
|
|
7336
|
-
//#endregion
|
|
7337
|
-
//#region src/cli/commands/notification/diff.ts
|
|
7338
|
-
var diff_default$7 = createDiffCommand({
|
|
7339
|
-
description: "Compare local notification config with remote kintone app",
|
|
7340
|
-
args: notificationArgs,
|
|
7341
|
-
spinnerMessage: "Comparing notification settings...",
|
|
7342
|
-
multiAppSuccessMessage: "All notification diffs completed successfully.",
|
|
7343
|
-
createContainer: createNotificationCliContainer,
|
|
7344
|
-
detectDiff: detectNotificationDiff,
|
|
7345
|
-
printResult: printNotificationDiffResult,
|
|
7346
|
-
resolveContainerConfig: resolveNotificationContainerConfig,
|
|
7347
|
-
resolveAppContainerConfig: resolveNotificationAppContainerConfig
|
|
7348
|
-
});
|
|
7349
|
-
|
|
7350
7129
|
//#endregion
|
|
7351
7130
|
//#region src/cli/commands/notification/index.ts
|
|
7352
7131
|
var notification_default = define({
|
|
@@ -7355,11 +7134,20 @@ var notification_default = define({
|
|
|
7355
7134
|
subCommands: {
|
|
7356
7135
|
apply: apply_default$7,
|
|
7357
7136
|
capture: capture_default$8,
|
|
7358
|
-
diff:
|
|
7137
|
+
diff: createDiffCommand({
|
|
7138
|
+
description: "Compare local notification config with remote kintone app",
|
|
7139
|
+
args: notificationArgs,
|
|
7140
|
+
spinnerMessage: "Comparing notification settings...",
|
|
7141
|
+
multiAppSuccessMessage: "All notification diffs completed successfully.",
|
|
7142
|
+
createContainer: createNotificationCliContainer,
|
|
7143
|
+
detectDiff: detectNotificationDiff,
|
|
7144
|
+
printResult: printNotificationDiffResult,
|
|
7145
|
+
resolveContainerConfig: resolveNotificationContainerConfig,
|
|
7146
|
+
resolveAppContainerConfig: resolveNotificationAppContainerConfig
|
|
7147
|
+
})
|
|
7359
7148
|
},
|
|
7360
7149
|
run: () => {}
|
|
7361
7150
|
});
|
|
7362
|
-
|
|
7363
7151
|
//#endregion
|
|
7364
7152
|
//#region src/core/domain/plugin/services/configParser.ts
|
|
7365
7153
|
function parsePluginEntry(raw, index) {
|
|
@@ -7387,13 +7175,11 @@ const PluginConfigParser = { parse: (rawText) => {
|
|
|
7387
7175
|
}
|
|
7388
7176
|
return { plugins };
|
|
7389
7177
|
} };
|
|
7390
|
-
|
|
7391
7178
|
//#endregion
|
|
7392
7179
|
//#region src/core/application/plugin/parseConfig.ts
|
|
7393
7180
|
function parsePluginConfigText(rawText) {
|
|
7394
7181
|
return wrapBusinessRuleError(() => PluginConfigParser.parse(rawText));
|
|
7395
7182
|
}
|
|
7396
|
-
|
|
7397
7183
|
//#endregion
|
|
7398
7184
|
//#region src/core/application/plugin/applyPlugin.ts
|
|
7399
7185
|
async function applyPlugin({ container }) {
|
|
@@ -7408,7 +7194,6 @@ async function applyPlugin({ container }) {
|
|
|
7408
7194
|
revision: current.revision
|
|
7409
7195
|
});
|
|
7410
7196
|
}
|
|
7411
|
-
|
|
7412
7197
|
//#endregion
|
|
7413
7198
|
//#region src/cli/pluginConfig.ts
|
|
7414
7199
|
const pluginArgs = {
|
|
@@ -7430,7 +7215,6 @@ const { resolveFilePath: resolvePluginFilePath, resolveContainerConfig: resolveP
|
|
|
7430
7215
|
pluginFilePath: filePath
|
|
7431
7216
|
})
|
|
7432
7217
|
});
|
|
7433
|
-
|
|
7434
7218
|
//#endregion
|
|
7435
7219
|
//#region src/cli/commands/plugin/apply.ts
|
|
7436
7220
|
async function runPlugin(config) {
|
|
@@ -7477,7 +7261,6 @@ var apply_default$6 = define({
|
|
|
7477
7261
|
}
|
|
7478
7262
|
}
|
|
7479
7263
|
});
|
|
7480
|
-
|
|
7481
7264
|
//#endregion
|
|
7482
7265
|
//#region src/cli/commands/plugin/capture.ts
|
|
7483
7266
|
async function runCapturePlugin(config) {
|
|
@@ -7520,7 +7303,6 @@ var capture_default$7 = define({
|
|
|
7520
7303
|
}
|
|
7521
7304
|
}
|
|
7522
7305
|
});
|
|
7523
|
-
|
|
7524
7306
|
//#endregion
|
|
7525
7307
|
//#region src/core/domain/plugin/services/diffDetector.ts
|
|
7526
7308
|
const PluginDiffDetector = { detect: (local, remote) => {
|
|
@@ -7552,7 +7334,6 @@ const PluginDiffDetector = { detect: (local, remote) => {
|
|
|
7552
7334
|
});
|
|
7553
7335
|
return buildDiffResult(entries);
|
|
7554
7336
|
} };
|
|
7555
|
-
|
|
7556
7337
|
//#endregion
|
|
7557
7338
|
//#region src/core/application/plugin/detectPluginDiff.ts
|
|
7558
7339
|
async function detectPluginDiff({ container }) {
|
|
@@ -7564,21 +7345,6 @@ async function detectPluginDiff({ container }) {
|
|
|
7564
7345
|
notFoundMessage: "Plugin config file not found"
|
|
7565
7346
|
});
|
|
7566
7347
|
}
|
|
7567
|
-
|
|
7568
|
-
//#endregion
|
|
7569
|
-
//#region src/cli/commands/plugin/diff.ts
|
|
7570
|
-
var diff_default$6 = createDiffCommand({
|
|
7571
|
-
description: "Compare local plugin config with remote kintone app",
|
|
7572
|
-
args: pluginArgs,
|
|
7573
|
-
spinnerMessage: "Comparing plugin settings...",
|
|
7574
|
-
multiAppSuccessMessage: "All plugin diffs completed successfully.",
|
|
7575
|
-
createContainer: createPluginCliContainer,
|
|
7576
|
-
detectDiff: detectPluginDiff,
|
|
7577
|
-
printResult: printPluginDiffResult,
|
|
7578
|
-
resolveContainerConfig: resolvePluginContainerConfig,
|
|
7579
|
-
resolveAppContainerConfig: resolvePluginAppContainerConfig
|
|
7580
|
-
});
|
|
7581
|
-
|
|
7582
7348
|
//#endregion
|
|
7583
7349
|
//#region src/cli/commands/plugin/index.ts
|
|
7584
7350
|
var plugin_default = define({
|
|
@@ -7587,11 +7353,20 @@ var plugin_default = define({
|
|
|
7587
7353
|
subCommands: {
|
|
7588
7354
|
apply: apply_default$6,
|
|
7589
7355
|
capture: capture_default$7,
|
|
7590
|
-
diff:
|
|
7356
|
+
diff: createDiffCommand({
|
|
7357
|
+
description: "Compare local plugin config with remote kintone app",
|
|
7358
|
+
args: pluginArgs,
|
|
7359
|
+
spinnerMessage: "Comparing plugin settings...",
|
|
7360
|
+
multiAppSuccessMessage: "All plugin diffs completed successfully.",
|
|
7361
|
+
createContainer: createPluginCliContainer,
|
|
7362
|
+
detectDiff: detectPluginDiff,
|
|
7363
|
+
printResult: printPluginDiffResult,
|
|
7364
|
+
resolveContainerConfig: resolvePluginContainerConfig,
|
|
7365
|
+
resolveAppContainerConfig: resolvePluginAppContainerConfig
|
|
7366
|
+
})
|
|
7591
7367
|
},
|
|
7592
7368
|
run: () => {}
|
|
7593
7369
|
});
|
|
7594
|
-
|
|
7595
7370
|
//#endregion
|
|
7596
7371
|
//#region src/core/domain/processManagement/services/configParser.ts
|
|
7597
7372
|
const VALID_ASSIGNEE_TYPES = new Set([
|
|
@@ -7692,13 +7467,11 @@ const ProcessManagementConfigParser = { parse: (rawText) => {
|
|
|
7692
7467
|
actions
|
|
7693
7468
|
};
|
|
7694
7469
|
} };
|
|
7695
|
-
|
|
7696
7470
|
//#endregion
|
|
7697
7471
|
//#region src/core/application/processManagement/parseConfig.ts
|
|
7698
7472
|
function parseProcessManagementConfigText(rawText) {
|
|
7699
7473
|
return wrapBusinessRuleError(() => ProcessManagementConfigParser.parse(rawText));
|
|
7700
7474
|
}
|
|
7701
|
-
|
|
7702
7475
|
//#endregion
|
|
7703
7476
|
//#region src/core/application/processManagement/applyProcessManagement.ts
|
|
7704
7477
|
async function applyProcessManagement({ container }) {
|
|
@@ -7716,7 +7489,6 @@ async function applyProcessManagement({ container }) {
|
|
|
7716
7489
|
newEnable: config.enable
|
|
7717
7490
|
};
|
|
7718
7491
|
}
|
|
7719
|
-
|
|
7720
7492
|
//#endregion
|
|
7721
7493
|
//#region src/cli/processConfig.ts
|
|
7722
7494
|
const processArgs = {
|
|
@@ -7738,7 +7510,6 @@ const { resolveFilePath: resolveProcessFilePath, resolveContainerConfig: resolve
|
|
|
7738
7510
|
processFilePath: filePath
|
|
7739
7511
|
})
|
|
7740
7512
|
});
|
|
7741
|
-
|
|
7742
7513
|
//#endregion
|
|
7743
7514
|
//#region src/cli/commands/process/apply.ts
|
|
7744
7515
|
async function runProcessApply(config) {
|
|
@@ -7786,7 +7557,6 @@ var apply_default$5 = define({
|
|
|
7786
7557
|
}
|
|
7787
7558
|
}
|
|
7788
7559
|
});
|
|
7789
|
-
|
|
7790
7560
|
//#endregion
|
|
7791
7561
|
//#region src/cli/commands/process/capture.ts
|
|
7792
7562
|
async function runCaptureProcess(config) {
|
|
@@ -7829,7 +7599,6 @@ var capture_default$6 = define({
|
|
|
7829
7599
|
}
|
|
7830
7600
|
}
|
|
7831
7601
|
});
|
|
7832
|
-
|
|
7833
7602
|
//#endregion
|
|
7834
7603
|
//#region src/core/domain/processManagement/services/diffDetector.ts
|
|
7835
7604
|
function isEntityEqual(a, b) {
|
|
@@ -7924,7 +7693,6 @@ function compareConfigs$1(local, remote) {
|
|
|
7924
7693
|
const ProcessManagementDiffDetector = { detect: (local, remote) => {
|
|
7925
7694
|
return buildDiffResult(compareConfigs$1(local, remote));
|
|
7926
7695
|
} };
|
|
7927
|
-
|
|
7928
7696
|
//#endregion
|
|
7929
7697
|
//#region src/core/application/processManagement/detectProcessManagementDiff.ts
|
|
7930
7698
|
async function detectProcessManagementDiff({ container }) {
|
|
@@ -7936,21 +7704,6 @@ async function detectProcessManagementDiff({ container }) {
|
|
|
7936
7704
|
notFoundMessage: "Process management config file not found"
|
|
7937
7705
|
});
|
|
7938
7706
|
}
|
|
7939
|
-
|
|
7940
|
-
//#endregion
|
|
7941
|
-
//#region src/cli/commands/process/diff.ts
|
|
7942
|
-
var diff_default$5 = createDiffCommand({
|
|
7943
|
-
description: "Compare local process management settings with remote kintone app",
|
|
7944
|
-
args: processArgs,
|
|
7945
|
-
spinnerMessage: "Comparing process management settings...",
|
|
7946
|
-
multiAppSuccessMessage: "All process management diffs completed successfully.",
|
|
7947
|
-
createContainer: createProcessManagementCliContainer,
|
|
7948
|
-
detectDiff: detectProcessManagementDiff,
|
|
7949
|
-
printResult: printProcessDiffResult,
|
|
7950
|
-
resolveContainerConfig: resolveProcessContainerConfig,
|
|
7951
|
-
resolveAppContainerConfig: resolveProcessAppContainerConfig
|
|
7952
|
-
});
|
|
7953
|
-
|
|
7954
7707
|
//#endregion
|
|
7955
7708
|
//#region src/cli/commands/process/index.ts
|
|
7956
7709
|
var process_default = define({
|
|
@@ -7959,11 +7712,20 @@ var process_default = define({
|
|
|
7959
7712
|
subCommands: {
|
|
7960
7713
|
apply: apply_default$5,
|
|
7961
7714
|
capture: capture_default$6,
|
|
7962
|
-
diff:
|
|
7715
|
+
diff: createDiffCommand({
|
|
7716
|
+
description: "Compare local process management settings with remote kintone app",
|
|
7717
|
+
args: processArgs,
|
|
7718
|
+
spinnerMessage: "Comparing process management settings...",
|
|
7719
|
+
multiAppSuccessMessage: "All process management diffs completed successfully.",
|
|
7720
|
+
createContainer: createProcessManagementCliContainer,
|
|
7721
|
+
detectDiff: detectProcessManagementDiff,
|
|
7722
|
+
printResult: printProcessDiffResult,
|
|
7723
|
+
resolveContainerConfig: resolveProcessContainerConfig,
|
|
7724
|
+
resolveAppContainerConfig: resolveProcessAppContainerConfig
|
|
7725
|
+
})
|
|
7963
7726
|
},
|
|
7964
7727
|
run: () => {}
|
|
7965
7728
|
});
|
|
7966
|
-
|
|
7967
7729
|
//#endregion
|
|
7968
7730
|
//#region src/core/domain/recordPermission/services/configParser.ts
|
|
7969
7731
|
const VALID_ENTITY_TYPES = new Set([
|
|
@@ -8018,13 +7780,11 @@ const RecordPermissionConfigParser = { parse: (rawText) => {
|
|
|
8018
7780
|
}
|
|
8019
7781
|
return { rights };
|
|
8020
7782
|
} };
|
|
8021
|
-
|
|
8022
7783
|
//#endregion
|
|
8023
7784
|
//#region src/core/application/recordPermission/parseConfig.ts
|
|
8024
7785
|
function parseRecordPermissionConfigText(rawText) {
|
|
8025
7786
|
return wrapBusinessRuleError(() => RecordPermissionConfigParser.parse(rawText));
|
|
8026
7787
|
}
|
|
8027
|
-
|
|
8028
7788
|
//#endregion
|
|
8029
7789
|
//#region src/core/application/recordPermission/applyRecordPermission.ts
|
|
8030
7790
|
async function applyRecordPermission({ container }) {
|
|
@@ -8041,7 +7801,6 @@ async function applyRecordPermission({ container }) {
|
|
|
8041
7801
|
notFoundMessage: "Record permission config file not found"
|
|
8042
7802
|
});
|
|
8043
7803
|
}
|
|
8044
|
-
|
|
8045
7804
|
//#endregion
|
|
8046
7805
|
//#region src/cli/recordAclConfig.ts
|
|
8047
7806
|
const recordAclArgs = {
|
|
@@ -8063,7 +7822,6 @@ const { resolveFilePath: resolveRecordAclFilePath, resolveContainerConfig: resol
|
|
|
8063
7822
|
recordAclFilePath: filePath
|
|
8064
7823
|
})
|
|
8065
7824
|
});
|
|
8066
|
-
|
|
8067
7825
|
//#endregion
|
|
8068
7826
|
//#region src/cli/commands/record-acl/apply.ts
|
|
8069
7827
|
async function runRecordAcl(config) {
|
|
@@ -8110,7 +7868,6 @@ var apply_default$4 = define({
|
|
|
8110
7868
|
}
|
|
8111
7869
|
}
|
|
8112
7870
|
});
|
|
8113
|
-
|
|
8114
7871
|
//#endregion
|
|
8115
7872
|
//#region src/cli/commands/record-acl/capture.ts
|
|
8116
7873
|
async function runCaptureRecordAcl(config) {
|
|
@@ -8153,7 +7910,6 @@ var capture_default$5 = define({
|
|
|
8153
7910
|
}
|
|
8154
7911
|
}
|
|
8155
7912
|
});
|
|
8156
|
-
|
|
8157
7913
|
//#endregion
|
|
8158
7914
|
//#region src/core/domain/recordPermission/services/diffDetector.ts
|
|
8159
7915
|
function isRightEqual(a, b) {
|
|
@@ -8225,7 +7981,6 @@ const RecordPermissionDiffDetector = { detect: (local, remote) => {
|
|
|
8225
7981
|
});
|
|
8226
7982
|
return buildDiffResult(entries);
|
|
8227
7983
|
} };
|
|
8228
|
-
|
|
8229
7984
|
//#endregion
|
|
8230
7985
|
//#region src/core/application/recordPermission/detectRecordPermissionDiff.ts
|
|
8231
7986
|
async function detectRecordPermissionDiff({ container }) {
|
|
@@ -8237,21 +7992,6 @@ async function detectRecordPermissionDiff({ container }) {
|
|
|
8237
7992
|
notFoundMessage: "Record permission config file not found"
|
|
8238
7993
|
});
|
|
8239
7994
|
}
|
|
8240
|
-
|
|
8241
|
-
//#endregion
|
|
8242
|
-
//#region src/cli/commands/record-acl/diff.ts
|
|
8243
|
-
var diff_default$4 = createDiffCommand({
|
|
8244
|
-
description: "Compare local record permission config with remote kintone app",
|
|
8245
|
-
args: recordAclArgs,
|
|
8246
|
-
spinnerMessage: "Comparing record permissions...",
|
|
8247
|
-
multiAppSuccessMessage: "All record permission diffs completed successfully.",
|
|
8248
|
-
createContainer: createRecordPermissionCliContainer,
|
|
8249
|
-
detectDiff: detectRecordPermissionDiff,
|
|
8250
|
-
printResult: printRecordPermissionDiffResult,
|
|
8251
|
-
resolveContainerConfig: resolveRecordAclContainerConfig,
|
|
8252
|
-
resolveAppContainerConfig: resolveRecordAclAppContainerConfig
|
|
8253
|
-
});
|
|
8254
|
-
|
|
8255
7995
|
//#endregion
|
|
8256
7996
|
//#region src/cli/commands/record-acl/index.ts
|
|
8257
7997
|
var record_acl_default = define({
|
|
@@ -8260,11 +8000,20 @@ var record_acl_default = define({
|
|
|
8260
8000
|
subCommands: {
|
|
8261
8001
|
apply: apply_default$4,
|
|
8262
8002
|
capture: capture_default$5,
|
|
8263
|
-
diff:
|
|
8003
|
+
diff: createDiffCommand({
|
|
8004
|
+
description: "Compare local record permission config with remote kintone app",
|
|
8005
|
+
args: recordAclArgs,
|
|
8006
|
+
spinnerMessage: "Comparing record permissions...",
|
|
8007
|
+
multiAppSuccessMessage: "All record permission diffs completed successfully.",
|
|
8008
|
+
createContainer: createRecordPermissionCliContainer,
|
|
8009
|
+
detectDiff: detectRecordPermissionDiff,
|
|
8010
|
+
printResult: printRecordPermissionDiffResult,
|
|
8011
|
+
resolveContainerConfig: resolveRecordAclContainerConfig,
|
|
8012
|
+
resolveAppContainerConfig: resolveRecordAclAppContainerConfig
|
|
8013
|
+
})
|
|
8264
8014
|
},
|
|
8265
8015
|
run: () => {}
|
|
8266
8016
|
});
|
|
8267
|
-
|
|
8268
8017
|
//#endregion
|
|
8269
8018
|
//#region src/core/domain/report/services/configParser.ts
|
|
8270
8019
|
function parseGroup(raw, index) {
|
|
@@ -8405,13 +8154,11 @@ const ReportConfigParser = { parse: (rawText) => {
|
|
|
8405
8154
|
for (const [name, value] of Object.entries(rawReports)) reports[name] = parseReportConfig(value, name);
|
|
8406
8155
|
return { reports };
|
|
8407
8156
|
} };
|
|
8408
|
-
|
|
8409
8157
|
//#endregion
|
|
8410
8158
|
//#region src/core/application/report/parseConfig.ts
|
|
8411
8159
|
function parseReportConfigText(rawText) {
|
|
8412
8160
|
return wrapBusinessRuleError(() => ReportConfigParser.parse(rawText));
|
|
8413
8161
|
}
|
|
8414
|
-
|
|
8415
8162
|
//#endregion
|
|
8416
8163
|
//#region src/core/application/report/applyReport.ts
|
|
8417
8164
|
async function applyReport({ container }) {
|
|
@@ -8428,7 +8175,6 @@ async function applyReport({ container }) {
|
|
|
8428
8175
|
notFoundMessage: "Report config file not found"
|
|
8429
8176
|
});
|
|
8430
8177
|
}
|
|
8431
|
-
|
|
8432
8178
|
//#endregion
|
|
8433
8179
|
//#region src/cli/reportConfig.ts
|
|
8434
8180
|
const reportArgs = {
|
|
@@ -8450,7 +8196,6 @@ const { resolveFilePath: resolveReportFilePath, resolveContainerConfig: resolveR
|
|
|
8450
8196
|
reportFilePath: filePath
|
|
8451
8197
|
})
|
|
8452
8198
|
});
|
|
8453
|
-
|
|
8454
8199
|
//#endregion
|
|
8455
8200
|
//#region src/cli/commands/report/apply.ts
|
|
8456
8201
|
async function runReport(config) {
|
|
@@ -8497,7 +8242,6 @@ var apply_default$3 = define({
|
|
|
8497
8242
|
}
|
|
8498
8243
|
}
|
|
8499
8244
|
});
|
|
8500
|
-
|
|
8501
8245
|
//#endregion
|
|
8502
8246
|
//#region src/cli/commands/report/capture.ts
|
|
8503
8247
|
async function runCaptureReport(config) {
|
|
@@ -8540,7 +8284,6 @@ var capture_default$4 = define({
|
|
|
8540
8284
|
}
|
|
8541
8285
|
}
|
|
8542
8286
|
});
|
|
8543
|
-
|
|
8544
8287
|
//#endregion
|
|
8545
8288
|
//#region src/core/domain/report/services/diffDetector.ts
|
|
8546
8289
|
function compareReports(local, remote) {
|
|
@@ -8578,7 +8321,6 @@ const ReportDiffDetector = { detect: (local, remote) => {
|
|
|
8578
8321
|
})
|
|
8579
8322
|
}));
|
|
8580
8323
|
} };
|
|
8581
|
-
|
|
8582
8324
|
//#endregion
|
|
8583
8325
|
//#region src/core/application/report/detectReportDiff.ts
|
|
8584
8326
|
async function detectReportDiff({ container }) {
|
|
@@ -8590,21 +8332,6 @@ async function detectReportDiff({ container }) {
|
|
|
8590
8332
|
notFoundMessage: "Report config file not found"
|
|
8591
8333
|
});
|
|
8592
8334
|
}
|
|
8593
|
-
|
|
8594
|
-
//#endregion
|
|
8595
|
-
//#region src/cli/commands/report/diff.ts
|
|
8596
|
-
var diff_default$3 = createDiffCommand({
|
|
8597
|
-
description: "Compare local report config with remote kintone app",
|
|
8598
|
-
args: reportArgs,
|
|
8599
|
-
spinnerMessage: "Comparing report settings...",
|
|
8600
|
-
multiAppSuccessMessage: "All report diffs completed successfully.",
|
|
8601
|
-
createContainer: createReportCliContainer,
|
|
8602
|
-
detectDiff: detectReportDiff,
|
|
8603
|
-
printResult: printReportDiffResult,
|
|
8604
|
-
resolveContainerConfig: resolveReportContainerConfig,
|
|
8605
|
-
resolveAppContainerConfig: resolveReportAppContainerConfig
|
|
8606
|
-
});
|
|
8607
|
-
|
|
8608
8335
|
//#endregion
|
|
8609
8336
|
//#region src/cli/commands/report/index.ts
|
|
8610
8337
|
var report_default = define({
|
|
@@ -8613,11 +8340,20 @@ var report_default = define({
|
|
|
8613
8340
|
subCommands: {
|
|
8614
8341
|
apply: apply_default$3,
|
|
8615
8342
|
capture: capture_default$4,
|
|
8616
|
-
diff:
|
|
8343
|
+
diff: createDiffCommand({
|
|
8344
|
+
description: "Compare local report config with remote kintone app",
|
|
8345
|
+
args: reportArgs,
|
|
8346
|
+
spinnerMessage: "Comparing report settings...",
|
|
8347
|
+
multiAppSuccessMessage: "All report diffs completed successfully.",
|
|
8348
|
+
createContainer: createReportCliContainer,
|
|
8349
|
+
detectDiff: detectReportDiff,
|
|
8350
|
+
printResult: printReportDiffResult,
|
|
8351
|
+
resolveContainerConfig: resolveReportContainerConfig,
|
|
8352
|
+
resolveAppContainerConfig: resolveReportAppContainerConfig
|
|
8353
|
+
})
|
|
8617
8354
|
},
|
|
8618
8355
|
run: () => {}
|
|
8619
8356
|
});
|
|
8620
|
-
|
|
8621
8357
|
//#endregion
|
|
8622
8358
|
//#region src/cli/commands/schema/capture.ts
|
|
8623
8359
|
async function runCapture(container, schemaFilePath) {
|
|
@@ -8664,7 +8400,6 @@ var capture_default$3 = define({
|
|
|
8664
8400
|
}
|
|
8665
8401
|
}
|
|
8666
8402
|
});
|
|
8667
|
-
|
|
8668
8403
|
//#endregion
|
|
8669
8404
|
//#region src/core/domain/formSchema/services/diffDetector.ts
|
|
8670
8405
|
function isMapEqual(a, b) {
|
|
@@ -8733,7 +8468,6 @@ const DiffDetector = {
|
|
|
8733
8468
|
return buildDiffResult(entries);
|
|
8734
8469
|
}
|
|
8735
8470
|
};
|
|
8736
|
-
|
|
8737
8471
|
//#endregion
|
|
8738
8472
|
//#region src/core/domain/formSchema/entity.ts
|
|
8739
8473
|
const Schema = { create: (fields, layout) => {
|
|
@@ -8743,7 +8477,6 @@ const Schema = { create: (fields, layout) => {
|
|
|
8743
8477
|
layout
|
|
8744
8478
|
};
|
|
8745
8479
|
} };
|
|
8746
|
-
|
|
8747
8480
|
//#endregion
|
|
8748
8481
|
//#region src/core/domain/formSchema/services/schemaParser.ts
|
|
8749
8482
|
const VALID_UNIT_POSITIONS = new Set(["BEFORE", "AFTER"]);
|
|
@@ -9211,13 +8944,11 @@ const SchemaParser = { parse: (rawText) => {
|
|
|
9211
8944
|
}
|
|
9212
8945
|
return Schema.create(fieldMap, layout);
|
|
9213
8946
|
} };
|
|
9214
|
-
|
|
9215
8947
|
//#endregion
|
|
9216
8948
|
//#region src/core/application/formSchema/parseSchema.ts
|
|
9217
8949
|
function parseSchemaText(rawText) {
|
|
9218
8950
|
return wrapBusinessRuleError(() => SchemaParser.parse(rawText));
|
|
9219
8951
|
}
|
|
9220
|
-
|
|
9221
8952
|
//#endregion
|
|
9222
8953
|
//#region src/core/application/formSchema/detectDiff.ts
|
|
9223
8954
|
function fieldPropertiesToDto(field) {
|
|
@@ -9268,7 +8999,6 @@ async function detectDiff({ container }) {
|
|
|
9268
8999
|
hasLayoutChanges
|
|
9269
9000
|
};
|
|
9270
9001
|
}
|
|
9271
|
-
|
|
9272
9002
|
//#endregion
|
|
9273
9003
|
//#region src/cli/commands/schema/diff.ts
|
|
9274
9004
|
async function runDiff(container) {
|
|
@@ -9313,7 +9043,6 @@ var diff_default$2 = define({
|
|
|
9313
9043
|
}
|
|
9314
9044
|
}
|
|
9315
9045
|
});
|
|
9316
|
-
|
|
9317
9046
|
//#endregion
|
|
9318
9047
|
//#region src/core/adapters/kintone/formDumpReader.ts
|
|
9319
9048
|
var KintoneFormDumpReader = class {
|
|
@@ -9339,7 +9068,6 @@ var KintoneFormDumpReader = class {
|
|
|
9339
9068
|
}
|
|
9340
9069
|
}
|
|
9341
9070
|
};
|
|
9342
|
-
|
|
9343
9071
|
//#endregion
|
|
9344
9072
|
//#region src/core/adapters/local/dumpStorage.ts
|
|
9345
9073
|
var LocalFileDumpStorage = class {
|
|
@@ -9370,7 +9098,6 @@ var LocalFileDumpStorage = class {
|
|
|
9370
9098
|
}
|
|
9371
9099
|
}
|
|
9372
9100
|
};
|
|
9373
|
-
|
|
9374
9101
|
//#endregion
|
|
9375
9102
|
//#region src/core/application/container/dumpCli.ts
|
|
9376
9103
|
function createDumpCliContainer(config) {
|
|
@@ -9379,14 +9106,12 @@ function createDumpCliContainer(config) {
|
|
|
9379
9106
|
dumpStorage: new LocalFileDumpStorage(config.filePrefix, process.cwd())
|
|
9380
9107
|
};
|
|
9381
9108
|
}
|
|
9382
|
-
|
|
9383
9109
|
//#endregion
|
|
9384
9110
|
//#region src/core/application/formSchema/dumpForm.ts
|
|
9385
9111
|
async function dumpForm({ container }) {
|
|
9386
9112
|
const rawData = await container.formDumpReader.getRawFormData();
|
|
9387
9113
|
await Promise.all([container.dumpStorage.saveFields(JSON.stringify(rawData.fields, null, 2)), container.dumpStorage.saveLayout(JSON.stringify(rawData.layout, null, 2))]);
|
|
9388
9114
|
}
|
|
9389
|
-
|
|
9390
9115
|
//#endregion
|
|
9391
9116
|
//#region src/cli/commands/schema/dump.ts
|
|
9392
9117
|
async function runSingleDump(config) {
|
|
@@ -9446,13 +9171,11 @@ var dump_default = define({
|
|
|
9446
9171
|
}
|
|
9447
9172
|
}
|
|
9448
9173
|
});
|
|
9449
|
-
|
|
9450
9174
|
//#endregion
|
|
9451
9175
|
//#region src/core/application/formSchema/deployApp.ts
|
|
9452
9176
|
async function deployApp({ container }) {
|
|
9453
9177
|
await container.appDeployer.deploy();
|
|
9454
9178
|
}
|
|
9455
|
-
|
|
9456
9179
|
//#endregion
|
|
9457
9180
|
//#region src/core/domain/formSchema/services/subtableFieldSplitter.ts
|
|
9458
9181
|
function splitSubtableInnerFields(desired, current) {
|
|
@@ -9468,7 +9191,6 @@ function splitSubtableInnerFields(desired, current) {
|
|
|
9468
9191
|
deletedInnerFieldCodes
|
|
9469
9192
|
};
|
|
9470
9193
|
}
|
|
9471
|
-
|
|
9472
9194
|
//#endregion
|
|
9473
9195
|
//#region src/core/domain/formSchema/services/schemaValidator.ts
|
|
9474
9196
|
const SELECTION_TYPES = new Set([
|
|
@@ -9607,7 +9329,6 @@ const SchemaValidator = { validate: (schema) => {
|
|
|
9607
9329
|
isValid: issues.every((i) => i.severity !== "error")
|
|
9608
9330
|
};
|
|
9609
9331
|
} };
|
|
9610
|
-
|
|
9611
9332
|
//#endregion
|
|
9612
9333
|
//#region src/core/application/formSchema/assertSchemaValid.ts
|
|
9613
9334
|
function assertSchemaValid(schema) {
|
|
@@ -9617,7 +9338,6 @@ function assertSchemaValid(schema) {
|
|
|
9617
9338
|
throw new ValidationError(ValidationErrorCode.InvalidInput, `Schema validation failed:\n ${messages}`);
|
|
9618
9339
|
}
|
|
9619
9340
|
}
|
|
9620
|
-
|
|
9621
9341
|
//#endregion
|
|
9622
9342
|
//#region src/core/application/formSchema/executeMigration.ts
|
|
9623
9343
|
async function executeMigration({ container }) {
|
|
@@ -9667,7 +9387,6 @@ async function executeMigration({ container }) {
|
|
|
9667
9387
|
}
|
|
9668
9388
|
if (hasLayoutChanges) await container.formConfigurator.updateLayout(schema.layout);
|
|
9669
9389
|
}
|
|
9670
|
-
|
|
9671
9390
|
//#endregion
|
|
9672
9391
|
//#region src/cli/commands/schema/migrate.ts
|
|
9673
9392
|
async function runSingleMigrate(container, skipConfirm) {
|
|
@@ -9764,7 +9483,6 @@ var migrate_default = define({
|
|
|
9764
9483
|
}
|
|
9765
9484
|
}
|
|
9766
9485
|
});
|
|
9767
|
-
|
|
9768
9486
|
//#endregion
|
|
9769
9487
|
//#region src/core/application/formSchema/forceOverrideForm.ts
|
|
9770
9488
|
async function forceOverrideForm({ container }) {
|
|
@@ -9818,7 +9536,6 @@ async function forceOverrideForm({ container }) {
|
|
|
9818
9536
|
if (toUpdate.length > 0) await container.formConfigurator.updateFields(toUpdate);
|
|
9819
9537
|
await container.formConfigurator.updateLayout(schema.layout);
|
|
9820
9538
|
}
|
|
9821
|
-
|
|
9822
9539
|
//#endregion
|
|
9823
9540
|
//#region src/core/application/formSchema/resetForm.ts
|
|
9824
9541
|
async function resetForm({ container }) {
|
|
@@ -9832,7 +9549,6 @@ async function resetForm({ container }) {
|
|
|
9832
9549
|
if (toDelete.length > 0) await container.formConfigurator.deleteFields(toDelete);
|
|
9833
9550
|
await container.formConfigurator.updateLayout([]);
|
|
9834
9551
|
}
|
|
9835
|
-
|
|
9836
9552
|
//#endregion
|
|
9837
9553
|
//#region src/cli/commands/schema/override.ts
|
|
9838
9554
|
async function runSingleOverride(container, skipConfirm) {
|
|
@@ -9948,13 +9664,11 @@ var override_default = define({
|
|
|
9948
9664
|
}
|
|
9949
9665
|
}
|
|
9950
9666
|
});
|
|
9951
|
-
|
|
9952
9667
|
//#endregion
|
|
9953
9668
|
//#region src/core/application/container/validateCli.ts
|
|
9954
9669
|
function createValidateCliContainer(config) {
|
|
9955
9670
|
return { schemaStorage: createLocalFileSchemaStorage(config.schemaFilePath) };
|
|
9956
9671
|
}
|
|
9957
|
-
|
|
9958
9672
|
//#endregion
|
|
9959
9673
|
//#region src/core/application/formSchema/validateSchema.ts
|
|
9960
9674
|
async function validateSchema({ container }) {
|
|
@@ -9975,7 +9689,6 @@ async function validateSchema({ container }) {
|
|
|
9975
9689
|
fieldCount: schema.fields.size
|
|
9976
9690
|
};
|
|
9977
9691
|
}
|
|
9978
|
-
|
|
9979
9692
|
//#endregion
|
|
9980
9693
|
//#region src/cli/commands/schema/validate.ts
|
|
9981
9694
|
const validateArgs = {
|
|
@@ -10021,42 +9734,6 @@ async function runValidate(schemaFilePath) {
|
|
|
10021
9734
|
function resolveSchemaFilePath(values, appSchemaFile) {
|
|
10022
9735
|
return values["schema-file"] ?? process.env.SCHEMA_FILE_PATH ?? appSchemaFile ?? "schema.yaml";
|
|
10023
9736
|
}
|
|
10024
|
-
var validate_default = define({
|
|
10025
|
-
name: "validate",
|
|
10026
|
-
description: "Validate schema file without connecting to kintone",
|
|
10027
|
-
args: validateArgs,
|
|
10028
|
-
run: async (ctx) => {
|
|
10029
|
-
try {
|
|
10030
|
-
const values = ctx.values;
|
|
10031
|
-
await routeMultiApp(values, {
|
|
10032
|
-
singleLegacy: async () => {
|
|
10033
|
-
if (!await runValidate(resolveSchemaFilePath(values))) {
|
|
10034
|
-
p.outro("Validation failed.");
|
|
10035
|
-
process.exit(1);
|
|
10036
|
-
}
|
|
10037
|
-
p.outro("Validation passed.");
|
|
10038
|
-
},
|
|
10039
|
-
singleApp: async (app) => {
|
|
10040
|
-
if (!await runValidate(resolveSchemaFilePath(values, app.schemaFile))) {
|
|
10041
|
-
p.outro("Validation failed.");
|
|
10042
|
-
process.exit(1);
|
|
10043
|
-
}
|
|
10044
|
-
p.outro("Validation passed.");
|
|
10045
|
-
},
|
|
10046
|
-
multiApp: async (plan) => {
|
|
10047
|
-
await runMultiAppWithFailCheck(plan, async (app) => {
|
|
10048
|
-
printAppHeader(app.name, app.appId);
|
|
10049
|
-
const schemaFilePath = resolveSchemaFilePath(values, app.schemaFile);
|
|
10050
|
-
if (!printValidationResult(await validateSchema({ container: createValidateCliContainer({ schemaFilePath }) }), schemaFilePath)) throw new ValidationError(ValidationErrorCode.InvalidInput, `Validation failed for app "${app.name}"`);
|
|
10051
|
-
}, "All validations passed.");
|
|
10052
|
-
}
|
|
10053
|
-
});
|
|
10054
|
-
} catch (error) {
|
|
10055
|
-
handleCliError(error);
|
|
10056
|
-
}
|
|
10057
|
-
}
|
|
10058
|
-
});
|
|
10059
|
-
|
|
10060
9737
|
//#endregion
|
|
10061
9738
|
//#region src/cli/commands/schema/index.ts
|
|
10062
9739
|
var schema_default = define({
|
|
@@ -10067,12 +9744,45 @@ var schema_default = define({
|
|
|
10067
9744
|
migrate: migrate_default,
|
|
10068
9745
|
override: override_default,
|
|
10069
9746
|
capture: capture_default$3,
|
|
10070
|
-
validate:
|
|
9747
|
+
validate: define({
|
|
9748
|
+
name: "validate",
|
|
9749
|
+
description: "Validate schema file without connecting to kintone",
|
|
9750
|
+
args: validateArgs,
|
|
9751
|
+
run: async (ctx) => {
|
|
9752
|
+
try {
|
|
9753
|
+
const values = ctx.values;
|
|
9754
|
+
await routeMultiApp(values, {
|
|
9755
|
+
singleLegacy: async () => {
|
|
9756
|
+
if (!await runValidate(resolveSchemaFilePath(values))) {
|
|
9757
|
+
p.outro("Validation failed.");
|
|
9758
|
+
process.exit(1);
|
|
9759
|
+
}
|
|
9760
|
+
p.outro("Validation passed.");
|
|
9761
|
+
},
|
|
9762
|
+
singleApp: async (app) => {
|
|
9763
|
+
if (!await runValidate(resolveSchemaFilePath(values, app.schemaFile))) {
|
|
9764
|
+
p.outro("Validation failed.");
|
|
9765
|
+
process.exit(1);
|
|
9766
|
+
}
|
|
9767
|
+
p.outro("Validation passed.");
|
|
9768
|
+
},
|
|
9769
|
+
multiApp: async (plan) => {
|
|
9770
|
+
await runMultiAppWithFailCheck(plan, async (app) => {
|
|
9771
|
+
printAppHeader(app.name, app.appId);
|
|
9772
|
+
const schemaFilePath = resolveSchemaFilePath(values, app.schemaFile);
|
|
9773
|
+
if (!printValidationResult(await validateSchema({ container: createValidateCliContainer({ schemaFilePath }) }), schemaFilePath)) throw new ValidationError(ValidationErrorCode.InvalidInput, `Validation failed for app "${app.name}"`);
|
|
9774
|
+
}, "All validations passed.");
|
|
9775
|
+
}
|
|
9776
|
+
});
|
|
9777
|
+
} catch (error) {
|
|
9778
|
+
handleCliError(error);
|
|
9779
|
+
}
|
|
9780
|
+
}
|
|
9781
|
+
}),
|
|
10071
9782
|
dump: dump_default
|
|
10072
9783
|
},
|
|
10073
9784
|
run: () => {}
|
|
10074
9785
|
});
|
|
10075
|
-
|
|
10076
9786
|
//#endregion
|
|
10077
9787
|
//#region src/core/domain/seedData/services/upsertPlanner.ts
|
|
10078
9788
|
function recordsEqual(seed, existing, keyField) {
|
|
@@ -10116,7 +9826,6 @@ const UpsertPlanner = { plan: (key, seedRecords, existingRecords) => {
|
|
|
10116
9826
|
unchanged
|
|
10117
9827
|
};
|
|
10118
9828
|
} };
|
|
10119
|
-
|
|
10120
9829
|
//#endregion
|
|
10121
9830
|
//#region src/core/domain/seedData/services/seedParser.ts
|
|
10122
9831
|
function normalizeValue(value) {
|
|
@@ -10176,13 +9885,11 @@ const SeedParser = { parse: (rawText) => {
|
|
|
10176
9885
|
records
|
|
10177
9886
|
};
|
|
10178
9887
|
} };
|
|
10179
|
-
|
|
10180
9888
|
//#endregion
|
|
10181
9889
|
//#region src/core/application/seedData/parseConfig.ts
|
|
10182
9890
|
function parseSeedText(rawText) {
|
|
10183
9891
|
return wrapBusinessRuleError(() => SeedParser.parse(rawText));
|
|
10184
9892
|
}
|
|
10185
|
-
|
|
10186
9893
|
//#endregion
|
|
10187
9894
|
//#region src/core/application/seedData/upsertSeed.ts
|
|
10188
9895
|
async function upsertSeed({ container, input }) {
|
|
@@ -10222,7 +9929,6 @@ async function upsertSeed({ container, input }) {
|
|
|
10222
9929
|
total: plan.toAdd.length + plan.toUpdate.length + plan.unchanged
|
|
10223
9930
|
};
|
|
10224
9931
|
}
|
|
10225
|
-
|
|
10226
9932
|
//#endregion
|
|
10227
9933
|
//#region src/cli/commands/seed/config.ts
|
|
10228
9934
|
const { resolveFilePath: resolveSeedFilePath, resolveContainerConfig: resolveSeedConfig, resolveAppContainerConfig: resolveSeedAppConfig } = createDomainConfigResolver({
|
|
@@ -10236,7 +9942,6 @@ const { resolveFilePath: resolveSeedFilePath, resolveContainerConfig: resolveSee
|
|
|
10236
9942
|
seedFilePath: filePath
|
|
10237
9943
|
})
|
|
10238
9944
|
});
|
|
10239
|
-
|
|
10240
9945
|
//#endregion
|
|
10241
9946
|
//#region src/cli/commands/seed/apply.ts
|
|
10242
9947
|
const seedApplyArgs = {
|
|
@@ -10319,7 +10024,6 @@ var apply_default$2 = define({
|
|
|
10319
10024
|
}
|
|
10320
10025
|
}
|
|
10321
10026
|
});
|
|
10322
|
-
|
|
10323
10027
|
//#endregion
|
|
10324
10028
|
//#region src/cli/commands/seed/capture.ts
|
|
10325
10029
|
const seedCaptureArgs = {
|
|
@@ -10353,35 +10057,6 @@ async function runSeedCapture(config, keyField) {
|
|
|
10353
10057
|
if (!keyField) p.log.info("No key field specified. All records will be added on apply.");
|
|
10354
10058
|
if (result.hasExistingSeed) p.log.warn("Existing seed file was overwritten.");
|
|
10355
10059
|
}
|
|
10356
|
-
var capture_default$2 = define({
|
|
10357
|
-
name: "capture",
|
|
10358
|
-
description: "Capture records from kintone app to seed file",
|
|
10359
|
-
args: seedCaptureArgs,
|
|
10360
|
-
run: async (ctx) => {
|
|
10361
|
-
try {
|
|
10362
|
-
const values = ctx.values;
|
|
10363
|
-
const keyField = values["key-field"];
|
|
10364
|
-
await routeMultiApp(values, {
|
|
10365
|
-
singleLegacy: async () => {
|
|
10366
|
-
await runSeedCapture(resolveSeedConfig(values), keyField);
|
|
10367
|
-
},
|
|
10368
|
-
singleApp: async (app, projectConfig) => {
|
|
10369
|
-
await runSeedCapture(resolveSeedAppConfig(app, projectConfig, values), keyField);
|
|
10370
|
-
},
|
|
10371
|
-
multiApp: async (plan, projectConfig) => {
|
|
10372
|
-
await runMultiAppWithFailCheck(plan, async (app) => {
|
|
10373
|
-
const config = resolveSeedAppConfig(app, projectConfig, values);
|
|
10374
|
-
printAppHeader(app.name, app.appId);
|
|
10375
|
-
await runSeedCapture(config, keyField);
|
|
10376
|
-
}, "All captures completed successfully.");
|
|
10377
|
-
}
|
|
10378
|
-
});
|
|
10379
|
-
} catch (error) {
|
|
10380
|
-
handleCliError(error);
|
|
10381
|
-
}
|
|
10382
|
-
}
|
|
10383
|
-
});
|
|
10384
|
-
|
|
10385
10060
|
//#endregion
|
|
10386
10061
|
//#region src/cli/commands/seed/index.ts
|
|
10387
10062
|
var seed_default = define({
|
|
@@ -10389,11 +10064,37 @@ var seed_default = define({
|
|
|
10389
10064
|
description: "Manage kintone seed data (records)",
|
|
10390
10065
|
subCommands: {
|
|
10391
10066
|
apply: apply_default$2,
|
|
10392
|
-
capture:
|
|
10067
|
+
capture: define({
|
|
10068
|
+
name: "capture",
|
|
10069
|
+
description: "Capture records from kintone app to seed file",
|
|
10070
|
+
args: seedCaptureArgs,
|
|
10071
|
+
run: async (ctx) => {
|
|
10072
|
+
try {
|
|
10073
|
+
const values = ctx.values;
|
|
10074
|
+
const keyField = values["key-field"];
|
|
10075
|
+
await routeMultiApp(values, {
|
|
10076
|
+
singleLegacy: async () => {
|
|
10077
|
+
await runSeedCapture(resolveSeedConfig(values), keyField);
|
|
10078
|
+
},
|
|
10079
|
+
singleApp: async (app, projectConfig) => {
|
|
10080
|
+
await runSeedCapture(resolveSeedAppConfig(app, projectConfig, values), keyField);
|
|
10081
|
+
},
|
|
10082
|
+
multiApp: async (plan, projectConfig) => {
|
|
10083
|
+
await runMultiAppWithFailCheck(plan, async (app) => {
|
|
10084
|
+
const config = resolveSeedAppConfig(app, projectConfig, values);
|
|
10085
|
+
printAppHeader(app.name, app.appId);
|
|
10086
|
+
await runSeedCapture(config, keyField);
|
|
10087
|
+
}, "All captures completed successfully.");
|
|
10088
|
+
}
|
|
10089
|
+
});
|
|
10090
|
+
} catch (error) {
|
|
10091
|
+
handleCliError(error);
|
|
10092
|
+
}
|
|
10093
|
+
}
|
|
10094
|
+
})
|
|
10393
10095
|
},
|
|
10394
10096
|
run: () => {}
|
|
10395
10097
|
});
|
|
10396
|
-
|
|
10397
10098
|
//#endregion
|
|
10398
10099
|
//#region src/core/domain/generalSettings/services/configParser.ts
|
|
10399
10100
|
function parseOptionalBoolean(parsed, fieldName) {
|
|
@@ -10502,13 +10203,11 @@ const GeneralSettingsConfigParser = { parse: (rawText) => {
|
|
|
10502
10203
|
...firstMonthOfFiscalYear !== void 0 ? { firstMonthOfFiscalYear } : {}
|
|
10503
10204
|
};
|
|
10504
10205
|
} };
|
|
10505
|
-
|
|
10506
10206
|
//#endregion
|
|
10507
10207
|
//#region src/core/application/generalSettings/parseConfig.ts
|
|
10508
10208
|
function parseGeneralSettingsConfigText(rawText) {
|
|
10509
10209
|
return wrapBusinessRuleError(() => GeneralSettingsConfigParser.parse(rawText));
|
|
10510
10210
|
}
|
|
10511
|
-
|
|
10512
10211
|
//#endregion
|
|
10513
10212
|
//#region src/core/application/generalSettings/applyGeneralSettings.ts
|
|
10514
10213
|
async function applyGeneralSettings({ container }) {
|
|
@@ -10525,7 +10224,6 @@ async function applyGeneralSettings({ container }) {
|
|
|
10525
10224
|
notFoundMessage: "General settings config file not found"
|
|
10526
10225
|
});
|
|
10527
10226
|
}
|
|
10528
|
-
|
|
10529
10227
|
//#endregion
|
|
10530
10228
|
//#region src/cli/settingsConfig.ts
|
|
10531
10229
|
const settingsArgs = {
|
|
@@ -10547,7 +10245,6 @@ const { resolveFilePath: resolveSettingsFilePath, resolveContainerConfig: resolv
|
|
|
10547
10245
|
settingsFilePath: filePath
|
|
10548
10246
|
})
|
|
10549
10247
|
});
|
|
10550
|
-
|
|
10551
10248
|
//#endregion
|
|
10552
10249
|
//#region src/cli/commands/settings/apply.ts
|
|
10553
10250
|
async function runSettings(config) {
|
|
@@ -10594,7 +10291,6 @@ var apply_default$1 = define({
|
|
|
10594
10291
|
}
|
|
10595
10292
|
}
|
|
10596
10293
|
});
|
|
10597
|
-
|
|
10598
10294
|
//#endregion
|
|
10599
10295
|
//#region src/cli/commands/settings/capture.ts
|
|
10600
10296
|
async function runCaptureSettings(config) {
|
|
@@ -10637,7 +10333,6 @@ var capture_default$1 = define({
|
|
|
10637
10333
|
}
|
|
10638
10334
|
}
|
|
10639
10335
|
});
|
|
10640
|
-
|
|
10641
10336
|
//#endregion
|
|
10642
10337
|
//#region src/core/domain/generalSettings/services/diffDetector.ts
|
|
10643
10338
|
const DEFAULT_STRING = "";
|
|
@@ -10699,7 +10394,6 @@ function compareConfigs(local, remote) {
|
|
|
10699
10394
|
const GeneralSettingsDiffDetector = { detect: (local, remote) => {
|
|
10700
10395
|
return buildDiffResult(compareConfigs(local, remote));
|
|
10701
10396
|
} };
|
|
10702
|
-
|
|
10703
10397
|
//#endregion
|
|
10704
10398
|
//#region src/core/application/generalSettings/detectGeneralSettingsDiff.ts
|
|
10705
10399
|
async function detectGeneralSettingsDiff({ container }) {
|
|
@@ -10711,21 +10405,6 @@ async function detectGeneralSettingsDiff({ container }) {
|
|
|
10711
10405
|
notFoundMessage: "General settings config file not found"
|
|
10712
10406
|
});
|
|
10713
10407
|
}
|
|
10714
|
-
|
|
10715
|
-
//#endregion
|
|
10716
|
-
//#region src/cli/commands/settings/diff.ts
|
|
10717
|
-
var diff_default$1 = createDiffCommand({
|
|
10718
|
-
description: "Compare local general settings config with remote kintone app",
|
|
10719
|
-
args: settingsArgs,
|
|
10720
|
-
spinnerMessage: "Comparing general settings...",
|
|
10721
|
-
multiAppSuccessMessage: "All general settings diffs completed successfully.",
|
|
10722
|
-
createContainer: createGeneralSettingsCliContainer,
|
|
10723
|
-
detectDiff: detectGeneralSettingsDiff,
|
|
10724
|
-
printResult: printGeneralSettingsDiffResult,
|
|
10725
|
-
resolveContainerConfig: resolveSettingsContainerConfig,
|
|
10726
|
-
resolveAppContainerConfig: resolveSettingsAppContainerConfig
|
|
10727
|
-
});
|
|
10728
|
-
|
|
10729
10408
|
//#endregion
|
|
10730
10409
|
//#region src/cli/commands/settings/index.ts
|
|
10731
10410
|
var settings_default = define({
|
|
@@ -10734,11 +10413,20 @@ var settings_default = define({
|
|
|
10734
10413
|
subCommands: {
|
|
10735
10414
|
apply: apply_default$1,
|
|
10736
10415
|
capture: capture_default$1,
|
|
10737
|
-
diff:
|
|
10416
|
+
diff: createDiffCommand({
|
|
10417
|
+
description: "Compare local general settings config with remote kintone app",
|
|
10418
|
+
args: settingsArgs,
|
|
10419
|
+
spinnerMessage: "Comparing general settings...",
|
|
10420
|
+
multiAppSuccessMessage: "All general settings diffs completed successfully.",
|
|
10421
|
+
createContainer: createGeneralSettingsCliContainer,
|
|
10422
|
+
detectDiff: detectGeneralSettingsDiff,
|
|
10423
|
+
printResult: printGeneralSettingsDiffResult,
|
|
10424
|
+
resolveContainerConfig: resolveSettingsContainerConfig,
|
|
10425
|
+
resolveAppContainerConfig: resolveSettingsAppContainerConfig
|
|
10426
|
+
})
|
|
10738
10427
|
},
|
|
10739
10428
|
run: () => {}
|
|
10740
10429
|
});
|
|
10741
|
-
|
|
10742
10430
|
//#endregion
|
|
10743
10431
|
//#region src/core/domain/view/services/configParser.ts
|
|
10744
10432
|
function parseDeviceType(name, raw) {
|
|
@@ -10787,13 +10475,11 @@ const ViewConfigParser = { parse: (rawText) => {
|
|
|
10787
10475
|
}
|
|
10788
10476
|
return { views };
|
|
10789
10477
|
} };
|
|
10790
|
-
|
|
10791
10478
|
//#endregion
|
|
10792
10479
|
//#region src/core/application/view/parseConfig.ts
|
|
10793
10480
|
function parseViewConfigText(rawText) {
|
|
10794
10481
|
return wrapBusinessRuleError(() => ViewConfigParser.parse(rawText));
|
|
10795
10482
|
}
|
|
10796
|
-
|
|
10797
10483
|
//#endregion
|
|
10798
10484
|
//#region src/core/application/view/applyView.ts
|
|
10799
10485
|
async function applyView({ container }) {
|
|
@@ -10812,7 +10498,6 @@ async function applyView({ container }) {
|
|
|
10812
10498
|
});
|
|
10813
10499
|
return { skippedBuiltinViews };
|
|
10814
10500
|
}
|
|
10815
|
-
|
|
10816
10501
|
//#endregion
|
|
10817
10502
|
//#region src/cli/viewConfig.ts
|
|
10818
10503
|
const viewArgs = {
|
|
@@ -10834,7 +10519,6 @@ const { resolveFilePath: resolveViewFilePath, resolveContainerConfig: resolveVie
|
|
|
10834
10519
|
viewFilePath: filePath
|
|
10835
10520
|
})
|
|
10836
10521
|
});
|
|
10837
|
-
|
|
10838
10522
|
//#endregion
|
|
10839
10523
|
//#region src/cli/commands/view/apply.ts
|
|
10840
10524
|
async function runView(config) {
|
|
@@ -10882,7 +10566,6 @@ var apply_default = define({
|
|
|
10882
10566
|
}
|
|
10883
10567
|
}
|
|
10884
10568
|
});
|
|
10885
|
-
|
|
10886
10569
|
//#endregion
|
|
10887
10570
|
//#region src/cli/commands/view/capture.ts
|
|
10888
10571
|
async function runCaptureView(config) {
|
|
@@ -10925,7 +10608,6 @@ var capture_default = define({
|
|
|
10925
10608
|
}
|
|
10926
10609
|
}
|
|
10927
10610
|
});
|
|
10928
|
-
|
|
10929
10611
|
//#endregion
|
|
10930
10612
|
//#region src/core/domain/view/services/diffDetector.ts
|
|
10931
10613
|
function describeChanges(local, remote) {
|
|
@@ -10965,7 +10647,6 @@ const ViewDiffDetector = { detect: (localViews, remoteViews) => {
|
|
|
10965
10647
|
})
|
|
10966
10648
|
}));
|
|
10967
10649
|
} };
|
|
10968
|
-
|
|
10969
10650
|
//#endregion
|
|
10970
10651
|
//#region src/core/application/view/detectViewDiff.ts
|
|
10971
10652
|
async function detectViewDiff({ container }) {
|
|
@@ -10977,21 +10658,6 @@ async function detectViewDiff({ container }) {
|
|
|
10977
10658
|
notFoundMessage: "View config file not found"
|
|
10978
10659
|
});
|
|
10979
10660
|
}
|
|
10980
|
-
|
|
10981
|
-
//#endregion
|
|
10982
|
-
//#region src/cli/commands/view/diff.ts
|
|
10983
|
-
var diff_default = createDiffCommand({
|
|
10984
|
-
description: "Compare local view config with remote kintone app",
|
|
10985
|
-
args: viewArgs,
|
|
10986
|
-
spinnerMessage: "Comparing view settings...",
|
|
10987
|
-
multiAppSuccessMessage: "All view diffs completed successfully.",
|
|
10988
|
-
createContainer: createViewCliContainer,
|
|
10989
|
-
detectDiff: detectViewDiff,
|
|
10990
|
-
printResult: printViewDiffResult,
|
|
10991
|
-
resolveContainerConfig: resolveViewContainerConfig,
|
|
10992
|
-
resolveAppContainerConfig: resolveViewAppContainerConfig
|
|
10993
|
-
});
|
|
10994
|
-
|
|
10995
10661
|
//#endregion
|
|
10996
10662
|
//#region src/cli/commands/view/index.ts
|
|
10997
10663
|
var view_default = define({
|
|
@@ -11000,11 +10666,20 @@ var view_default = define({
|
|
|
11000
10666
|
subCommands: {
|
|
11001
10667
|
apply: apply_default,
|
|
11002
10668
|
capture: capture_default,
|
|
11003
|
-
diff:
|
|
10669
|
+
diff: createDiffCommand({
|
|
10670
|
+
description: "Compare local view config with remote kintone app",
|
|
10671
|
+
args: viewArgs,
|
|
10672
|
+
spinnerMessage: "Comparing view settings...",
|
|
10673
|
+
multiAppSuccessMessage: "All view diffs completed successfully.",
|
|
10674
|
+
createContainer: createViewCliContainer,
|
|
10675
|
+
detectDiff: detectViewDiff,
|
|
10676
|
+
printResult: printViewDiffResult,
|
|
10677
|
+
resolveContainerConfig: resolveViewContainerConfig,
|
|
10678
|
+
resolveAppContainerConfig: resolveViewAppContainerConfig
|
|
10679
|
+
})
|
|
11004
10680
|
},
|
|
11005
10681
|
run: () => {}
|
|
11006
10682
|
});
|
|
11007
|
-
|
|
11008
10683
|
//#endregion
|
|
11009
10684
|
//#region src/cli/index.ts
|
|
11010
10685
|
function loadVersion() {
|
|
@@ -11040,7 +10715,7 @@ await cli(process.argv.slice(2), main, {
|
|
|
11040
10715
|
plugin: plugin_default
|
|
11041
10716
|
}
|
|
11042
10717
|
});
|
|
11043
|
-
|
|
11044
10718
|
//#endregion
|
|
11045
|
-
export {
|
|
10719
|
+
export {};
|
|
10720
|
+
|
|
11046
10721
|
//# sourceMappingURL=index.mjs.map
|