@sap-ux/flp-config-sub-generator 0.4.13 → 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.
@@ -1,7 +1,7 @@
1
1
  import Generator from 'yeoman-generator';
2
2
  import { promptNames } from '@sap-ux/flp-config-inquirer';
3
3
  import type { FLPConfigPromptOptions } from '@sap-ux/flp-config-inquirer';
4
- import type { FlpConfigOptions } from './types';
4
+ import type { FlpConfigOptions } from './types.js';
5
5
  /**
6
6
  * FLP config generator adds an inbound navigation config to an existing manifest.json.
7
7
  */
@@ -1,30 +1,23 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.promptNames = void 0;
7
- const node_path_1 = require("node:path");
8
- const yeoman_generator_1 = __importDefault(require("yeoman-generator"));
9
- const logger_1 = __importDefault(require("../utils/logger"));
10
- const yeoman_ui_types_1 = require("@sap-devx/yeoman-ui-types");
11
- const deploy_config_generator_shared_1 = require("@sap-ux/deploy-config-generator-shared");
12
- const flp_config_inquirer_1 = require("@sap-ux/flp-config-inquirer");
13
- Object.defineProperty(exports, "promptNames", { enumerable: true, get: function () { return flp_config_inquirer_1.promptNames; } });
14
- const app_config_writer_1 = require("@sap-ux/app-config-writer");
15
- const project_access_1 = require("@sap-ux/project-access");
16
- const i18n_1 = require("@sap-ux/i18n");
17
- const feature_toggle_1 = require("@sap-ux/feature-toggle");
18
- const fiori_generator_shared_1 = require("@sap-ux/fiori-generator-shared");
19
- const inquirer_common_1 = require("@sap-ux/inquirer-common");
20
- const constants_1 = require("../utils/constants");
21
- const utils_1 = require("../utils");
22
- const telemetryEvents_1 = require("../telemetryEvents");
1
+ import { join } from 'node:path';
2
+ import Generator from 'yeoman-generator';
3
+ import FlpGenLogger from '../utils/logger.js';
4
+ import { AppWizard, Prompts, MessageType } from '@sap-devx/yeoman-ui-types';
5
+ import { handleErrorMessage, getExtensionGenPromptOpts } from '@sap-ux/deploy-config-generator-shared';
6
+ import { getPrompts, promptNames } from '@sap-ux/flp-config-inquirer';
7
+ import { generateInboundNavigationConfig } from '@sap-ux/app-config-writer';
8
+ import { FileName, getWebappPath, getI18nPropertiesPaths } from '@sap-ux/project-access';
9
+ import { createPropertiesI18nEntries } from '@sap-ux/i18n';
10
+ import { isInternalFeaturesSettingEnabled } from '@sap-ux/feature-toggle';
11
+ import { sendTelemetry, TelemetryHelper, isExtensionInstalled, YUI_EXTENSION_ID, YUI_MIN_VER_FILES_GENERATED_MSG, setYeomanEnvConflicterForce } from '@sap-ux/fiori-generator-shared';
12
+ import { extendWithOptions } from '@sap-ux/inquirer-common';
13
+ import { generatorTitle, i18nKeySubTitle, i18nKeyTitle } from '../utils/constants.js';
14
+ import { t, getPromptOptions, getYUIDetails } from '../utils/index.js';
15
+ import { EventName } from '../telemetryEvents/index.js';
23
16
  const flpConfigSubGenNamespace = '@sap-ux/flp-config-sub-generator';
24
17
  /**
25
18
  * FLP config generator adds an inbound navigation config to an existing manifest.json.
26
19
  */
