@sap-ux/fe-fpm-writer 0.44.3 → 1.0.0

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 (104) hide show
  1. package/dist/action/index.d.ts +1 -1
  2. package/dist/action/index.js +23 -27
  3. package/dist/action/types.d.ts +1 -1
  4. package/dist/action/types.js +2 -5
  5. package/dist/action-menu/index.d.ts +1 -1
  6. package/dist/action-menu/index.js +19 -22
  7. package/dist/action-menu/types.d.ts +1 -1
  8. package/dist/action-menu/types.js +2 -5
  9. package/dist/app/index.js +20 -24
  10. package/dist/building-block/index.d.ts +2 -2
  11. package/dist/building-block/index.js +68 -109
  12. package/dist/building-block/processor.d.ts +2 -2
  13. package/dist/building-block/processor.js +53 -90
  14. package/dist/building-block/prompts/questions/building-blocks.d.ts +1 -1
  15. package/dist/building-block/prompts/questions/building-blocks.js +9 -14
  16. package/dist/building-block/prompts/questions/chart.d.ts +2 -2
  17. package/dist/building-block/prompts/questions/chart.js +17 -20
  18. package/dist/building-block/prompts/questions/filter-bar.d.ts +2 -2
  19. package/dist/building-block/prompts/questions/filter-bar.js +16 -19
  20. package/dist/building-block/prompts/questions/form.d.ts +2 -2
  21. package/dist/building-block/prompts/questions/form.js +18 -21
  22. package/dist/building-block/prompts/questions/index.d.ts +8 -8
  23. package/dist/building-block/prompts/questions/index.js +8 -24
  24. package/dist/building-block/prompts/questions/page.d.ts +2 -2
  25. package/dist/building-block/prompts/questions/page.js +12 -15
  26. package/dist/building-block/prompts/questions/richTextEditor.d.ts +2 -2
  27. package/dist/building-block/prompts/questions/richTextEditor.js +15 -18
  28. package/dist/building-block/prompts/questions/richTextEditorButtonGroups.d.ts +2 -2
  29. package/dist/building-block/prompts/questions/richTextEditorButtonGroups.js +10 -13
  30. package/dist/building-block/prompts/questions/table.d.ts +2 -2
  31. package/dist/building-block/prompts/questions/table.js +26 -29
  32. package/dist/building-block/prompts/utils/index.d.ts +4 -4
  33. package/dist/building-block/prompts/utils/index.js +4 -20
  34. package/dist/building-block/prompts/utils/project.js +1 -4
  35. package/dist/building-block/prompts/utils/prompt-helpers.d.ts +3 -3
  36. package/dist/building-block/prompts/utils/prompt-helpers.js +25 -33
  37. package/dist/building-block/prompts/utils/questions.d.ts +1 -1
  38. package/dist/building-block/prompts/utils/questions.js +36 -50
  39. package/dist/building-block/prompts/utils/service.d.ts +1 -1
  40. package/dist/building-block/prompts/utils/service.js +12 -20
  41. package/dist/building-block/prompts/utils/xml.js +11 -52
  42. package/dist/building-block/types.d.ts +2 -2
  43. package/dist/building-block/types.js +4 -7
  44. package/dist/column/index.d.ts +1 -1
  45. package/dist/column/index.js +31 -35
  46. package/dist/column/types.d.ts +1 -1
  47. package/dist/column/types.js +4 -7
  48. package/dist/common/defaults.d.ts +2 -2
  49. package/dist/common/defaults.js +6 -12
  50. package/dist/common/event-handler.d.ts +1 -1
  51. package/dist/common/event-handler.js +12 -16
  52. package/dist/common/file.d.ts +1 -1
  53. package/dist/common/file.js +20 -29
  54. package/dist/common/types.js +2 -5
  55. package/dist/common/utils.d.ts +1 -1
  56. package/dist/common/utils.js +19 -30
  57. package/dist/common/validate.d.ts +1 -1
  58. package/dist/common/validate.js +12 -18
  59. package/dist/controller-extension/index.d.ts +1 -1
  60. package/dist/controller-extension/index.js +28 -32
  61. package/dist/controller-extension/types.d.ts +1 -1
  62. package/dist/controller-extension/types.js +2 -5
  63. package/dist/field/index.d.ts +1 -1
  64. package/dist/field/index.js +24 -27
  65. package/dist/field/types.d.ts +1 -1
  66. package/dist/field/types.js +1 -2
  67. package/dist/filter/index.d.ts +1 -1
  68. package/dist/filter/index.js +22 -25
  69. package/dist/filter/types.d.ts +2 -2
  70. package/dist/filter/types.js +1 -2
  71. package/dist/i18n.js +11 -19
  72. package/dist/index.d.ts +33 -26
  73. package/dist/index.js +20 -52
  74. package/dist/page/common.d.ts +3 -3
  75. package/dist/page/common.js +37 -49
  76. package/dist/page/custom.d.ts +1 -1
  77. package/dist/page/custom.js +52 -57
  78. package/dist/page/index.d.ts +5 -5
  79. package/dist/page/index.js +5 -11
  80. package/dist/page/list.d.ts +1 -1
  81. package/dist/page/list.js +9 -12
  82. package/dist/page/object.d.ts +1 -1
  83. package/dist/page/object.js +9 -12
  84. package/dist/page/types.d.ts +1 -1
  85. package/dist/page/types.js +2 -5
  86. package/dist/prompts/api.d.ts +2 -2
  87. package/dist/prompts/api.js +20 -24
  88. package/dist/prompts/index.d.ts +3 -3
  89. package/dist/prompts/index.js +2 -18
  90. package/dist/prompts/map.d.ts +4 -4
  91. package/dist/prompts/map.js +28 -31
  92. package/dist/prompts/translations/i18n.js +1 -3
  93. package/dist/prompts/types.js +4 -7
  94. package/dist/prompts/utils.js +1 -4
  95. package/dist/section/index.d.ts +1 -1
  96. package/dist/section/index.js +43 -49
  97. package/dist/section/types.d.ts +1 -1
  98. package/dist/section/types.js +4 -7
  99. package/dist/templates.js +5 -6
  100. package/dist/view/index.d.ts +1 -1
  101. package/dist/view/index.js +24 -27
  102. package/dist/view/types.d.ts +1 -1
  103. package/dist/view/types.js +1 -2
  104. package/package.json +9 -7
