@sap-ux/fe-fpm-writer 0.44.3 → 1.0.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/dist/action/index.d.ts +1 -1
- package/dist/action/index.js +23 -27
- package/dist/action/types.d.ts +1 -1
- package/dist/action/types.js +2 -5
- package/dist/action-menu/index.d.ts +1 -1
- package/dist/action-menu/index.js +19 -22
- package/dist/action-menu/types.d.ts +1 -1
- package/dist/action-menu/types.js +2 -5
- package/dist/app/index.js +20 -24
- package/dist/building-block/index.d.ts +2 -2
- package/dist/building-block/index.js +68 -109
- package/dist/building-block/processor.d.ts +2 -2
- package/dist/building-block/processor.js +53 -90
- package/dist/building-block/prompts/questions/building-blocks.d.ts +1 -1
- package/dist/building-block/prompts/questions/building-blocks.js +9 -14
- package/dist/building-block/prompts/questions/chart.d.ts +2 -2
- package/dist/building-block/prompts/questions/chart.js +17 -20
- package/dist/building-block/prompts/questions/filter-bar.d.ts +2 -2
- package/dist/building-block/prompts/questions/filter-bar.js +16 -19
- package/dist/building-block/prompts/questions/form.d.ts +2 -2
- package/dist/building-block/prompts/questions/form.js +18 -21
- package/dist/building-block/prompts/questions/index.d.ts +8 -8
- package/dist/building-block/prompts/questions/index.js +8 -24
- package/dist/building-block/prompts/questions/page.d.ts +2 -2
- package/dist/building-block/prompts/questions/page.js +12 -15
- package/dist/building-block/prompts/questions/richTextEditor.d.ts +2 -2
- package/dist/building-block/prompts/questions/richTextEditor.js +15 -18
- package/dist/building-block/prompts/questions/richTextEditorButtonGroups.d.ts +2 -2
- package/dist/building-block/prompts/questions/richTextEditorButtonGroups.js +10 -13
- package/dist/building-block/prompts/questions/table.d.ts +2 -2
- package/dist/building-block/prompts/questions/table.js +26 -29
- package/dist/building-block/prompts/utils/index.d.ts +4 -4
- package/dist/building-block/prompts/utils/index.js +4 -20
- package/dist/building-block/prompts/utils/project.js +1 -4
- package/dist/building-block/prompts/utils/prompt-helpers.d.ts +3 -3
- package/dist/building-block/prompts/utils/prompt-helpers.js +25 -33
- package/dist/building-block/prompts/utils/questions.d.ts +1 -1
- package/dist/building-block/prompts/utils/questions.js +36 -50
- package/dist/building-block/prompts/utils/service.d.ts +1 -1
- package/dist/building-block/prompts/utils/service.js +12 -20
- package/dist/building-block/prompts/utils/xml.js +11 -52
- package/dist/building-block/types.d.ts +2 -2
- package/dist/building-block/types.js +4 -7
- package/dist/column/index.d.ts +1 -1
- package/dist/column/index.js +31 -35
- package/dist/column/types.d.ts +1 -1
- package/dist/column/types.js +4 -7
- package/dist/common/defaults.d.ts +2 -2
- package/dist/common/defaults.js +6 -12
- package/dist/common/event-handler.d.ts +1 -1
- package/dist/common/event-handler.js +12 -16
- package/dist/common/file.d.ts +1 -1
- package/dist/common/file.js +20 -29
- package/dist/common/types.js +2 -5
- package/dist/common/utils.d.ts +1 -1
- package/dist/common/utils.js +19 -30
- package/dist/common/validate.d.ts +1 -1
- package/dist/common/validate.js +12 -18
- package/dist/controller-extension/index.d.ts +1 -1
- package/dist/controller-extension/index.js +28 -32
- package/dist/controller-extension/types.d.ts +1 -1
- package/dist/controller-extension/types.js +2 -5
- package/dist/field/index.d.ts +1 -1
- package/dist/field/index.js +24 -27
- package/dist/field/types.d.ts +1 -1
- package/dist/field/types.js +1 -2
- package/dist/filter/index.d.ts +1 -1
- package/dist/filter/index.js +22 -25
- package/dist/filter/types.d.ts +2 -2
- package/dist/filter/types.js +1 -2
- package/dist/i18n.js +11 -19
- package/dist/index.d.ts +33 -26
- package/dist/index.js +20 -52
- package/dist/page/common.d.ts +3 -3
- package/dist/page/common.js +37 -49
- package/dist/page/custom.d.ts +1 -1
- package/dist/page/custom.js +52 -57
- package/dist/page/index.d.ts +5 -5
- package/dist/page/index.js +5 -11
- package/dist/page/list.d.ts +1 -1
- package/dist/page/list.js +9 -12
- package/dist/page/object.d.ts +1 -1
- package/dist/page/object.js +9 -12
- package/dist/page/types.d.ts +1 -1
- package/dist/page/types.js +2 -5
- package/dist/prompts/api.d.ts +2 -2
- package/dist/prompts/api.js +20 -24
- package/dist/prompts/index.d.ts +3 -3
- package/dist/prompts/index.js +2 -18
- package/dist/prompts/map.d.ts +4 -4
- package/dist/prompts/map.js +28 -31
- package/dist/prompts/translations/i18n.js +1 -3
- package/dist/prompts/types.js +4 -7
- package/dist/prompts/utils.js +1 -4
- package/dist/section/index.d.ts +1 -1
- package/dist/section/index.js +43 -49
- package/dist/section/types.d.ts +1 -1
- package/dist/section/types.js +4 -7
- package/dist/templates.js +5 -6
- package/dist/view/index.d.ts +1 -1
- package/dist/view/index.js +24 -27
- package/dist/view/types.d.ts +1 -1
- package/dist/view/types.js +1 -2
- package/package.json +9 -7
package/dist/action/index.d.ts
CHANGED
|
@@ -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
|
*
|
package/dist/action/index.js
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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 ===
|
|
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 ===
|
|
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
|
-
|
|
85
|
+
export async function generateCustomAction(basePath, actionConfig, fs) {
|
|
86
|
+
validateVersion(actionConfig.minUI5Version);
|
|
91
87
|
if (!fs) {
|
|
92
|
-
fs =
|
|
88
|
+
fs = create(createStorage());
|
|
93
89
|
}
|
|
94
|
-
await
|
|
95
|
-
const { path: manifestPath, content: manifest } = await
|
|
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 =
|
|
95
|
+
config.eventHandler = applyEventHandlerConfiguration(fs, config, config.eventHandler, {
|
|
100
96
|
controllerSuffix: false,
|
|
101
97
|
typescript: config.typescript
|
|
102
|
-
}, [
|
|
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(
|
|
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,
|
|
107
|
+
fs.writeJSON(manifestPath, manifest, undefined, getJsonSpace(fs, manifestPath, actionConfig.tabInfo));
|
|
112
108
|
return fs;
|
|
113
109
|
}
|
|
114
110
|
//# sourceMappingURL=index.js.map
|
package/dist/action/types.d.ts
CHANGED
|
@@ -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",
|
package/dist/action/types.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
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 || (
|
|
8
|
+
})(TargetControl || (TargetControl = {}));
|
|
12
9
|
//# sourceMappingURL=types.js.map
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
18
|
+
export async function generateActionMenu(basePath, actionMenuConfig, fs) {
|
|
19
|
+
validateVersion(actionMenuConfig.minUI5Version);
|
|
23
20
|
if (!fs) {
|
|
24
|
-
fs =
|
|
21
|
+
fs = create(createStorage());
|
|
25
22
|
}
|
|
26
|
-
await
|
|
27
|
-
const { path: manifestPath, content: manifest } = await
|
|
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 =
|
|
37
|
-
Object.assign(actionsContainer, JSON.parse(
|
|
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,
|
|
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 ===
|
|
62
|
+
if (target.control === TargetControl.header) {
|
|
66
63
|
return page.options.settings.content[target.control].actions;
|
|
67
64
|
}
|
|
68
|
-
else if (target.control ===
|
|
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,11 +1,8 @@
|
|
|
1
|
-
|
|
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 || (
|
|
7
|
+
})(TargetControl || (TargetControl = {}));
|
|
11
8
|
//# sourceMappingURL=types.js.map
|
package/dist/app/index.js
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
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 =
|
|
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 &&
|
|
29
|
-
minUI5VersionArray[index] =
|
|
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 =
|
|
61
|
+
fs = create(createStorage());
|
|
66
62
|
}
|
|
67
|
-
const { path: manifestPath, content: manifest } = await
|
|
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
|
-
|
|
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:
|
|
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 =
|
|
108
|
-
|
|
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
|
*
|