@aws-amplify/amplify-util-uibuilder 1.5.0 → 1.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/amplify-plugin.json +10 -3
  3. package/lib/clients/amplify-studio-client.d.ts +13 -2
  4. package/lib/clients/amplify-studio-client.d.ts.map +1 -1
  5. package/lib/clients/amplify-studio-client.js +85 -17
  6. package/lib/clients/amplify-studio-client.js.map +1 -1
  7. package/lib/commands/generateComponents.d.ts.map +1 -1
  8. package/lib/commands/generateComponents.js +33 -15
  9. package/lib/commands/generateComponents.js.map +1 -1
  10. package/lib/commands/help.d.ts +1 -1
  11. package/lib/commands/help.d.ts.map +1 -1
  12. package/lib/commands/help.js +2 -2
  13. package/lib/commands/help.js.map +1 -1
  14. package/lib/commands/utils/codegenResources.d.ts +14 -3
  15. package/lib/commands/utils/codegenResources.d.ts.map +1 -1
  16. package/lib/commands/utils/codegenResources.js +72 -5
  17. package/lib/commands/utils/codegenResources.js.map +1 -1
  18. package/lib/commands/utils/featureFlags.d.ts +2 -0
  19. package/lib/commands/utils/featureFlags.d.ts.map +1 -0
  20. package/lib/commands/utils/featureFlags.js +35 -0
  21. package/lib/commands/utils/featureFlags.js.map +1 -0
  22. package/lib/commands/utils/getUiBuilderComponentsPath.d.ts.map +1 -1
  23. package/lib/commands/utils/getUiBuilderComponentsPath.js.map +1 -1
  24. package/lib/commands/utils/shouldRenderComponents.d.ts +1 -1
  25. package/lib/commands/utils/shouldRenderComponents.d.ts.map +1 -1
  26. package/lib/commands/utils/shouldRenderComponents.js +14 -8
  27. package/lib/commands/utils/shouldRenderComponents.js.map +1 -1
  28. package/lib/commands/utils/syncAmplifyUiBuilderComponents.d.ts +12 -20
  29. package/lib/commands/utils/syncAmplifyUiBuilderComponents.d.ts.map +1 -1
  30. package/lib/commands/utils/syncAmplifyUiBuilderComponents.js +51 -3
  31. package/lib/commands/utils/syncAmplifyUiBuilderComponents.js.map +1 -1
  32. package/lib/commands/version.d.ts +1 -1
  33. package/lib/commands/version.d.ts.map +1 -1
  34. package/lib/commands/version.js +2 -2
  35. package/lib/commands/version.js.map +1 -1
  36. package/lib/event-handlers/handle-PostEnvAdd.d.ts +1 -1
  37. package/lib/event-handlers/handle-PostEnvAdd.d.ts.map +1 -1
  38. package/lib/event-handlers/handle-PostEnvAdd.js +4 -6
  39. package/lib/event-handlers/handle-PostEnvAdd.js.map +1 -1
  40. package/lib/event-handlers/handle-PostPull.d.ts +1 -1
  41. package/lib/event-handlers/handle-PostPull.d.ts.map +1 -1
  42. package/lib/event-handlers/handle-PostPull.js +4 -3
  43. package/lib/event-handlers/handle-PostPull.js.map +1 -1
  44. package/lib/event-handlers/handle-PostPush.d.ts +3 -0
  45. package/lib/event-handlers/handle-PostPush.d.ts.map +1 -0
  46. package/lib/event-handlers/handle-PostPush.js +15 -0
  47. package/lib/event-handlers/handle-PostPush.js.map +1 -0
  48. package/package.json +8 -7
  49. package/src/__tests__/cloneComponentsFromEnv.test.ts +17 -6
  50. package/src/__tests__/createUiBuilderComponent.test.ts +26 -3
  51. package/src/__tests__/generateComponents.test.ts +44 -15
  52. package/src/__tests__/getAmplifyDataSchema.test.ts +51 -19
  53. package/src/__tests__/shouldRenderComponents.test.ts +51 -4
  54. package/src/__tests__/syncAmplifyUiComponents.test.ts +126 -8
  55. package/src/__tests__/utils.ts +70 -0
  56. package/src/clients/amplify-studio-client.ts +157 -69
  57. package/src/commands/generateComponents.ts +43 -16
  58. package/src/commands/help.ts +5 -2
  59. package/src/commands/utils/codegenResources.ts +115 -6
  60. package/src/commands/utils/featureFlags.ts +62 -0
  61. package/src/commands/utils/getUiBuilderComponentsPath.ts +7 -2
  62. package/src/commands/utils/shouldRenderComponents.ts +20 -8
  63. package/src/commands/utils/syncAmplifyUiBuilderComponents.ts +96 -29
  64. package/src/commands/version.ts +5 -2
  65. package/src/event-handlers/handle-PostEnvAdd.ts +8 -6
  66. package/src/event-handlers/handle-PostPull.ts +7 -3
  67. package/src/event-handlers/handle-PostPush.ts +15 -0
  68. package/tsconfig.tsbuildinfo +1 -1
  69. package/src/__tests__/handleEvents.test.ts +0 -21
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransformerVersion = void 0;
4
+ const amplify_cli_core_1 = require("amplify-cli-core");
5
+ const amplify_prompts_1 = require("amplify-prompts");
6
+ const useExperimentalPipelinedTransformerFF = () => amplify_cli_core_1.FeatureFlags.getBoolean('graphQLTransformer.useExperimentalPipelinedTransformer');
7
+ const transformerVersionFF = () => amplify_cli_core_1.FeatureFlags.getNumber('graphQLTransformer.transformerVersion');
8
+ const getTransformerVersion = async () => {
9
+ if (useExperimentalPipelinedTransformerFF() === false) {
10
+ return 1;
11
+ }
12
+ if (isLegacyFeatureFlagConfiguration()) {
13
+ await migrateToTransformerVersionFeatureFlag();
14
+ }
15
+ const transformerVersion = transformerVersionFF();
16
+ if (transformerVersion !== 1 && transformerVersion !== 2) {
17
+ throw new Error(`Invalid value specified for transformerVersion: '${transformerVersion}'`);
18
+ }
19
+ return transformerVersion;
20
+ };
21
+ exports.getTransformerVersion = getTransformerVersion;
22
+ const isLegacyFeatureFlagConfiguration = () => useExperimentalPipelinedTransformerFF() && transformerVersionFF() === 1;
23
+ const migrateToTransformerVersionFeatureFlag = async () => {
24
+ var _a;
25
+ const projectPath = (_a = amplify_cli_core_1.pathManager.findProjectRoot()) !== null && _a !== void 0 ? _a : process.cwd();
26
+ const config = amplify_cli_core_1.stateManager.getCLIJSON(projectPath, undefined, {
27
+ throwIfNotExist: false,
28
+ preserveComments: true,
29
+ });
30
+ config.features.graphqltransformer.transformerversion = 2;
31
+ amplify_cli_core_1.stateManager.setCLIJSON(projectPath, config);
32
+ await amplify_cli_core_1.FeatureFlags.reloadValues();
33
+ amplify_prompts_1.printer.warn(`\nThe project is configured with 'transformerVersion': ${transformerVersionFF()}, but 'useExperimentalPipelinedTransformer': ${useExperimentalPipelinedTransformerFF()}. Setting the 'transformerVersion': ${config.features.graphqltransformer.transformerversion}. 'useExperimentalPipelinedTransformer' is deprecated.`);
34
+ };
35
+ //# sourceMappingURL=featureFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featureFlags.js","sourceRoot":"","sources":["../../../src/commands/utils/featureFlags.ts"],"names":[],"mappings":";;;AACA,uDAE0B;AAC1B,qDAA0C;AAO1C,MAAM,qCAAqC,GAAG,GAAY,EAAE,CAAC,+BAAY,CAAC,UAAU,CAAC,wDAAwD,CAAC,CAAC;AAC/I,MAAM,oBAAoB,GAAG,GAAW,EAAE,CAAC,+BAAY,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;AAMpG,MAAM,qBAAqB,GAAG,KAAK,IAAqB,EAAE;IAC/D,IAAI,qCAAqC,EAAE,KAAK,KAAK,EAAE;QACrD,OAAO,CAAC,CAAC;KACV;IAED,IAAI,gCAAgC,EAAE,EAAE;QACtC,MAAM,sCAAsC,EAAE,CAAC;KAChD;IAED,MAAM,kBAAkB,GAAG,oBAAoB,EAAE,CAAC;IAClD,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,oDAAoD,kBAAkB,GAAG,CAAC,CAAC;KAC5F;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC;AAKF,MAAM,gCAAgC,GAAG,GAAY,EAAE,CAAC,qCAAqC,EAAE,IAAI,oBAAoB,EAAE,KAAK,CAAC,CAAC;AAKhI,MAAM,sCAAsC,GAAG,KAAK,IAAmB,EAAE;;IACvE,MAAM,WAAW,GAAG,MAAA,8BAAW,CAAC,eAAe,EAAE,mCAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnE,MAAM,MAAM,GAAG,+BAAY,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE;QAC7D,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAGH,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC1D,+BAAY,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,+BAAY,CAAC,YAAY,EAAE,CAAC;IAElC,yBAAO,CAAC,IAAI,CACV,0DAA0D,oBAAoB,EAAE,gDAAgD,qCAAqC,EAAE,uCACrK,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,kBACrC,wDAAwD,CACzD,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getUiBuilderComponentsPath.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/getUiBuilderComponentsPath.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,0BAA0B,YAAa,UAAU,WAU7D,CAAC"}
1
+ {"version":3,"file":"getUiBuilderComponentsPath.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/getUiBuilderComponentsPath.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,eAAO,MAAM,0BAA0B,YAAa,UAAU,KAAG,MAWhE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getUiBuilderComponentsPath.js","sourceRoot":"","sources":["../../../src/commands/utils/getUiBuilderComponentsPath.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,wDAA0B;AAC1B,+CAA4C;AAGrC,MAAM,0BAA0B,GAAG,CAAC,OAAmB,EAAE,EAAE;IAChE,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;QAC3C,kBAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;KACxC;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAVW,QAAA,0BAA0B,8BAUrC"}
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 function shouldRenderComponents(context: $TSContext): Promise<boolean>;
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,UAAU,oBA+B/D"}
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
- async function shouldRenderComponents(context) {
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['javascript'].framework !== 'react') {
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":";;;AACA,qDAA0C;AACnC,KAAK,UAAU,sBAAsB,CAAC,OAAmB;;IAC9D,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,yDAAyD,CAAC,CAAC;QACzE,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,+EAA+E,CAAC,CAAC;QAC/F,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,yEAAyE,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,KAAK,YAAY,EAAE;QAC3D,yBAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QACxG,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,SAAS,KAAK,OAAO,EAAE;QACrE,yBAAO,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC1G,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA/BD,wDA+BC"}
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
- export declare const generateUiBuilderComponents: (context: $TSContext, componentSchemas: any[], dataSchema?: GenericDataSchema | undefined) => ({
4
- resultType: string;
5
- component: StudioComponent;
6
- schemaName?: undefined;
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: string;
8
+ resultType: 'FAILURE';
10
9
  schemaName: string;
11
10
  error: Error;
12
- component?: undefined;
13
- })[];
14
- export declare const generateUiBuilderThemes: (context: $TSContext, themeSchemas: any[]) => ({
15
- resultType: string;
16
- theme: StudioTheme;
17
- schemaName?: undefined;
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,EAChD,MAAM,yBAAyB,CAAC;AAQjC,eAAO,MAAM,2BAA2B,YAAa,UAAU,oBAAoB,GAAG,EAAE,iDAAmC,CAAC;IAC1H,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GAAG;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC,EAkBD,CAAC;AAMF,eAAO,MAAM,uBAAuB,YAAa,UAAU,gBAAgB,GAAG,EAAE,KAAG,CAAC;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GAAG;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC,EAgBD,CAAC"}
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,EAmB9G,CAAC;AAsBF,eAAO,MAAM,sBAAsB,YACxB,UAAU,eAEN,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}`);
@@ -21,10 +22,13 @@ const generateUiBuilderComponents = (context, componentSchemas, dataSchema) => {
21
22
  };
22
23
  exports.generateUiBuilderComponents = generateUiBuilderComponents;
23
24
  const generateUiBuilderThemes = (context, themeSchemas) => {
25
+ if (themeSchemas.length === 0) {
26
+ return [generateDefaultTheme(context)];
27
+ }
24
28
  const themeResults = themeSchemas.map(schema => {
25
29
  try {
26
30
  const theme = (0, codegenResources_1.createUiBuilderTheme)(context, schema);
27
- return { resultType: 'SUCCESS', theme };
31
+ return { resultType: 'SUCCESS', schema: theme };
28
32
  }
29
33
  catch (e) {
30
34
  amplify_prompts_1.printer.debug(`Failure caught processing ${schema.name}`);
@@ -36,4 +40,48 @@ const generateUiBuilderThemes = (context, themeSchemas) => {
36
40
  return themeResults;
37
41
  };
38
42
  exports.generateUiBuilderThemes = generateUiBuilderThemes;
43
+ const generateDefaultTheme = (context) => {
44
+ try {
45
+ const theme = (0, codegenResources_1.createUiBuilderTheme)(context, { name: 'studioTheme', values: [] }, { renderDefaultTheme: true });
46
+ amplify_prompts_1.printer.debug(`Generated default theme in ${(0, getUiBuilderComponentsPath_1.getUiBuilderComponentsPath)(context)}`);
47
+ return { resultType: 'SUCCESS', schema: theme };
48
+ }
49
+ catch (e) {
50
+ amplify_prompts_1.printer.debug(`Failure caught rendering default theme`);
51
+ amplify_prompts_1.printer.debug(e);
52
+ return { resultType: 'FAILURE', schemaName: 'studioTheme', error: e };
53
+ }
54
+ };
55
+ const generateUiBuilderForms = (context, formSchemas, dataSchema, autoGenerateForms) => {
56
+ const modelMap = {};
57
+ if ((dataSchema === null || dataSchema === void 0 ? void 0 : dataSchema.dataSourceType) === 'DataStore' && autoGenerateForms) {
58
+ Object.entries(dataSchema.models).forEach(([name, model]) => {
59
+ if ((0, codegen_ui_1.checkIsSupportedAsForm)(model) && !model.isJoinTable) {
60
+ modelMap[name] = new Set(['create', 'update']);
61
+ }
62
+ });
63
+ }
64
+ const codegenForm = (schema) => {
65
+ try {
66
+ const form = (0, codegenResources_1.createUiBuilderForm)(context, schema, dataSchema);
67
+ return { resultType: 'SUCCESS', schema: form };
68
+ }
69
+ catch (e) {
70
+ amplify_prompts_1.printer.debug(`Failure caught processing ${schema.name}`);
71
+ amplify_prompts_1.printer.debug(e);
72
+ return { resultType: 'FAILURE', schemaName: schema.name, error: e };
73
+ }
74
+ };
75
+ const formResults = formSchemas.map((schema) => {
76
+ var _a, _b;
77
+ if ((schema === null || schema === void 0 ? void 0 : schema.dataType) && ((_a = schema.dataType) === null || _a === void 0 ? void 0 : _a.dataSourceType) === 'DataStore') {
78
+ (_b = modelMap[schema.dataType.dataTypeName]) === null || _b === void 0 ? void 0 : _b.delete(schema.formActionType);
79
+ }
80
+ return codegenForm(schema);
81
+ });
82
+ formResults.push(...(0, codegenResources_1.generateBaseForms)(modelMap).map(codegenForm));
83
+ amplify_prompts_1.printer.debug(`Generated ${formResults.filter(result => result.resultType === 'SUCCESS').length} forms in ${(0, getUiBuilderComponentsPath_1.getUiBuilderComponentsPath)(context)}`);
84
+ return formResults;
85
+ };
86
+ exports.generateUiBuilderForms = generateUiBuilderForms;
39
87
  //# sourceMappingURL=syncAmplifyUiBuilderComponents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncAmplifyUiBuilderComponents.js","sourceRoot":"","sources":["../../../src/commands/utils/syncAmplifyUiBuilderComponents.ts"],"names":[],"mappings":";;;AAAA,qDAA0C;AAK1C,yDAAoF;AACpF,6EAA0E;AAMnE,MAAM,2BAA2B,GAAG,CAAC,OAAmB,EAAE,gBAAuB,EAAE,UAA8B,EAUnH,EAAE;IACL,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACrD,IAAI;YACF,MAAM,SAAS,GAAG,IAAA,2CAAwB,EAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACxE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,yBAAO,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,yBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACrE;IACH,CAAC,CAAC,CAAC;IAEH,yBAAO,CAAC,KAAK,CACX,aAAa,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,kBAAkB,IAAA,uDAA0B,EAChI,OAAO,CACR,EAAE,CACJ,CAAC;IACF,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AA5BW,QAAA,2BAA2B,+BA4BtC;AAMK,MAAM,uBAAuB,GAAG,CAAC,OAAmB,EAAE,YAAmB,EAU3E,EAAE;IACL,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC7C,IAAI;YACF,MAAM,KAAK,GAAG,IAAA,uCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;SACzC;QAAC,OAAO,CAAC,EAAE;YACV,yBAAO,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,yBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACrE;IACH,CAAC,CAAC,CAAC;IAEH,yBAAO,CAAC,KAAK,CACX,aAAa,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM,cAAc,IAAA,uDAA0B,EAAC,OAAO,CAAC,EAAE,CACtI,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA1BW,QAAA,uBAAuB,2BA0BlC"}
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 function run(): Promise<void>;
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":"AAGA,wBAAsB,GAAG,kBAExB"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG,QAAa,QAAQ,IAAI,CAExC,CAAC"}
@@ -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 function run() {
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;AAEjB,KAAK,UAAU,GAAG;IACvB,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;AAFD,kBAEC"}
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,3 +1,3 @@
1
1
  import { $TSContext } from 'amplify-cli-core';
2
- export declare function run(context: $TSContext): Promise<void>;
2
+ export declare const run: (context: $TSContext) => Promise<void>;
3
3
  //# sourceMappingURL=handle-PostEnvAdd.d.ts.map
@@ -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;AAG9C,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,iBAU5C"}
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
- async function run(context) {
5
+ const cloneComponentsFromEnv_1 = require("../commands/cloneComponentsFromEnv");
6
+ const run = async (context) => {
6
7
  try {
7
- await context.amplify.invokePluginMethod(context, 'ui-builder', undefined, 'executeAmplifyCommand', [
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;AAEnC,KAAK,UAAU,GAAG,CAAC,OAAmB;IAC3C,IAAI;QACF,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE;YAClG,OAAO;YACP,wBAAwB;SACzB,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QAEV,yBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;AACH,CAAC;AAVD,kBAUC"}
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,3 +1,3 @@
1
1
  import { $TSContext } from 'amplify-cli-core';
2
- export declare function run(context: $TSContext): Promise<void>;
2
+ export declare const run: (context: $TSContext) => Promise<void>;
3
3
  //# sourceMappingURL=handle-PostPull.d.ts.map
@@ -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;AAG9C,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,iBAO5C"}
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
- async function run(context) {
5
+ const generateComponents_1 = require("../commands/generateComponents");
6
+ const run = async (context) => {
6
7
  try {
7
- await context.amplify.invokePluginMethod(context, 'ui-builder', undefined, 'executeAmplifyCommand', [context, 'generateComponents']);
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;AAEnC,KAAK,UAAU,GAAG,CAAC,OAAmB;IAC3C,IAAI;QACF,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;KACtI;IAAC,OAAO,CAAC,EAAE;QAEV,yBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;AACH,CAAC;AAPD,kBAOC"}
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,3 @@
1
+ import { $TSContext } from 'amplify-cli-core';
2
+ export declare const run: (context: $TSContext) => Promise<void>;
3
+ //# sourceMappingURL=handle-PostPush.d.ts.map
@@ -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.5.0",
3
+ "version": "1.6.0-beta.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": "^2.4.2",
17
- "@aws-amplify/codegen-ui-react": "^2.4.2",
18
- "amplify-cli-core": "3.2.2",
19
- "amplify-prompts": "2.6.0",
20
- "aws-sdk": "^2.1113.0",
16
+ "@aws-amplify/codegen-ui": "2.5.4",
17
+ "@aws-amplify/codegen-ui-react": "2.5.4",
18
+ "amplify-cli-core": "4.0.0-beta.1",
19
+ "amplify-prompts": "2.6.2-beta.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": "c4f1e5f3b3dc4e92ccc4561610fa00beac7b3a1f"
71
+ "gitHead": "a47f2f0edf3dda87714adfe4a768b371080da1e1"
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(() => ({ entity: {} }));
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().mockImplementation(() => ({
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(() => ({ promise: () => mockedComponentCreate() })),
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 () => {
@@ -1,13 +1,15 @@
1
+ /* eslint-disable spellcheck/spell-checker */
1
2
  import * as codegen from '@aws-amplify/codegen-ui'; // eslint-disable-line import/no-extraneous-dependencies
2
3
  import {
3
4
  generateAmplifyUiBuilderIndexFile,
4
5
  createUiBuilderTheme,
5
6
  createUiBuilderComponent,
7
+ createUiBuilderForm,
8
+ generateAmplifyUiBuilderUtilFile,
6
9
  } from '../commands/utils/codegenResources';
7
10
 
8
11
  jest.mock('@aws-amplify/codegen-ui');
9
12
  const codegenMock = codegen as any;
10
- const renderSchemaToTemplateMock = jest.fn();
11
13
 
12
14
  describe('can create a ui builder component', () => {
13
15
  let context: any;
@@ -42,9 +44,10 @@ describe('can create a ui builder component', () => {
42
44
  properties: {},
43
45
  variants: [],
44
46
  };
45
- codegenMock.StudioTemplateRendererManager = jest.fn().mockImplementation(() => ({
47
+ const renderSchemaToTemplateMock = jest.fn();
48
+ codegenMock.StudioTemplateRendererManager = jest.fn().mockReturnValue({
46
49
  renderSchemaToTemplate: renderSchemaToTemplateMock,
47
- }));
50
+ });
48
51
  });
49
52
  it('calls the renderManager', () => {
50
53
  createUiBuilderComponent(context, schema);
@@ -54,8 +57,28 @@ describe('can create a ui builder component', () => {
54
57
  createUiBuilderTheme(context, schema);
55
58
  expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
56
59
  });
60
+ it('calls the renderManager for default theme', () => {
61
+ createUiBuilderTheme(context, schema, { renderDefaultTheme: true });
62
+ expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
63
+ });
64
+ it('calls the renderManager for forms', () => {
65
+ createUiBuilderForm(context, schema);
66
+ expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
67
+ });
57
68
  it('calls the renderManager for index file', () => {
58
69
  generateAmplifyUiBuilderIndexFile(context, [schema]);
59
70
  expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalled();
60
71
  });
72
+ it('calls the renderManager for utils file w/ validation, formatter, and fetchByPath helpers if there is a form', () => {
73
+ generateAmplifyUiBuilderUtilFile(context, { hasForms: true, hasViews: false });
74
+ expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledWith(expect.arrayContaining(['validation', 'formatter', 'fetchByPath']));
75
+ });
76
+ it('calls the renderManager for utils file w/ formatter helper if there is a view', () => {
77
+ generateAmplifyUiBuilderUtilFile(context, { hasForms: false, hasViews: true });
78
+ expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledWith(['formatter']);
79
+ });
80
+ it('should not call the renderManager for utils file if there is neither form nor views', () => {
81
+ generateAmplifyUiBuilderUtilFile(context, { hasForms: false, hasViews: false });
82
+ expect(new codegenMock.StudioTemplateRendererManager().renderSchemaToTemplate).toBeCalledTimes(0);
83
+ });
61
84
  });