@@ -1,5 +1,5 @@
1
1
  import type { Editor } from 'mem-fs-editor';
2
- import type { CustomAction, CustomActionTarget } from './types';
2
+ import type { CustomAction, CustomActionTarget } from './types.js';
3
3
  /**
4
4
  * Enhance the target object in the manifest with the required nested objects and return a reference to it.
5
5
  *
@@ -1,17 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enhanceManifestAndGetActionsElementReference = enhanceManifestAndGetActionsElementReference;
4
- exports.generateCustomAction = generateCustomAction;
5
- const mem_fs_1 = require("mem-fs");
6
- const mem_fs_editor_1 = require("mem-fs-editor");
7
- const types_1 = require("./types");
8
- const ejs_1 = require("ejs");
9
- const validate_1 = require("../common/validate");
10
- const defaults_1 = require("../common/defaults");
11
- const event_handler_1 = require("../common/event-handler");
12
- const templates_1 = require("../templates");
13
- const file_1 = require("../common/file");
14
- const utils_1 = require("../common/utils");
1
+ import { create as createStorage } from 'mem-fs';
2
+ import { create } from 'mem-fs-editor';
3
+ import { TargetControl } from './types.js';
4
+ import { render } from 'ejs';
5
+ import { validateVersion, validateBasePath } from '../common/validate.js';
6
+ import { setCommonDefaults } from '../common/defaults.js';
7
+ import { applyEventHandlerConfiguration, contextParameter, selectedContextsParameter } from '../common/event-handler.js';
8
+ import { getTemplatePath } from '../templates.js';
9
+ import { getJsonSpace } from '../common/file.js';
10
+ import { getManifest } from '../common/utils.js';
15
11
  /**
16
12
  * Enhances the provided custom action configuration with default data.
17
13
  *
@@ -27,7 +23,7 @@ function enhanceConfig(data, manifestPath, manifest) {
27
23
  target: { ...data.target },
28
24
  settings: { ...data.settings }
29
25
  };
30
- (0, defaults_1.setCommonDefaults)(config, manifestPath, manifest);
26
+ setCommonDefaults(config, manifestPath, manifest);
31
27
  // set default values for visibility and enabled
32
28
  config.settings.enabled = config.settings.enabled || true;
33
29
  config.settings.visible = config.settings.visible || true;
@@ -40,18 +36,18 @@ function enhanceConfig(data, manifestPath, manifest) {
40
36
  * @param {CustomActionTarget} target - target element
41
37
  * @returns Actions object of the given target element.
42
38
  */
