@aws-amplify/amplify-util-uibuilder 1.5.0 → 1.6.0-cdkv2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/amplify-plugin.json +10 -3
- package/lib/clients/amplify-studio-client.d.ts +13 -2
- package/lib/clients/amplify-studio-client.d.ts.map +1 -1
- package/lib/clients/amplify-studio-client.js +85 -17
- package/lib/clients/amplify-studio-client.js.map +1 -1
- package/lib/commands/generateComponents.d.ts.map +1 -1
- package/lib/commands/generateComponents.js +33 -15
- package/lib/commands/generateComponents.js.map +1 -1
- package/lib/commands/help.d.ts +1 -1
- package/lib/commands/help.d.ts.map +1 -1
- package/lib/commands/help.js +2 -2
- package/lib/commands/help.js.map +1 -1
- package/lib/commands/utils/codegenResources.d.ts +12 -2
- package/lib/commands/utils/codegenResources.d.ts.map +1 -1
- package/lib/commands/utils/codegenResources.js +70 -3
- package/lib/commands/utils/codegenResources.js.map +1 -1
- package/lib/commands/utils/featureFlags.d.ts +2 -0
- package/lib/commands/utils/featureFlags.d.ts.map +1 -0
- package/lib/commands/utils/featureFlags.js +35 -0
- package/lib/commands/utils/featureFlags.js.map +1 -0
- package/lib/commands/utils/getUiBuilderComponentsPath.d.ts.map +1 -1
- package/lib/commands/utils/getUiBuilderComponentsPath.js.map +1 -1
- package/lib/commands/utils/shouldRenderComponents.d.ts +1 -1
- package/lib/commands/utils/shouldRenderComponents.d.ts.map +1 -1
- package/lib/commands/utils/shouldRenderComponents.js +14 -8
- package/lib/commands/utils/shouldRenderComponents.js.map +1 -1
- package/lib/commands/utils/syncAmplifyUiBuilderComponents.d.ts +12 -20
- package/lib/commands/utils/syncAmplifyUiBuilderComponents.d.ts.map +1 -1
- package/lib/commands/utils/syncAmplifyUiBuilderComponents.js +36 -3
- package/lib/commands/utils/syncAmplifyUiBuilderComponents.js.map +1 -1
- package/lib/commands/version.d.ts +1 -1
- package/lib/commands/version.d.ts.map +1 -1
- package/lib/commands/version.js +2 -2
- package/lib/commands/version.js.map +1 -1
- package/lib/event-handlers/handle-PostEnvAdd.d.ts +1 -1
- package/lib/event-handlers/handle-PostEnvAdd.d.ts.map +1 -1
- package/lib/event-handlers/handle-PostEnvAdd.js +4 -6
- package/lib/event-handlers/handle-PostEnvAdd.js.map +1 -1
- package/lib/event-handlers/handle-PostPull.d.ts +1 -1
- package/lib/event-handlers/handle-PostPull.d.ts.map +1 -1
- package/lib/event-handlers/handle-PostPull.js +4 -3
- package/lib/event-handlers/handle-PostPull.js.map +1 -1
- package/lib/event-handlers/handle-PostPush.d.ts +3 -0
- package/lib/event-handlers/handle-PostPush.d.ts.map +1 -0
- package/lib/event-handlers/handle-PostPush.js +15 -0
- package/lib/event-handlers/handle-PostPush.js.map +1 -0
- package/package.json +8 -7
- package/src/__tests__/cloneComponentsFromEnv.test.ts +17 -6
- package/src/__tests__/createUiBuilderComponent.test.ts +21 -3
- package/src/__tests__/generateComponents.test.ts +43 -15
- package/src/__tests__/getAmplifyDataSchema.test.ts +51 -19
- package/src/__tests__/shouldRenderComponents.test.ts +51 -4
- package/src/__tests__/syncAmplifyUiComponents.test.ts +113 -8
- package/src/__tests__/utils.ts +70 -0
- package/src/clients/amplify-studio-client.ts +157 -69
- package/src/commands/generateComponents.ts +43 -16
- package/src/commands/help.ts +5 -2
- package/src/commands/utils/codegenResources.ts +108 -4
- package/src/commands/utils/featureFlags.ts +62 -0
- package/src/commands/utils/getUiBuilderComponentsPath.ts +7 -2
- package/src/commands/utils/shouldRenderComponents.ts +20 -8
- package/src/commands/utils/syncAmplifyUiBuilderComponents.ts +76 -29
- package/src/commands/version.ts +5 -2
- package/src/event-handlers/handle-PostEnvAdd.ts +8 -6
- package/src/event-handlers/handle-PostPull.ts +7 -3
- package/src/event-handlers/handle-PostPush.ts +15 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/__tests__/handleEvents.test.ts +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUiBuilderComponentsPath.js","sourceRoot":"","sources":["../../../src/commands/utils/getUiBuilderComponentsPath.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,wDAA0B;
|
|
1
|
+
{"version":3,"file":"getUiBuilderComponentsPath.js","sourceRoot":"","sources":["../../../src/commands/utils/getUiBuilderComponentsPath.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,wDAA0B;AAE1B,+CAA4C;AAMrC,MAAM,0BAA0B,GAAG,CAAC,OAAmB,EAAU,EAAE;IACxE,MAAM,IAAI,GAAG,IAAA,yBAAW,EAAC,OAAO,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;IACrG,MAAM,uBAAuB,GAAG,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAEtF,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE;QAE3C,kBAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;KACxC;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAXW,QAAA,0BAA0B,8BAWrC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { $TSContext } from 'amplify-cli-core';
|
|
2
|
-
export declare
|
|
2
|
+
export declare const shouldRenderComponents: (context: $TSContext) => Promise<boolean>;
|
|
3
3
|
//# sourceMappingURL=shouldRenderComponents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shouldRenderComponents.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/shouldRenderComponents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shouldRenderComponents.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/shouldRenderComponents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,eAAO,MAAM,sBAAsB,YAAmB,UAAU,KAAG,QAAQ,OAAO,CAoCjF,CAAC"}
|
|
@@ -2,33 +2,39 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.shouldRenderComponents = void 0;
|
|
4
4
|
const amplify_prompts_1 = require("amplify-prompts");
|
|
5
|
-
|
|
5
|
+
const clients_1 = require("../../clients");
|
|
6
|
+
const environmentHelpers_1 = require("./environmentHelpers");
|
|
7
|
+
const shouldRenderComponents = async (context) => {
|
|
6
8
|
var _a, _b, _c;
|
|
7
9
|
if (process.env.FORCE_RENDER) {
|
|
8
10
|
amplify_prompts_1.printer.debug('Forcing component render since environment variable flag is set.');
|
|
9
11
|
return true;
|
|
10
12
|
}
|
|
11
13
|
if ((_b = (_a = context === null || context === void 0 ? void 0 : context.input) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b['no-codegen']) {
|
|
12
|
-
amplify_prompts_1.printer.debug('Not pulling components because --no-codegen flag is set');
|
|
14
|
+
amplify_prompts_1.printer.debug('Not pulling components because --no-codegen flag is set.');
|
|
13
15
|
return false;
|
|
14
16
|
}
|
|
15
17
|
if (!((_c = context === null || context === void 0 ? void 0 : context.exeInfo) === null || _c === void 0 ? void 0 : _c.projectConfig)) {
|
|
16
|
-
amplify_prompts_1.printer.debug('Not pulling components because there is no projectConfig set for this project');
|
|
18
|
+
amplify_prompts_1.printer.debug('Not pulling components because there is no projectConfig set for this project.');
|
|
17
19
|
return false;
|
|
18
20
|
}
|
|
19
21
|
if (!context.exeInfo.projectConfig.providers.includes('awscloudformation')) {
|
|
20
|
-
amplify_prompts_1.printer.debug('Not pulling components because there is no "awscloudformation" provider');
|
|
22
|
+
amplify_prompts_1.printer.debug('Not pulling components because there is no "awscloudformation" provider.');
|
|
21
23
|
return false;
|
|
22
24
|
}
|
|
23
25
|
if (context.exeInfo.projectConfig.frontend !== 'javascript') {
|
|
24
|
-
amplify_prompts_1.printer.debug('Not pulling components because this project is not configured as a javascript frontend');
|
|
26
|
+
amplify_prompts_1.printer.debug('Not pulling components because this project is not configured as a javascript frontend.');
|
|
25
27
|
return false;
|
|
26
28
|
}
|
|
27
|
-
if (context.exeInfo.projectConfig
|
|
28
|
-
amplify_prompts_1.printer.debug('Not pulling components because this project is not configured with the "react" framework');
|
|
29
|
+
if (context.exeInfo.projectConfig.javascript.framework !== 'react') {
|
|
30
|
+
amplify_prompts_1.printer.debug('Not pulling components because this project is not configured with the "react" framework.');
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (!(await clients_1.AmplifyStudioClient.isAmplifyApp(context, (0, environmentHelpers_1.getAppId)(context)))) {
|
|
34
|
+
amplify_prompts_1.printer.debug('Not pulling components because this project is not Amplify Studio enabled.');
|
|
29
35
|
return false;
|
|
30
36
|
}
|
|
31
37
|
return true;
|
|
32
|
-
}
|
|
38
|
+
};
|
|
33
39
|
exports.shouldRenderComponents = shouldRenderComponents;
|
|
34
40
|
//# sourceMappingURL=shouldRenderComponents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shouldRenderComponents.js","sourceRoot":"","sources":["../../../src/commands/utils/shouldRenderComponents.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"shouldRenderComponents.js","sourceRoot":"","sources":["../../../src/commands/utils/shouldRenderComponents.ts"],"names":[],"mappings":";;;AAEA,qDAA0C;AAC1C,2CAAoD;AACpD,6DAAgD;AAKzC,MAAM,sBAAsB,GAAG,KAAK,EAAE,OAAmB,EAAoB,EAAE;;IACpF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QAC5B,yBAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;KACb;IACD,IAAI,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,OAAO,0CAAG,YAAY,CAAC,EAAE;QAC3C,yBAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,0CAAE,aAAa,CAAA,EAAE;QACpC,yBAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC1E,yBAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1F,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,KAAK,YAAY,EAAE;QAC3D,yBAAO,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;QACzG,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,KAAK,OAAO,EAAE;QAClE,yBAAO,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC3G,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,CAAC,MAAM,6BAAmB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAA,6BAAQ,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACzE,yBAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC5F,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AApCW,QAAA,sBAAsB,0BAoCjC"}
|
|
@@ -1,25 +1,17 @@
|
|
|
1
1
|
import { $TSContext } from 'amplify-cli-core';
|
|
2
|
-
import { StudioComponent, StudioTheme, GenericDataSchema } from '@aws-amplify/codegen-ui';
|
|
3
|
-
|
|
4
|
-
resultType:
|
|
5
|
-
|
|
6
|
-
schemaName?:
|
|
7
|
-
error?: undefined;
|
|
2
|
+
import { StudioComponent, StudioTheme, GenericDataSchema, StudioForm, StudioSchema } from '@aws-amplify/codegen-ui';
|
|
3
|
+
declare type CodegenResponse<T extends StudioSchema> = {
|
|
4
|
+
resultType: 'SUCCESS';
|
|
5
|
+
schema: T;
|
|
6
|
+
schemaName?: string;
|
|
8
7
|
} | {
|
|
9
|
-
resultType:
|
|
8
|
+
resultType: 'FAILURE';
|
|
10
9
|
schemaName: string;
|
|
11
10
|
error: Error;
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
export declare const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
error?: undefined;
|
|
19
|
-
} | {
|
|
20
|
-
resultType: string;
|
|
21
|
-
schemaName: string;
|
|
22
|
-
error: Error;
|
|
23
|
-
theme?: undefined;
|
|
24
|
-
})[];
|
|
11
|
+
schema?: T;
|
|
12
|
+
};
|
|
13
|
+
export declare const generateUiBuilderComponents: (context: $TSContext, componentSchemas: any[], dataSchema?: GenericDataSchema | undefined) => CodegenResponse<StudioComponent>[];
|
|
14
|
+
export declare const generateUiBuilderThemes: (context: $TSContext, themeSchemas: any[]) => CodegenResponse<StudioTheme>[];
|
|
15
|
+
export declare const generateUiBuilderForms: (context: $TSContext, formSchemas: any[], dataSchema?: GenericDataSchema | undefined, autoGenerateForms?: boolean | undefined) => CodegenResponse<StudioForm>[];
|
|
16
|
+
export {};
|
|
25
17
|
//# sourceMappingURL=syncAmplifyUiBuilderComponents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncAmplifyUiBuilderComponents.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/syncAmplifyUiBuilderComponents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,eAAe,EAAE,WAAW,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"syncAmplifyUiBuilderComponents.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/syncAmplifyUiBuilderComponents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAC1E,MAAM,yBAAyB,CAAC;AASjC,aAAK,eAAe,CAAC,CAAC,SAAS,YAAY,IACvC;IACE,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,CAAC,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,CAAC;CACZ,CAAC;AAON,eAAO,MAAM,2BAA2B,YAC7B,UAAU,oBACD,GAAG,EAAE,iDAEtB,gBAAgB,eAAe,CAAC,EAkBlC,CAAC;AAMF,eAAO,MAAM,uBAAuB,YAAa,UAAU,gBAAgB,GAAG,EAAE,KAAG,gBAAgB,WAAW,CAAC,EAgB9G,CAAC;AAKF,eAAO,MAAM,sBAAsB,YAExB,UAAU,eACN,GAAG,EAAE,0FAGjB,gBAAgB,UAAU,CAAC,EAiC7B,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateUiBuilderThemes = exports.generateUiBuilderComponents = void 0;
|
|
3
|
+
exports.generateUiBuilderForms = exports.generateUiBuilderThemes = exports.generateUiBuilderComponents = void 0;
|
|
4
4
|
const amplify_prompts_1 = require("amplify-prompts");
|
|
5
|
+
const codegen_ui_1 = require("@aws-amplify/codegen-ui");
|
|
5
6
|
const codegenResources_1 = require("./codegenResources");
|
|
6
7
|
const getUiBuilderComponentsPath_1 = require("./getUiBuilderComponentsPath");
|
|
7
8
|
const generateUiBuilderComponents = (context, componentSchemas, dataSchema) => {
|
|
8
9
|
const componentResults = componentSchemas.map(schema => {
|
|
9
10
|
try {
|
|
10
11
|
const component = (0, codegenResources_1.createUiBuilderComponent)(context, schema, dataSchema);
|
|
11
|
-
return { resultType: 'SUCCESS', component };
|
|
12
|
+
return { resultType: 'SUCCESS', schema: component };
|
|
12
13
|
}
|
|
13
14
|
catch (e) {
|
|
14
15
|
amplify_prompts_1.printer.debug(`Failure caught processing ${schema.name}`);
|
|
@@ -24,7 +25,7 @@ const generateUiBuilderThemes = (context, themeSchemas) => {
|
|
|
24
25
|
const themeResults = themeSchemas.map(schema => {
|
|
25
26
|
try {
|
|
26
27
|
const theme = (0, codegenResources_1.createUiBuilderTheme)(context, schema);
|
|
27
|
-
return { resultType: 'SUCCESS', theme };
|
|
28
|
+
return { resultType: 'SUCCESS', schema: theme };
|
|
28
29
|
}
|
|
29
30
|
catch (e) {
|
|
30
31
|
amplify_prompts_1.printer.debug(`Failure caught processing ${schema.name}`);
|
|
@@ -36,4 +37,36 @@ const generateUiBuilderThemes = (context, themeSchemas) => {
|
|
|
36
37
|
return themeResults;
|
|
37
38
|
};
|
|
38
39
|
exports.generateUiBuilderThemes = generateUiBuilderThemes;
|
|
40
|
+
const generateUiBuilderForms = (context, formSchemas, dataSchema, autoGenerateForms) => {
|
|
41
|
+
const modelMap = {};
|
|
42
|
+
if ((dataSchema === null || dataSchema === void 0 ? void 0 : dataSchema.dataSourceType) === 'DataStore' && autoGenerateForms) {
|
|
43
|
+
Object.entries(dataSchema.models).forEach(([name, model]) => {
|
|
44
|
+
if ((0, codegen_ui_1.checkIsSupportedAsForm)(model) && !model.isJoinTable) {
|
|
45
|
+
modelMap[name] = new Set(['create', 'update']);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const codegenForm = (schema) => {
|
|
50
|
+
try {
|
|
51
|
+
const form = (0, codegenResources_1.createUiBuilderForm)(context, schema, dataSchema);
|
|
52
|
+
return { resultType: 'SUCCESS', schema: form };
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
amplify_prompts_1.printer.debug(`Failure caught processing ${schema.name}`);
|
|
56
|
+
amplify_prompts_1.printer.debug(e);
|
|
57
|
+
return { resultType: 'FAILURE', schemaName: schema.name, error: e };
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const formResults = formSchemas.map((schema) => {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
if ((schema === null || schema === void 0 ? void 0 : schema.dataType) && ((_a = schema.dataType) === null || _a === void 0 ? void 0 : _a.dataSourceType) === 'DataStore') {
|
|
63
|
+
(_b = modelMap[schema.dataType.dataTypeName]) === null || _b === void 0 ? void 0 : _b.delete(schema.formActionType);
|
|
64
|
+
}
|
|
65
|
+
return codegenForm(schema);
|
|
66
|
+
});
|
|
67
|
+
formResults.push(...(0, codegenResources_1.generateBaseForms)(modelMap).map(codegenForm));
|
|
68
|
+
amplify_prompts_1.printer.debug(`Generated ${formResults.filter(result => result.resultType === 'SUCCESS').length} forms in ${(0, getUiBuilderComponentsPath_1.getUiBuilderComponentsPath)(context)}`);
|
|
69
|
+
return formResults;
|
|
70
|
+
};
|
|
71
|
+
exports.generateUiBuilderForms = generateUiBuilderForms;
|
|
39
72
|
//# sourceMappingURL=syncAmplifyUiBuilderComponents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncAmplifyUiBuilderComponents.js","sourceRoot":"","sources":["../../../src/commands/utils/syncAmplifyUiBuilderComponents.ts"],"names":[],"mappings":";;;AAAA,qDAA0C;
|
|
1
|
+
{"version":3,"file":"syncAmplifyUiBuilderComponents.js","sourceRoot":"","sources":["../../../src/commands/utils/syncAmplifyUiBuilderComponents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const run: () => Promise<void>;
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG,QAAa,QAAQ,IAAI,CAExC,CAAC"}
|
package/lib/commands/version.js
CHANGED
|
@@ -25,8 +25,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
25
25
|
exports.run = void 0;
|
|
26
26
|
const amplify_prompts_1 = require("amplify-prompts");
|
|
27
27
|
const path_1 = __importDefault(require("path"));
|
|
28
|
-
async
|
|
28
|
+
const run = async () => {
|
|
29
29
|
amplify_prompts_1.printer.info((await Promise.resolve().then(() => __importStar(require(path_1.default.join(__dirname, '..', '..', 'package.json'))))).version);
|
|
30
|
-
}
|
|
30
|
+
};
|
|
31
31
|
exports.run = run;
|
|
32
32
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA0C;AAC1C,gDAAwB;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAA0C;AAC1C,gDAAwB;AAKjB,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;IAC3C,yBAAO,CAAC,IAAI,CAAC,CAAC,wDAAa,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACzF,CAAC,CAAC;AAFW,QAAA,GAAG,OAEd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-PostEnvAdd.d.ts","sourceRoot":"","sources":["../../src/event-handlers/handle-PostEnvAdd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"handle-PostEnvAdd.d.ts","sourceRoot":"","sources":["../../src/event-handlers/handle-PostEnvAdd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,eAAO,MAAM,GAAG,YAAmB,UAAU,KAAG,QAAQ,IAAI,CAO3D,CAAC"}
|
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.run = void 0;
|
|
4
4
|
const amplify_prompts_1 = require("amplify-prompts");
|
|
5
|
-
|
|
5
|
+
const cloneComponentsFromEnv_1 = require("../commands/cloneComponentsFromEnv");
|
|
6
|
+
const run = async (context) => {
|
|
6
7
|
try {
|
|
7
|
-
await
|
|
8
|
-
context,
|
|
9
|
-
'cloneComponentsFromEnv',
|
|
10
|
-
]);
|
|
8
|
+
await (0, cloneComponentsFromEnv_1.run)(context);
|
|
11
9
|
}
|
|
12
10
|
catch (e) {
|
|
13
11
|
amplify_prompts_1.printer.debug(e);
|
|
14
12
|
}
|
|
15
|
-
}
|
|
13
|
+
};
|
|
16
14
|
exports.run = run;
|
|
17
15
|
//# sourceMappingURL=handle-PostEnvAdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-PostEnvAdd.js","sourceRoot":"","sources":["../../src/event-handlers/handle-PostEnvAdd.ts"],"names":[],"mappings":";;;AACA,qDAA0C;
|
|
1
|
+
{"version":3,"file":"handle-PostEnvAdd.js","sourceRoot":"","sources":["../../src/event-handlers/handle-PostEnvAdd.ts"],"names":[],"mappings":";;;AACA,qDAA0C;AAC1C,+EAAmF;AAM5E,MAAM,GAAG,GAAG,KAAK,EAAE,OAAmB,EAAiB,EAAE;IAC9D,IAAI;QACF,MAAM,IAAA,4BAAsB,EAAC,OAAO,CAAC,CAAC;KACvC;IAAC,OAAO,CAAC,EAAE;QAEV,yBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;AACH,CAAC,CAAC;AAPW,QAAA,GAAG,OAOd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-PostPull.d.ts","sourceRoot":"","sources":["../../src/event-handlers/handle-PostPull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"handle-PostPull.d.ts","sourceRoot":"","sources":["../../src/event-handlers/handle-PostPull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,eAAO,MAAM,GAAG,YAAmB,UAAU,KAAG,QAAQ,IAAI,CAO3D,CAAC"}
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.run = void 0;
|
|
4
4
|
const amplify_prompts_1 = require("amplify-prompts");
|
|
5
|
-
|
|
5
|
+
const generateComponents_1 = require("../commands/generateComponents");
|
|
6
|
+
const run = async (context) => {
|
|
6
7
|
try {
|
|
7
|
-
await
|
|
8
|
+
await (0, generateComponents_1.run)(context);
|
|
8
9
|
}
|
|
9
10
|
catch (e) {
|
|
10
11
|
amplify_prompts_1.printer.debug(e);
|
|
11
12
|
}
|
|
12
|
-
}
|
|
13
|
+
};
|
|
13
14
|
exports.run = run;
|
|
14
15
|
//# sourceMappingURL=handle-PostPull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-PostPull.js","sourceRoot":"","sources":["../../src/event-handlers/handle-PostPull.ts"],"names":[],"mappings":";;;AACA,qDAA0C;
|
|
1
|
+
{"version":3,"file":"handle-PostPull.js","sourceRoot":"","sources":["../../src/event-handlers/handle-PostPull.ts"],"names":[],"mappings":";;;AACA,qDAA0C;AAC1C,uEAA2E;AAKpE,MAAM,GAAG,GAAG,KAAK,EAAE,OAAmB,EAAiB,EAAE;IAC9D,IAAI;QACF,MAAM,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;KACnC;IAAC,OAAO,CAAC,EAAE;QAEV,yBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;AACH,CAAC,CAAC;AAPW,QAAA,GAAG,OAOd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-PostPush.d.ts","sourceRoot":"","sources":["../../src/event-handlers/handle-PostPush.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,eAAO,MAAM,GAAG,YAAmB,UAAU,KAAG,QAAQ,IAAI,CAO3D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.run = void 0;
|
|
4
|
+
const amplify_prompts_1 = require("amplify-prompts");
|
|
5
|
+
const generateComponents_1 = require("../commands/generateComponents");
|
|
6
|
+
const run = async (context) => {
|
|
7
|
+
try {
|
|
8
|
+
await (0, generateComponents_1.run)(context);
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
amplify_prompts_1.printer.debug(e);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
exports.run = run;
|
|
15
|
+
//# sourceMappingURL=handle-PostPush.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-PostPush.js","sourceRoot":"","sources":["../../src/event-handlers/handle-PostPush.ts"],"names":[],"mappings":";;;AACA,qDAA0C;AAC1C,uEAA2E;AAKpE,MAAM,GAAG,GAAG,KAAK,EAAE,OAAmB,EAAiB,EAAE;IAC9D,IAAI;QACF,MAAM,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;KACnC;IAAC,OAAO,CAAC,EAAE;QAEV,yBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;AACH,CAAC,CAAC;AAPW,QAAA,GAAG,OAOd"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/amplify-util-uibuilder",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0-cdkv2.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@aws-amplify/codegen-ui": "
|
|
17
|
-
"@aws-amplify/codegen-ui-react": "
|
|
18
|
-
"amplify-cli-core": "
|
|
19
|
-
"amplify-prompts": "2.6.0",
|
|
20
|
-
"aws-sdk": "^2.
|
|
16
|
+
"@aws-amplify/codegen-ui": "2.5.2",
|
|
17
|
+
"@aws-amplify/codegen-ui-react": "2.5.2",
|
|
18
|
+
"amplify-cli-core": "4.0.0-cdkv2.1",
|
|
19
|
+
"amplify-prompts": "2.6.1-cdkv2.0",
|
|
20
|
+
"aws-sdk": "^2.1233.0",
|
|
21
|
+
"fs-extra": "^8.1.0",
|
|
21
22
|
"ora": "^4.0.3"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
@@ -67,5 +68,5 @@
|
|
|
67
68
|
"usePathForSuiteName": "true",
|
|
68
69
|
"addFileAttribute": "true"
|
|
69
70
|
},
|
|
70
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "71ddc030dfe6d5c9b472d4c6a7b00c0e655e671a"
|
|
71
72
|
}
|
|
@@ -5,6 +5,9 @@ import { run } from '../commands/cloneComponentsFromEnv';
|
|
|
5
5
|
const extractArgsDependencyMock = extractArgsDependency as any;
|
|
6
6
|
const awsMock = aws as any;
|
|
7
7
|
|
|
8
|
+
jest.mock('../commands/utils/featureFlags', () => ({
|
|
9
|
+
getTransformerVersion: jest.fn().mockReturnValue(2),
|
|
10
|
+
}));
|
|
8
11
|
jest.mock('../commands/utils/extractArgs');
|
|
9
12
|
jest.mock('amplify-cli-core');
|
|
10
13
|
|
|
@@ -18,7 +21,7 @@ const mockedComponentExport = jest.fn((envName: string) => {
|
|
|
18
21
|
entities: [{}],
|
|
19
22
|
};
|
|
20
23
|
});
|
|
21
|
-
const mockedComponentCreate = jest.fn(
|
|
24
|
+
const mockedComponentCreate = jest.fn().mockReturnValue({ entity: {} });
|
|
22
25
|
|
|
23
26
|
describe('can clone components to new environment', () => {
|
|
24
27
|
let context: any;
|
|
@@ -34,18 +37,26 @@ describe('can clone components to new environment', () => {
|
|
|
34
37
|
},
|
|
35
38
|
},
|
|
36
39
|
};
|
|
37
|
-
extractArgsDependencyMock.extractArgs = jest.fn().
|
|
40
|
+
extractArgsDependencyMock.extractArgs = jest.fn().mockReturnValue({
|
|
38
41
|
sourceEnvName: 'sourceEnvName',
|
|
39
42
|
newEnvName: 'newEnvName',
|
|
40
43
|
appId: 'appId',
|
|
41
44
|
environmentName: 'environmentName',
|
|
42
|
-
})
|
|
43
|
-
awsMock.AmplifyUIBuilder = jest.fn(
|
|
45
|
+
});
|
|
46
|
+
awsMock.AmplifyUIBuilder = jest.fn().mockReturnValue({
|
|
44
47
|
exportComponents: jest.fn(({ environmentName }) => ({
|
|
45
48
|
promise: () => mockedComponentExport(environmentName),
|
|
46
49
|
})),
|
|
47
|
-
createComponent: jest.fn(
|
|
48
|
-
|
|
50
|
+
createComponent: jest.fn().mockReturnValue({ promise: () => mockedComponentCreate() }),
|
|
51
|
+
getMetadata: jest.fn().mockReturnValue({
|
|
52
|
+
promise: jest.fn().mockReturnValue({
|
|
53
|
+
features: {
|
|
54
|
+
autoGenerateForms: 'true',
|
|
55
|
+
autoGenerateViews: 'true',
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
}),
|
|
59
|
+
});
|
|
49
60
|
});
|
|
50
61
|
|
|
51
62
|
it('clones components to a new env', async () => {
|
|
@@ -3,11 +3,12 @@ import {
|
|
|
3
3
|
generateAmplifyUiBuilderIndexFile,
|
|
4
4
|
createUiBuilderTheme,
|
|
5
5
|
createUiBuilderComponent,
|
|
6
|
+
createUiBuilderForm,
|
|
7
|
+
generateAmplifyUiBuilderUtilFile,
|
|
6
8
|
} from '../commands/utils/codegenResources';
|
|
7
9
|
|
|
8
10
|
jest.mock('@aws-amplify/codegen-ui');
|
|
9
11
|
const codegenMock = codegen as any;
|
|
10
|
-
const renderSchemaToTemplateMock = jest.fn();
|
|
11
12
|
|
|
12
13
|
describe('can create a ui builder component', () => {
|
|
13
14
|
let context: any;
|
|
@@ -42,9 +43,10 @@ describe('can create a ui builder component', () => {
|
|
|
42
43
|
properties: {},
|
|
43
44
|
variants: [],
|
|
44
45
|
};
|
|
45
|
-
|
|
46
|
+
const renderSchemaToTemplateMock = jest.fn();
|
|
47
|
+
codegenMock.StudioTemplateRendererManager = jest.fn().mockReturnValue({
|
|
46
48
|
renderSchemaToTemplate: renderSchemaToTemplateMock,
|
|
47
|
-
})
|
|
49
|
+
});
|
|
48
50
|
});
|
|
49
51
|
it('calls the renderManager', () => {
|
|
50
52
|
createUiBuilderComponent(context, schema);
|
|
@@ -54,8 +56,24 @@ describe('can create a ui builder component', () => {
|
|
|
54
56
|
createUiBuilderTheme(context, schema);
|
|
55
57
|
expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
|
|
56
58
|
});
|
|
59
|
+
it('calls the renderManager for forms', () => {
|
|
60
|
+
createUiBuilderForm(context, schema);
|
|
61
|
+
expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
|
|
62
|
+
});
|
|
57
63
|
it('calls the renderManager for index file', () => {
|
|
58
64
|
generateAmplifyUiBuilderIndexFile(context, [schema]);
|
|
59
65
|
expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
|
|
60
66
|
});
|
|
67
|
+
it('calls the renderManager for utils file w/ validation, formatter, and fetchByPath helpers if there is a form', () => {
|
|
68
|
+
generateAmplifyUiBuilderUtilFile(context, { hasForms: true, hasViews: false });
|
|
69
|
+
expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledWith(expect.arrayContaining(['validation', 'formatter', 'fetchByPath']));
|
|
70
|
+
});
|
|
71
|
+
it('calls the renderManager for utils file w/ formatter helper if there is a view', () => {
|
|
72
|
+
generateAmplifyUiBuilderUtilFile(context, { hasForms: false, hasViews: true });
|
|
73
|
+
expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledWith(['formatter']);
|
|
74
|
+
});
|
|
75
|
+
it('should not call the renderManager for utils file if there is neither form nor views', () => {
|
|
76
|
+
generateAmplifyUiBuilderUtilFile(context, { hasForms: false, hasViews: false });
|
|
77
|
+
expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledTimes(0);
|
|
78
|
+
});
|
|
61
79
|
});
|
|
@@ -7,8 +7,11 @@ jest.mock('amplify-cli-core');
|
|
|
7
7
|
const awsMock = aws as any;
|
|
8
8
|
const utilsMock = utils as any;
|
|
9
9
|
|
|
10
|
-
utilsMock.shouldRenderComponents = jest.fn().
|
|
11
|
-
utilsMock.notifyMissingPackages = jest.fn().
|
|
10
|
+
utilsMock.shouldRenderComponents = jest.fn().mockReturnValue(true);
|
|
11
|
+
utilsMock.notifyMissingPackages = jest.fn().mockReturnValue(true);
|
|
12
|
+
jest.mock('../commands/utils/featureFlags', () => ({
|
|
13
|
+
getTransformerVersion: jest.fn().mockImplementation(() => 2),
|
|
14
|
+
}));
|
|
12
15
|
|
|
13
16
|
describe('can generate components', () => {
|
|
14
17
|
let context: any;
|
|
@@ -36,27 +39,52 @@ describe('can generate components', () => {
|
|
|
36
39
|
},
|
|
37
40
|
],
|
|
38
41
|
};
|
|
39
|
-
mockedExport = jest.fn(
|
|
42
|
+
mockedExport = jest.fn().mockReturnValue({
|
|
40
43
|
entities: schemas.entities,
|
|
41
|
-
})
|
|
42
|
-
awsMock.AmplifyUIBuilder = jest.fn(
|
|
43
|
-
exportComponents: jest.fn(
|
|
44
|
+
});
|
|
45
|
+
awsMock.AmplifyUIBuilder = jest.fn().mockReturnValue({
|
|
46
|
+
exportComponents: jest.fn().mockReturnValue({
|
|
44
47
|
promise: () => mockedExport(),
|
|
45
|
-
})
|
|
46
|
-
exportThemes: jest.fn(
|
|
48
|
+
}),
|
|
49
|
+
exportThemes: jest.fn().mockReturnValue({
|
|
47
50
|
promise: () => mockedExport(),
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
}),
|
|
52
|
+
exportForms: jest.fn().mockReturnValue({
|
|
53
|
+
promise: () => mockedExport(),
|
|
54
|
+
}),
|
|
55
|
+
exportViews: jest.fn().mockReturnValue({
|
|
56
|
+
promise: () => mockedExport(),
|
|
57
|
+
}),
|
|
58
|
+
getMetadata: jest.fn().mockReturnValue({
|
|
59
|
+
promise: jest.fn().mockReturnValue({
|
|
60
|
+
features: {
|
|
61
|
+
autoGenerateForms: 'true',
|
|
62
|
+
autoGenerateViews: 'true',
|
|
63
|
+
},
|
|
64
|
+
}),
|
|
65
|
+
}),
|
|
66
|
+
});
|
|
67
|
+
utilsMock.generateUiBuilderComponents = jest.fn().mockReturnValue(schemas.entities);
|
|
68
|
+
utilsMock.generateUiBuilderThemes = jest.fn().mockReturnValue(schemas.entities);
|
|
69
|
+
utilsMock.generateUiBuilderForms = jest.fn().mockReturnValue(schemas.entities);
|
|
70
|
+
utilsMock.getAmplifyDataSchema = jest.fn().mockReturnValue(undefined);
|
|
71
|
+
utilsMock.generateAmplifyUiBuilderIndexFile = jest.fn().mockReturnValue(true);
|
|
72
|
+
utilsMock.generateAmplifyUiBuilderUtilFile = jest.fn().mockReturnValue(true);
|
|
54
73
|
});
|
|
55
74
|
|
|
56
75
|
it('runs generateComponents', async () => {
|
|
57
76
|
await run(context);
|
|
58
|
-
expect(mockedExport).toBeCalledTimes(
|
|
77
|
+
expect(mockedExport).toBeCalledTimes(3);
|
|
59
78
|
expect(utilsMock.generateUiBuilderComponents).toBeCalledTimes(1);
|
|
60
79
|
expect(utilsMock.generateUiBuilderThemes).toBeCalledTimes(1);
|
|
80
|
+
expect(utilsMock.generateUiBuilderForms).toBeCalledTimes(1);
|
|
81
|
+
});
|
|
82
|
+
it('does not run generateComponents if not Amplify Admin app', async () => {
|
|
83
|
+
utilsMock.shouldRenderComponents = jest.fn().mockReturnValue(false);
|
|
84
|
+
await run(context);
|
|
85
|
+
expect(mockedExport).toBeCalledTimes(0);
|
|
86
|
+
expect(utilsMock.generateUiBuilderComponents).toBeCalledTimes(0);
|
|
87
|
+
expect(utilsMock.generateUiBuilderThemes).toBeCalledTimes(0);
|
|
88
|
+
expect(utilsMock.generateUiBuilderForms).toBeCalledTimes(0);
|
|
61
89
|
});
|
|
62
90
|
});
|