27
- class default_1 extends yeoman_generator_1.default {
20
+ export default class extends Generator {
28
21
  appWizard;
29
22
  vscode;
30
23
  launchFlpConfigAsSubGenerator;
@@ -46,17 +39,17 @@ class default_1 extends yeoman_generator_1.default {
46
39
  */
47
40
  constructor(args, opts) {
48
41
  super(args, opts);
49
- this.appWizard = opts.appWizard ?? yeoman_ui_types_1.AppWizard.create(opts);
42
+ this.appWizard = opts.appWizard ?? AppWizard.create(opts);
50
43
  this.vscode = opts.vscode;
51
44
  this.launchFlpConfigAsSubGenerator = opts.launchFlpConfigAsSubGenerator ?? false;
52
45
  this.appRootPath = opts.data?.appRootPath ?? opts?.appRootPath ?? this.destinationRoot();
53
46
  this.promptOptions = this.options?.inquirerPromptOptions;
54
47
  this.options = opts;
55
- logger_1.default.configureLogging(this.rootGeneratorName(), this.log, this.options.logWrapper, this.options.logLevel, this.options.logger, this.vscode);
48
+ FlpGenLogger.configureLogging(this.rootGeneratorName(), this.log, this.options.logWrapper, this.options.logLevel, this.options.logger, this.vscode);
56
49
  // If launched standalone, set the header, title and description
57
50
  if (!this.launchFlpConfigAsSubGenerator) {
58
- this.appWizard.setHeaderTitle(constants_1.generatorTitle);
59
- this.prompts = new yeoman_ui_types_1.Prompts((0, utils_1.getYUIDetails)(this.appRootPath));
51
+ this.appWizard.setHeaderTitle(generatorTitle);
52
+ this.prompts = new Prompts(getYUIDetails(this.appRootPath));
60
53
  this.setPromptsCallback = (fn) => {
61
54
  if (this.prompts) {
62
55
  this.prompts.setCallback(fn);
@@ -66,28 +59,28 @@ class default_1 extends yeoman_generator_1.default {
66
59
  }
67
60
  }
68
61
  async initializing() {
69
- (0, fiori_generator_shared_1.setYeomanEnvConflicterForce)(this.env, this.options.force);
70
- const extensionPromptOpts = await (0, deploy_config_generator_shared_1.getExtensionGenPromptOpts)(this.env.create.bind(this.env), flpConfigSubGenNamespace, this.vscode);
62
+ setYeomanEnvConflicterForce(this.env, this.options.force);
63
+ const extensionPromptOpts = await getExtensionGenPromptOpts(this.env.create.bind(this.env), flpConfigSubGenNamespace, this.vscode);
71
64
  this.promptOptions = {
72
65
  ...extensionPromptOpts,
73
66
  ...this.promptOptions
74
67
  };
75
- await fiori_generator_shared_1.TelemetryHelper.initTelemetrySettings({
68
+ await TelemetryHelper.initTelemetrySettings({
76
69
  consumerModule: {
77
70
  name: flpConfigSubGenNamespace,
78
71
  version: this.rootGeneratorVersion()
79
72
  },
80
- internalFeature: (0, feature_toggle_1.isInternalFeaturesSettingEnabled)(),
73
+ internalFeature: isInternalFeaturesSettingEnabled(),
81
74
  watchTelemetrySettingStore: false
82
75
  });
83
76
  if (this.existingApp) {
84
- this.manifestPath = (0, node_path_1.join)(await (0, project_access_1.getWebappPath)(this.appRootPath), project_access_1.FileName.Manifest);
77
+ this.manifestPath = join(await getWebappPath(this.appRootPath), FileName.Manifest);
85
78
  this.manifest = this.fs.readJSON(this.manifestPath);
86
79
  if (!this.manifest) {
87
- (0, deploy_config_generator_shared_1.handleErrorMessage)(this.appWizard, { errorMsg: (0, utils_1.t)('error.noManifest', { path: this.manifestPath }) });
80
+ handleErrorMessage(this.appWizard, { errorMsg: t('error.noManifest', { path: this.manifestPath }) });
88
81
  }
89
82
  if (!this.manifest['sap.app']) {
90
- (0, deploy_config_generator_shared_1.handleErrorMessage)(this.appWizard, { errorMsg: (0, utils_1.t)('error.sapNotDefined') });
83
+ handleErrorMessage(this.appWizard, { errorMsg: t('error.sapNotDefined') });
91
84
  }
92
85
  }
93
86
  }
@@ -113,12 +106,12 @@ class default_1 extends yeoman_generator_1.default {
113
106
  inbounds = this.manifest?.['sap.app']?.crossNavigation?.inbounds;
114
107
  }
115
108
  const silentOverwrite = this.options.overwrite;
116
- let questions = (await (0, flp_config_inquirer_1.getPrompts)(inbounds, {
109
+ let questions = (await getPrompts(inbounds, {
117
110
  silentOverwrite,
118
- ...(0, utils_1.getPromptOptions)(this.promptOptions)
111
+ ...getPromptOptions(this.promptOptions)
119
112
  }));
120
113
  if (this.promptOptions) {
121
- questions = (0, inquirer_common_1.extendWithOptions)(questions, this.promptOptions);
114
+ questions = extendWithOptions(questions, this.promptOptions);
122
115
  }
123
116
  this.answers = {};
124
117
  const answers = await this.prompt(questions);
@@ -157,11 +150,11 @@ class default_1 extends yeoman_generator_1.default {
157
150
  subTitle
158
151
  });
159
152
  }
160
- await (0, app_config_writer_1.generateInboundNavigationConfig)(this.appRootPath, {
153
+ await generateInboundNavigationConfig(this.appRootPath, {
161
154
  semanticObject,
162
155
  action,
163
- title: keysAdded ? `{{${semanticObject}-${action}.${constants_1.i18nKeyTitle}}}` : title,
164
- subTitle: keysAdded && subTitle ? `{{${semanticObject}-${action}.${constants_1.i18nKeySubTitle}}}` : subTitle
156
+ title: keysAdded ? `{{${semanticObject}-${action}.${i18nKeyTitle}}}` : title,
157
+ subTitle: keysAdded && subTitle ? `{{${semanticObject}-${action}.${i18nKeySubTitle}}}` : subTitle
165
158
  }, true, this.fs);
166
159
  }
167
160
  /**
@@ -178,21 +171,21 @@ class default_1 extends yeoman_generator_1.default {
178
171
  */
179
172
  async _updateI18n(manifestPath, manifest, { semanticObject, action, title, subTitle }) {
180
173
  let createProps = false;
181
- const { 'sap.app': i18nPath } = await (0, project_access_1.getI18nPropertiesPaths)(manifestPath, manifest);
174
+ const { 'sap.app': i18nPath } = await getI18nPropertiesPaths(manifestPath, manifest);
182
175
  try {
183
- const i18nEntries = [{ key: `${semanticObject}-${action}.${constants_1.i18nKeyTitle}`, value: title }];
176
+ const i18nEntries = [{ key: `${semanticObject}-${action}.${i18nKeyTitle}`, value: title }];
184
177
  if (subTitle) {
185
178
  i18nEntries.push({
186
- key: `${semanticObject}-${action}.${constants_1.i18nKeySubTitle}`,
179
+ key: `${semanticObject}-${action}.${i18nKeySubTitle}`,
187
180
  value: subTitle
188
181
  });
189
182
  }
190
- createProps = await (0, i18n_1.createPropertiesI18nEntries)(i18nPath, i18nEntries, this.appRootPath, this.fs);
183
+ createProps = await createPropertiesI18nEntries(i18nPath, i18nEntries, this.appRootPath, this.fs);
191
184
  }
192
185
  catch (error) {
193
- const errorMsg = (0, utils_1.t)('warning.updatei18n', { path: i18nPath });
194
- this.appWizard.showWarning(errorMsg, yeoman_ui_types_1.MessageType.notification);
195
- logger_1.default.logger?.error(errorMsg);
186
+ const errorMsg = t('warning.updatei18n', { path: i18nPath });
187
+ this.appWizard.showWarning(errorMsg, MessageType.notification);
188
+ FlpGenLogger.logger?.error(errorMsg);
196
189
  }
197
190
  return createProps;
198
191
  }
@@ -202,26 +195,26 @@ class default_1 extends yeoman_generator_1.default {
202
195
  }
203
196
  // The app would not have been generated until after the writing phase due to the current ordering of the composeWith from Fiori generators
204
197
  if (this.abort === false && !this.existingApp) {
205
- this.manifestPath = (0, node_path_1.join)(await (0, project_access_1.getWebappPath)(this.appRootPath), project_access_1.FileName.Manifest);
198
+ this.manifestPath = join(await getWebappPath(this.appRootPath), FileName.Manifest);
206
199
  this.manifest = this.fs.readJSON(this.manifestPath);
207
200
  await this._updateFiles(this.answers);
208
201
  }
209
202
  try {
210
203
  if (!this.options.launchFlpConfigAsSubGenerator &&
211
- (0, fiori_generator_shared_1.isExtensionInstalled)(this.vscode, fiori_generator_shared_1.YUI_EXTENSION_ID, fiori_generator_shared_1.YUI_MIN_VER_FILES_GENERATED_MSG)) {
212
- this.appWizard?.showInformation((0, utils_1.t)('info.filesGenerated'), yeoman_ui_types_1.MessageType.notification);
204
+ isExtensionInstalled(this.vscode, YUI_EXTENSION_ID, YUI_MIN_VER_FILES_GENERATED_MSG)) {
205
+ this.appWizard?.showInformation(t('info.filesGenerated'), MessageType.notification);
213
206
  }
214
- (0, fiori_generator_shared_1.sendTelemetry)(telemetryEvents_1.EventName.GENERATION_SUCCESS, fiori_generator_shared_1.TelemetryHelper.createTelemetryData({
207
+ sendTelemetry(EventName.GENERATION_SUCCESS, TelemetryHelper.createTelemetryData({
215
208
  appType: 'flp-config',
216
209
  ...this.options.telemetryData
217
210
  }) ?? {}).catch((error) => {
218
- logger_1.default.logger.error((0, utils_1.t)('error.telemetry', { error }));
211
+ FlpGenLogger.logger.error(t('error.telemetry', { error }));
219
212
  });
220
213
  }
221
214
  catch (error) {
222
- logger_1.default.logger?.error((0, utils_1.t)('error.endPhase', { error }));
215
+ FlpGenLogger.logger?.error(t('error.endPhase', { error }));
223
216
  }
224
217
  }
225
218
  }
226
- exports.default = default_1;
219
+ export { promptNames };
227
220
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventName = void 0;
4
1
  /**
5
2
  * Event names for telemetry for the FLP config generator
6
3
  */
7
- var EventName;
4
+ export var EventName;
8
5
  (function (EventName) {
9
6
  EventName["GENERATION_SUCCESS"] = "GENERATION_SUCCESS";
10
- })(EventName || (exports.EventName = EventName = {}));
7
+ })(EventName || (EventName = {}));
11
8
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generatorTitle = exports.i18nKeySubTitle = exports.i18nKeyTitle = void 0;
4
- exports.i18nKeyTitle = 'flpTitle';
5
- exports.i18nKeySubTitle = 'flpSubtitle';
6
- exports.generatorTitle = 'Fiori Launchpad Configuration Generator';
1
+ export const i18nKeyTitle = 'flpTitle';
2
+ export const i18nKeySubTitle = 'flpSubtitle';
3
+ export const generatorTitle = 'Fiori Launchpad Configuration Generator';
7
4
  //# sourceMappingURL=constants.js.map
@@ -1,25 +1,17 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.i18n = void 0;
7
- exports.initI18n = initI18n;
8
- exports.t = t;
9
- const i18next_1 = __importDefault(require("i18next"));
10
- const flp_config_sub_generator_i18n_json_1 = __importDefault(require("../translations/flp-config-sub-generator.i18n.json"));
1
+ import i18next from 'i18next';
2
+ import translations from '../translations/flp-config-sub-generator.i18n.json' with { type: 'json' };
11
3
  const flpConfigGeneratorNs = 'flp-config-generator';
12
- exports.i18n = i18next_1.default.createInstance();
4
+ export const i18n = i18next.createInstance();
13
5
  /**
14
6
  * Initialize i18next with the translations for this module.
15
7
  */
16
- async function initI18n() {
17
- await exports.i18n.init({
8
+ export async function initI18n() {
9
+ await i18n.init({
18
10
  lng: 'en',
19
11
  fallbackLng: 'en',
20
12
  showSupportNotice: false
21
13
  });
22
- exports.i18n.addResourceBundle('en', flpConfigGeneratorNs, flp_config_sub_generator_i18n_json_1.default);
14
+ i18n.addResourceBundle('en', flpConfigGeneratorNs, translations);
23
15
  }
24
16
  /**
25
17
  * Helper function facading the call to i18next. Unless a namespace option is provided the local namespace will be used.
@@ -28,13 +20,11 @@ async function initI18n() {
28
20
  * @param options additional options
29
21
  * @returns {string} localized string stored for the given key
30
22
  */
31
- function t(key, options) {
23
+ export function t(key, options) {
32
24
  if (!options?.ns) {
33
25
  options = Object.assign(options ?? {}, { ns: flpConfigGeneratorNs });
34
26
  }
35
- return exports.i18n.t(key, options);
27
+ return i18n.t(key, options);
36
28
  }
37
- initI18n().catch(() => {
38
- // Needed for lint
39
- });
29
+ void initI18n().catch(() => undefined);
40
30
  //# sourceMappingURL=i18n.js.map
@@ -1,3 +1,3 @@
1
- export * from './i18n';
2
- export { getYUIDetails, getPromptOptions } from './prompts';
1
+ export * from './i18n.js';
2
+ export { getYUIDetails, getPromptOptions } from './prompts.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,22 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getPromptOptions = exports.getYUIDetails = void 0;
18
- __exportStar(require("./i18n"), exports);
19
- var prompts_1 = require("./prompts");
20
- Object.defineProperty(exports, "getYUIDetails", { enumerable: true, get: function () { return prompts_1.getYUIDetails; } });
21
- Object.defineProperty(exports, "getPromptOptions", { enumerable: true, get: function () { return prompts_1.getPromptOptions; } });
1
+ export * from './i18n.js';
2
+ export { getYUIDetails, getPromptOptions } from './prompts.js';
22
3
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fiori_generator_shared_1 = require("@sap-ux/fiori-generator-shared");
1
+ import { DefaultLogger, LogWrapper } from '@sap-ux/fiori-generator-shared';
4
2
  /**
5
3
  * Static logger prevents passing of logger references through all functions, as this is a cross-cutting concern.
6
4
  */
7
- class FlpGenLogger {
8
- static _logger = fiori_generator_shared_1.DefaultLogger;
5
+ export default class FlpGenLogger {
6
+ static _logger = DefaultLogger;
9
7
  /**
10
8
  * Get the logger.
11
9
  *
@@ -33,9 +31,8 @@ class FlpGenLogger {
33
31
  * @param vscode - the vscode instance
34
32
  */
35
33
  static configureLogging(loggerName, yoLogger, logWrapper, logLevel, vscLogger, vscode) {
36
- const logger = logWrapper ?? new fiori_generator_shared_1.LogWrapper(loggerName, yoLogger, logLevel, vscLogger, vscode);
34
+ const logger = logWrapper ?? new LogWrapper(loggerName, yoLogger, logLevel, vscLogger, vscode);
37
35
  FlpGenLogger.logger = logger;
38
36
  }
39
37
  }
40
- exports.default = FlpGenLogger;
41
38
  //# sourceMappingURL=logger.js.map
@@ -1,20 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getYUIDetails = getYUIDetails;
4
- exports.getPromptOptions = getPromptOptions;
5
- const node_path_1 = require("node:path");
6
- const flp_config_inquirer_1 = require("@sap-ux/flp-config-inquirer");
1
+ import { basename } from 'node:path';
2
+ import { promptNames } from '@sap-ux/flp-config-inquirer';
7
3
  /**
8
4
  * Returns the details for the YUI prompt.
9
5
  *
10
6
  * @param appRootPath - path to the application to be displayed in YUI step description
11
7
  * @returns step details
12
8
  */
13
- function getYUIDetails(appRootPath) {
9
+ export function getYUIDetails(appRootPath) {
14
10
  return [
15
11
  {
16
12
  name: 'Fiori Launchpad Configuration',
17
- description: `Configure Fiori Launchpad settings - ${(0, node_path_1.basename)(appRootPath)}`
13
+ description: `Configure Fiori Launchpad settings - ${basename(appRootPath)}`
18
14
  }
19
15
  ];
20
16
  }
@@ -24,14 +20,14 @@ function getYUIDetails(appRootPath) {
24
20
  * @param promptOptions - FLP configuration prompt options
25
21
  * @returns - FLP configuration prompt options with defaults applied
26
22
  */
27
- function getPromptOptions(promptOptions) {
23
+ export function getPromptOptions(promptOptions) {
28
24
  return {
29
25
  ...promptOptions,
30
- [flp_config_inquirer_1.promptNames.inboundId]: { hide: true, ...promptOptions?.inboundId },
31
- [flp_config_inquirer_1.promptNames.existingFlpConfigInfo]: { hide: true, ...promptOptions?.existingFlpConfigInfo },
32
- [flp_config_inquirer_1.promptNames.icon]: { hide: true, ...promptOptions?.icon },
33
- [flp_config_inquirer_1.promptNames.additionalParameters]: { hide: true, ...promptOptions?.additionalParameters },
34
- [flp_config_inquirer_1.promptNames.confirmReplace]: { hide: true, ...promptOptions?.confirmReplace }
26
+ [promptNames.inboundId]: { hide: true, ...promptOptions?.inboundId },
27
+ [promptNames.existingFlpConfigInfo]: { hide: true, ...promptOptions?.existingFlpConfigInfo },
28
+ [promptNames.icon]: { hide: true, ...promptOptions?.icon },
29
+ [promptNames.additionalParameters]: { hide: true, ...promptOptions?.additionalParameters },
30
+ [promptNames.confirmReplace]: { hide: true, ...promptOptions?.confirmReplace }
35
31
  };
36
32
  }
37
33
  //# sourceMappingURL=prompts.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sap-ux/flp-config-sub-generator",
3
3
  "description": "Generator for creating Fiori Launcpad configuration",
4
- "version": "0.4.13",
4
+ "version": "1.0.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/SAP/open-ux-tools.git",
@@ -10,6 +10,7 @@
10
10
  "bugs": {
11
11
  "url": "https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue"
12
12
  },
13
+ "type": "module",
13
14
  "license": "Apache-2.0",
14
15
  "main": "generators/app/index.js",
15
16
  "files": [
@@ -23,16 +24,17 @@
23
24
  "i18next": "25.10.10",
24
25
  "inquirer": "8.2.7",
25
26
  "yeoman-generator": "5.10.0",
26
- "@sap-ux/app-config-writer": "0.7.6",
27
- "@sap-ux/deploy-config-generator-shared": "0.2.6",
28
- "@sap-ux/feature-toggle": "0.4.0",
29
- "@sap-ux/fiori-generator-shared": "0.15.6",
30
- "@sap-ux/flp-config-inquirer": "0.5.11",
31
- "@sap-ux/i18n": "0.4.0",
32
- "@sap-ux/inquirer-common": "0.13.6",
33
- "@sap-ux/project-access": "1.38.1"
27
+ "@sap-ux/app-config-writer": "1.0.1",
28
+ "@sap-ux/deploy-config-generator-shared": "1.0.1",
29
+ "@sap-ux/feature-toggle": "1.0.0",
30
+ "@sap-ux/fiori-generator-shared": "1.0.1",
31
+ "@sap-ux/flp-config-inquirer": "1.0.1",
32
+ "@sap-ux/i18n": "1.0.0",
33
+ "@sap-ux/inquirer-common": "1.0.1",
34
+ "@sap-ux/project-access": "2.0.1"
34
35
  },
35
36
  "devDependencies": {
37
+ "@jest/globals": "30.3.0",
36
38
  "@jest/types": "30.3.0",
37
39
  "@types/inquirer": "8.2.6",
38
40
  "@types/mem-fs": "1.1.2",
@@ -48,7 +50,7 @@
48
50
  "rimraf": "6.1.3",
49
51
  "unionfs": "4.6.0",
50
52
  "yeoman-test": "6.3.0",
51
- "@sap-ux/nodejs-utils": "0.3.2"
53
+ "@sap-ux/nodejs-utils": "1.0.0"
52
54
  },
53
55
  "engines": {
54
56
  "node": ">=22.x"
@@ -59,8 +61,8 @@
59
61
  "watch": "tsc --watch",
60
62
  "lint": "eslint",
61
63
  "lint:fix": "eslint --fix",
62
- "test": "jest --ci --forceExit --detectOpenHandles --colors",
63
- "test-u": "jest --ci --forceExit --detectOpenHandles --colors -u",
64
+ "test": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --ci --forceExit --detectOpenHandles --colors",
65
+ "test-u": "cross-env NODE_OPTIONS='--experimental-vm-modules' jest --ci --forceExit --detectOpenHandles --colors -u",
64
66
  "link": "pnpm link --global",
65
67
  "unlink": "pnpm unlink --global"
66
68
  }