43
- function enhanceManifestAndGetActionsElementReference(manifest, target) {
39
+ export function enhanceManifestAndGetActionsElementReference(manifest, target) {
44
40
  const page = manifest['sap.ui5'].routing.targets[target.page];
45
41
  page.options = page.options || {};
46
42
  page.options.settings = page.options.settings || {};
47
- if (target.control === types_1.TargetControl.header || target.control === types_1.TargetControl.footer) {
43
+ if (target.control === TargetControl.header || target.control === TargetControl.footer) {
48
44
  page.options.settings.content = page.options.settings.content || {};
49
45
  page.options.settings.content[target.control] = page.options.settings.content[target.control] || {};
50
46
  page.options.settings.content[target.control].actions =
51
47
  page.options.settings.content[target.control].actions || {};
52
48
  return page.options.settings.content[target.control].actions;
53
49
  }
54
- else if (target.control === types_1.TargetControl.body && target.customSectionKey) {
50
+ else if (target.control === TargetControl.body && target.customSectionKey) {
55
51
  // condition for custom section actions
56
52
  // Custom actions for custom sections are defined similarly like for header/footer under content property
57
53
  // In: 'options/settings/content/body/sections/<customSection>/actions'
@@ -86,29 +82,29 @@ function enhanceManifestAndGetActionsElementReference(manifest, target) {
86
82
  * @param {Editor} [fs] - the memfs editor instance
87
83
  * @returns {Promise<Editor>} the updated memfs editor instance
88
84
  */
89
- async function generateCustomAction(basePath, actionConfig, fs) {
90
- (0, validate_1.validateVersion)(actionConfig.minUI5Version);
85
+ export async function generateCustomAction(basePath, actionConfig, fs) {
86
+ validateVersion(actionConfig.minUI5Version);
91
87
  if (!fs) {
92
- fs = (0, mem_fs_editor_1.create)((0, mem_fs_1.create)());
88
+ fs = create(createStorage());
93
89
  }
94
- await (0, validate_1.validateBasePath)(basePath, fs);
95
- const { path: manifestPath, content: manifest } = await (0, utils_1.getManifest)(basePath, fs);
90
+ await validateBasePath(basePath, fs);
91
+ const { path: manifestPath, content: manifest } = await getManifest(basePath, fs);
96
92
  const config = enhanceConfig(actionConfig, manifestPath, manifest);
97
93
  // Apply event handler
98
94
  if (config.eventHandler) {
99
- config.eventHandler = (0, event_handler_1.applyEventHandlerConfiguration)(fs, config, config.eventHandler, {
95
+ config.eventHandler = applyEventHandlerConfiguration(fs, config, config.eventHandler, {
100
96
  controllerSuffix: false,
101
97
  typescript: config.typescript
102
- }, [event_handler_1.contextParameter, event_handler_1.selectedContextsParameter]);
98
+ }, [contextParameter, selectedContextsParameter]);
103
99
  }
104
100
  // enhance manifest with action definition and controller reference
105
101
  const actions = enhanceManifestAndGetActionsElementReference(manifest, config.target);
106
- Object.assign(actions, JSON.parse((0, ejs_1.render)(fs.read((0, templates_1.getTemplatePath)(`action/manifest.action.json`)), config, {})));
102
+ Object.assign(actions, JSON.parse(render(fs.read(getTemplatePath(`action/manifest.action.json`)), config, {})));
107
103
  if (config.target.menuId) {
108
104
  // The action should be part of the menu
109
105
  actions[config.target.menuId].menu.push(config.name);
110
106
  }
111
- fs.writeJSON(manifestPath, manifest, undefined, (0, file_1.getJsonSpace)(fs, manifestPath, actionConfig.tabInfo));
107
+ fs.writeJSON(manifestPath, manifest, undefined, getJsonSpace(fs, manifestPath, actionConfig.tabInfo));
112
108
  return fs;
113
109
  }
114
110
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import type { CustomElement, InternalCustomElement, Position, EventHandler } from '../common/types';
1
+ import type { CustomElement, InternalCustomElement, Position, EventHandler } from '../common/types.js';
2
2
  export declare enum TargetControl {
3
3
  header = "header",
4
4
  body = "body",
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TargetControl = void 0;
4
- var TargetControl;
1
+ export var TargetControl;
5
2
  (function (TargetControl) {
6
3
  TargetControl["header"] = "header";
7
4
  TargetControl["body"] = "body";
8
5
  TargetControl["footer"] = "footer";
9
6
  TargetControl["section"] = "@com.sap.vocabularies.UI.v1.FieldGroup";
10
7
  TargetControl["table"] = "@com.sap.vocabularies.UI.v1.LineItem";
11
- })(TargetControl || (exports.TargetControl = TargetControl = {}));
8
+ })(TargetControl || (TargetControl = {}));
12
9
  //# sourceMappingURL=types.js.map
@@ -1,5 +1,5 @@
1
1
  import type { Editor } from 'mem-fs-editor';
2
- import { type ActionMenu } from './types';
2
+ import { type ActionMenu } from './types.js';
3
3
  /**
4
4
  * Add a custom page to an existing UI5 application.
5
5
  *
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateActionMenu = generateActionMenu;
4
- const mem_fs_1 = require("mem-fs");
5
- const mem_fs_editor_1 = require("mem-fs-editor");
6
- const ejs_1 = require("ejs");
7
- const validate_1 = require("../common/validate");
8
- const templates_1 = require("../templates");
9
- const file_1 = require("../common/file");
10
- const utils_1 = require("../common/utils");
11
- const action_1 = require("../action");
12
- const types_1 = require("./types");
1
+ import { create as createStorage } from 'mem-fs';
2
+ import { create } from 'mem-fs-editor';
3
+ import { render } from 'ejs';
4
+ import { validateVersion, validateBasePath } from '../common/validate.js';
5
+ import { getTemplatePath } from '../templates.js';
6
+ import { getJsonSpace } from '../common/file.js';
7
+ import { getManifest } from '../common/utils.js';
8
+ import { enhanceManifestAndGetActionsElementReference } from '../action/index.js';
9
+ import { TargetControl } from './types.js';
13
10
  /**
14
11
  * Add a custom page to an existing UI5 application.
15
12
  *
@@ -18,13 +15,13 @@ const types_1 = require("./types");
18
15
  * @param {Editor} [fs] - the memfs editor instance
19
16
  * @returns {Promise<Editor>} the updated memfs editor instance
20
17
  */
21
- async function generateActionMenu(basePath, actionMenuConfig, fs) {
22
- (0, validate_1.validateVersion)(actionMenuConfig.minUI5Version);
18
+ export async function generateActionMenu(basePath, actionMenuConfig, fs) {
19
+ validateVersion(actionMenuConfig.minUI5Version);
23
20
  if (!fs) {
24
- fs = (0, mem_fs_editor_1.create)((0, mem_fs_1.create)());
21
+ fs = create(createStorage());
25
22
  }
26
- await (0, validate_1.validateBasePath)(basePath, fs);
27
- const { path: manifestPath, content: manifest } = await (0, utils_1.getManifest)(basePath, fs);
23
+ await validateBasePath(basePath, fs);
24
+ const { path: manifestPath, content: manifest } = await getManifest(basePath, fs);
28
25
  if (actionMenuConfig.target.menuId) {
29
26
  // add new action to existing menu
30
27
  const actionsContainer = getExistingMenuItemsContainer(manifest, actionMenuConfig.target);
@@ -33,8 +30,8 @@ async function generateActionMenu(basePath, actionMenuConfig, fs) {
33
30
  }
34
31
  else {
35
32
  // enhance manifest with action menu definition
36
- const actionsContainer = (0, action_1.enhanceManifestAndGetActionsElementReference)(manifest, actionMenuConfig.target);
37
- Object.assign(actionsContainer, JSON.parse((0, ejs_1.render)(fs.read((0, templates_1.getTemplatePath)(`action/manifest.action-menu.json`)), actionMenuConfig, {})));
33
+ const actionsContainer = enhanceManifestAndGetActionsElementReference(manifest, actionMenuConfig.target);
34
+ Object.assign(actionsContainer, JSON.parse(render(fs.read(getTemplatePath(`action/manifest.action-menu.json`)), actionMenuConfig, {})));
38
35
  for (const { key, position } of actionMenuConfig.positionUpdates ?? []) {
39
36
  if (['__proto__', 'constructor', 'prototype'].includes(key)) {
40
37
  // Prevent prototype pollution via special property names
@@ -50,7 +47,7 @@ async function generateActionMenu(basePath, actionMenuConfig, fs) {
50
47
  }
51
48
  }
52
49
  }
53
- fs.writeJSON(manifestPath, manifest, undefined, (0, file_1.getJsonSpace)(fs, manifestPath, actionMenuConfig.tabInfo));
50
+ fs.writeJSON(manifestPath, manifest, undefined, getJsonSpace(fs, manifestPath, actionMenuConfig.tabInfo));
54
51
  return fs;
55
52
  }
56
53
  /**
@@ -62,10 +59,10 @@ async function generateActionMenu(basePath, actionMenuConfig, fs) {
62
59
  */
63
60
  function getExistingMenuItemsContainer(manifest, target) {
64
61
  const page = manifest['sap.ui5'].routing.targets[target.page];
65
- if (target.control === types_1.TargetControl.header) {
62
+ if (target.control === TargetControl.header) {
66
63
  return page.options.settings.content[target.control].actions;
67
64
  }
68
- else if (target.control === types_1.TargetControl.body && target.customSectionKey) {
65
+ else if (target.control === TargetControl.body && target.customSectionKey) {
69
66
  return page.options.settings.content[target.control].sections[target.customSectionKey].actions;
70
67
  }
71
68
  else {
@@ -1,4 +1,4 @@
1
- import type { CustomElement, Position } from '../common/types';
1
+ import type { CustomElement, Position } from '../common/types.js';
2
2
  export declare enum TargetControl {
3
3
  header = "header",
4
4
  body = "body",
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TargetControl = void 0;
4
- var TargetControl;
1
+ export var TargetControl;
5
2
  (function (TargetControl) {
6
3
  TargetControl["header"] = "header";
7
4
  TargetControl["body"] = "body";
8
5
  TargetControl["section"] = "@com.sap.vocabularies.UI.v1.FieldGroup";
9
6
  TargetControl["table"] = "@com.sap.vocabularies.UI.v1.LineItem";
10
- })(TargetControl || (exports.TargetControl = TargetControl = {}));
7
+ })(TargetControl || (TargetControl = {}));
11
8
  //# sourceMappingURL=types.js.map
package/dist/app/index.js CHANGED
@@ -1,17 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MIN_VERSION = void 0;
4
- exports.enableFPM = enableFPM;
5
- const mem_fs_1 = require("mem-fs");
6
- const mem_fs_editor_1 = require("mem-fs-editor");
7
- const node_path_1 = require("node:path");
8
- const semver_1 = require("semver");
9
- const project_access_1 = require("@sap-ux/project-access");
10
- const defaults_1 = require("../common/defaults");
11
- const templates_1 = require("../templates");
12
- const utils_1 = require("../common/utils");
13
- const file_1 = require("../common/file");
14
- exports.MIN_VERSION = '1.94.0';
1
+ import { create as createStorage } from 'mem-fs';
2
+ import { create } from 'mem-fs-editor';
3
+ import { join } from 'node:path';
4
+ import { lt, valid } from 'semver';
5
+ import { getMinUI5VersionAsArray, getMinimumUI5Version } from '@sap-ux/project-access';
6
+ import { FCL_ROUTER } from '../common/defaults.js';
7
+ import { getTemplatePath } from '../templates.js';
8
+ import { addExtensionTypes, getManifest } from '../common/utils.js';
9
+ import { copyTpl } from '../common/file.js';
10
+ export const MIN_VERSION = '1.94.0';
15
11
  /**
16
12
  * If a minUI5Version is set and it is smaller than the minimum required, increase it.
17
13
  *
@@ -20,13 +16,13 @@ exports.MIN_VERSION = '1.94.0';
20
16
  * @param {string} manifestPath - path to the manifest.json file
21
17
  */
22
18
  function adaptMinUI5Version(manifest, fs, manifestPath) {
23
- const minUI5VersionArray = (0, project_access_1.getMinUI5VersionAsArray)(manifest, true);
19
+ const minUI5VersionArray = getMinUI5VersionAsArray(manifest, true);
24
20
  if (minUI5VersionArray?.length > 0) {
25
21
  let update = false;
26
22
  for (let index = 0; index < minUI5VersionArray.length; index++) {
27
23
  const minUI5Version = minUI5VersionArray[index];
28
- if (minUI5Version && (0, semver_1.valid)(minUI5Version) && (0, semver_1.lt)(minUI5Version, exports.MIN_VERSION)) {
29
- minUI5VersionArray[index] = exports.MIN_VERSION;
24
+ if (minUI5Version && valid(minUI5Version) && lt(minUI5Version, MIN_VERSION)) {
25
+ minUI5VersionArray[index] = MIN_VERSION;
30
26
  update = true;
31
27
  }
32
28
  }
@@ -60,11 +56,11 @@ function adaptMinUI5Version(manifest, fs, manifestPath) {
60
56
  * @param {Editor} [fs] - the mem-fs editor instance
61
57
  * @returns {Promise<Editor>} the updated mem-fs editor instance
62
58
  */
63
- async function enableFPM(basePath, config = {}, fs) {
59
+ export async function enableFPM(basePath, config = {}, fs) {
64
60
  if (!fs) {
65
- fs = (0, mem_fs_editor_1.create)((0, mem_fs_1.create)());
61
+ fs = create(createStorage());
66
62
  }
67
- const { path: manifestPath, content: manifest } = await (0, utils_1.getManifest)(basePath, fs);
63
+ const { path: manifestPath, content: manifest } = await getManifest(basePath, fs);
68
64
  // add FE libs is not yet added
69
65
  if (!manifest['sap.ui5']?.dependencies?.libs?.['sap.fe.templates']) {
70
66
  fs.extendJSON(manifestPath, {
@@ -81,7 +77,7 @@ async function enableFPM(basePath, config = {}, fs) {
81
77
  adaptMinUI5Version(manifest, fs, manifestPath);
82
78
  // add type extensions if required
83
79
  if (config.typescript) {
84
- (0, utils_1.addExtensionTypes)(basePath, (0, project_access_1.getMinimumUI5Version)(manifest), fs);
80
+ addExtensionTypes(basePath, getMinimumUI5Version(manifest), fs);
85
81
  }
86
82
  // enable FCL if requested
87
83
  if (config.fcl) {
@@ -95,7 +91,7 @@ async function enableFPM(basePath, config = {}, fs) {
95
91
  },
96
92
  routing: {
97
93
  config: {
98
- routerClass: defaults_1.FCL_ROUTER
94
+ routerClass: FCL_ROUTER
99
95
  }
100
96
  }
101
97
  }
@@ -104,8 +100,8 @@ async function enableFPM(basePath, config = {}, fs) {
104
100
  // replace Component.js
105
101
  if (config.replaceAppComponent) {
106
102
  const ext = config.typescript ? 'ts' : 'js';
107
- const componentTemplate = (0, templates_1.getTemplatePath)(`/app/Component.${ext}`);
108
- (0, file_1.copyTpl)(fs, componentTemplate, (0, node_path_1.join)(basePath, `webapp/Component.${ext}`), manifest['sap.app']);
103
+ const componentTemplate = getTemplatePath(`/app/Component.${ext}`);
104
+ copyTpl(fs, componentTemplate, join(basePath, `webapp/Component.${ext}`), manifest['sap.app']);
109
105
  }
110
106
  return fs;
111
107
  }
@@ -1,6 +1,6 @@
1
1
  import type { Editor } from 'mem-fs-editor';
2
- import { type BuildingBlock, type BuildingBlockConfig } from './types';
3
- import { type CodeSnippet } from '../prompts/types';
2
+ import { type BuildingBlock, type BuildingBlockConfig } from './types.js';
3
+ import { type CodeSnippet } from '../prompts/types.js';
4
4
  /**
5
5
  * Generates a building block into the provided xml view file.
6
6
  *