@sap-ux/telemetry 0.2.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.
- package/LICENSE +201 -0
- package/README.md +27 -0
- package/dist/base/client/azure-appinsight-client.d.ts +88 -0
- package/dist/base/client/azure-appinsight-client.js +195 -0
- package/dist/base/client/client.d.ts +24 -0
- package/dist/base/client/client.js +33 -0
- package/dist/base/client/index.d.ts +24 -0
- package/dist/base/client/index.js +38 -0
- package/dist/base/config-state.d.ts +12 -0
- package/dist/base/config-state.js +26 -0
- package/dist/base/decorator/index.d.ts +23 -0
- package/dist/base/decorator/index.js +41 -0
- package/dist/base/interceptor/config.d.ts +19 -0
- package/dist/base/interceptor/config.js +54 -0
- package/dist/base/interceptor/index.d.ts +10 -0
- package/dist/base/interceptor/index.js +90 -0
- package/dist/base/performance/api.d.ts +74 -0
- package/dist/base/performance/api.js +120 -0
- package/dist/base/performance/entries.d.ts +42 -0
- package/dist/base/performance/entries.js +53 -0
- package/dist/base/performance/types.d.ts +35 -0
- package/dist/base/performance/types.js +17 -0
- package/dist/base/types/event-header.d.ts +28 -0
- package/dist/base/types/event-header.js +38 -0
- package/dist/base/types/event-name.d.ts +6 -0
- package/dist/base/types/event-name.js +10 -0
- package/dist/base/types/index.d.ts +5 -0
- package/dist/base/types/index.js +21 -0
- package/dist/base/types/project-info.d.ts +5 -0
- package/dist/base/types/project-info.js +3 -0
- package/dist/base/types/sample-rate.d.ts +6 -0
- package/dist/base/types/sample-rate.js +10 -0
- package/dist/base/utils/azure-client-config.d.ts +9 -0
- package/dist/base/utils/azure-client-config.js +21 -0
- package/dist/base/utils/date.d.ts +2 -0
- package/dist/base/utils/date.js +9 -0
- package/dist/base/utils/index.d.ts +6 -0
- package/dist/base/utils/index.js +24 -0
- package/dist/base/utils/logger.d.ts +6 -0
- package/dist/base/utils/logger.js +10 -0
- package/dist/base/utils/param-processing.d.ts +46 -0
- package/dist/base/utils/param-processing.js +103 -0
- package/dist/base/utils/reporting.d.ts +3 -0
- package/dist/base/utils/reporting.js +101 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +35 -0
- package/dist/tooling-telemetry/config-state.d.ts +4 -0
- package/dist/tooling-telemetry/config-state.js +7 -0
- package/dist/tooling-telemetry/data-processor.d.ts +23 -0
- package/dist/tooling-telemetry/data-processor.js +354 -0
- package/dist/tooling-telemetry/index.d.ts +5 -0
- package/dist/tooling-telemetry/index.js +23 -0
- package/dist/tooling-telemetry/telemetry-client.d.ts +65 -0
- package/dist/tooling-telemetry/telemetry-client.js +118 -0
- package/dist/tooling-telemetry/telemetry-settings.d.ts +22 -0
- package/dist/tooling-telemetry/telemetry-settings.js +180 -0
- package/dist/tooling-telemetry/types.d.ts +92 -0
- package/dist/tooling-telemetry/types.js +40 -0
- package/package.json +60 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.getTelemetrySetting = exports.setEnableTelemetry = exports.initTelemetrySettings = void 0;
|
|
16
|
+
const reporting_1 = require("../base/utils/reporting");
|
|
17
|
+
const store_1 = require("@sap-ux/store");
|
|
18
|
+
const btp_utils_1 = require("@sap-ux/btp-utils");
|
|
19
|
+
const os_1 = __importDefault(require("os"));
|
|
20
|
+
const path_1 = __importDefault(require("path"));
|
|
21
|
+
const fs_1 = __importDefault(require("fs"));
|
|
22
|
+
const data_processor_1 = require("./data-processor");
|
|
23
|
+
const config_state_1 = require("../base/config-state");
|
|
24
|
+
const config_state_2 = require("./config-state");
|
|
25
|
+
const deprecatedSettingPaths = {
|
|
26
|
+
win32: '\\AppData\\Roaming\\Code\\User\\settings.json',
|
|
27
|
+
darwin: '/Library/Application Support/Code/User/settings.json',
|
|
28
|
+
linux: '/.config/Code/User/settings.json',
|
|
29
|
+
theia: '/.theia/settings.json'
|
|
30
|
+
};
|
|
31
|
+
const deprecatedExtensionPropKeys = [
|
|
32
|
+
'sap.ux.annotation.lsp.enableTelemetry',
|
|
33
|
+
'sap.ux.applicationModeler.enableTelemetry',
|
|
34
|
+
'sap.ux.help.enableTelemetry',
|
|
35
|
+
'sap.ux.serviceModeler.enableTelemetry'
|
|
36
|
+
];
|
|
37
|
+
const definePath = (paths) => {
|
|
38
|
+
const platform = process.platform;
|
|
39
|
+
let settingsPath = paths[platform];
|
|
40
|
+
if ((0, btp_utils_1.isAppStudio)()) {
|
|
41
|
+
settingsPath = paths.theia;
|
|
42
|
+
}
|
|
43
|
+
if (!settingsPath) {
|
|
44
|
+
// no path for unknown platform settings path
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const homedir = os_1.default.homedir();
|
|
48
|
+
return path_1.default.join(homedir, settingsPath);
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Read telemetry settings from file store.
|
|
52
|
+
*
|
|
53
|
+
* @param storeService Store service that is used for read/write telemetry settings
|
|
54
|
+
*/
|
|
55
|
+
function readEnableTelemetry(storeService) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
let setting;
|
|
58
|
+
try {
|
|
59
|
+
setting = yield storeService.read(new store_1.TelemetrySettingKey());
|
|
60
|
+
}
|
|
61
|
+
catch (_a) {
|
|
62
|
+
// ignore read failure, assume file doens't exist and thus setting is undefined
|
|
63
|
+
}
|
|
64
|
+
if (!setting) {
|
|
65
|
+
// If no telemetry setting found in .fioritools folder,
|
|
66
|
+
// check telemetry setting in vscode settings for extensions
|
|
67
|
+
const deprecatedSettingPath = definePath(deprecatedSettingPaths);
|
|
68
|
+
if (!deprecatedSettingPath) {
|
|
69
|
+
// If no vscode setting found, default central telemetry setting to true
|
|
70
|
+
yield setEnableTelemetry(true);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// If deprecated vscode setting exists, set central telemetry setting to false if any of vscode setting was false
|
|
74
|
+
let content;
|
|
75
|
+
try {
|
|
76
|
+
content = yield fs_1.default.promises.readFile(deprecatedSettingPath, 'utf-8');
|
|
77
|
+
const deprecatedSetting = JSON.parse(content);
|
|
78
|
+
const propValues = deprecatedExtensionPropKeys.map((propKey) => { var _a; return ((_a = deprecatedSetting[propKey]) !== null && _a !== void 0 ? _a : true); });
|
|
79
|
+
const deprecatedEnableTelemetrySetting = propValues.reduce((prevValue, currentValue) => prevValue && currentValue);
|
|
80
|
+
yield setEnableTelemetry(deprecatedEnableTelemetrySetting);
|
|
81
|
+
}
|
|
82
|
+
catch (_b) {
|
|
83
|
+
// ignore read failure and content is undefined
|
|
84
|
+
yield setEnableTelemetry(true);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
config_state_1.TelemetrySettings.telemetryEnabled = setting.enableTelemetry;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Watch changes to telemetry setting in the store and update runtime settings accordingly.
|
|
95
|
+
*
|
|
96
|
+
* @param storeService Store service that is used for read/write telemetry settings
|
|
97
|
+
*/
|
|
98
|
+
function watchTelemetrySettingStore(storeService) {
|
|
99
|
+
(0, store_1.getFilesystemWatcherFor)(store_1.Entity.TelemetrySetting, () => {
|
|
100
|
+
storeService
|
|
101
|
+
.read(new store_1.TelemetrySettingKey())
|
|
102
|
+
.then((watchedSetting) => {
|
|
103
|
+
if (watchedSetting) {
|
|
104
|
+
config_state_1.TelemetrySettings.telemetryEnabled = watchedSetting.enableTelemetry;
|
|
105
|
+
}
|
|
106
|
+
})
|
|
107
|
+
.catch(() => {
|
|
108
|
+
// Failed to read file changes, nothing can be done here.
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Telemetry API function to init settings.
|
|
114
|
+
*
|
|
115
|
+
* @param options Settings pass from the consumer module.
|
|
116
|
+
*/
|
|
117
|
+
const initTelemetrySettings = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
118
|
+
var _a;
|
|
119
|
+
try {
|
|
120
|
+
config_state_1.TelemetrySettings.azureInstrumentationKey = options.resourceId;
|
|
121
|
+
config_state_1.TelemetrySettings.consumerModuleName = options.consumerModule.name;
|
|
122
|
+
config_state_1.TelemetrySettings.consumerModuleVersion = options.consumerModule.version;
|
|
123
|
+
config_state_2.ToolingTelemetrySettings.internalFeature = (_a = options.internalFeature) !== null && _a !== void 0 ? _a : false;
|
|
124
|
+
const storeService = yield (0, store_1.getService)({
|
|
125
|
+
entityName: 'telemetrySetting'
|
|
126
|
+
});
|
|
127
|
+
yield readEnableTelemetry(storeService);
|
|
128
|
+
watchTelemetrySettingStore(storeService);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
(0, reporting_1.reportRuntimeError)(err);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
exports.initTelemetrySettings = initTelemetrySettings;
|
|
135
|
+
/**
|
|
136
|
+
* Toggle on/off enable telemetry setting. This will update telemetry settings file
|
|
137
|
+
* and the runtime setting.
|
|
138
|
+
*
|
|
139
|
+
* @param enableTelemetry Telemetry is enabled or not
|
|
140
|
+
*/
|
|
141
|
+
function setEnableTelemetry(enableTelemetry) {
|
|
142
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
+
try {
|
|
144
|
+
const storeService = yield (0, store_1.getService)({
|
|
145
|
+
entityName: 'telemetrySetting'
|
|
146
|
+
});
|
|
147
|
+
const setting = new store_1.TelemetrySetting({ enableTelemetry });
|
|
148
|
+
yield storeService.write(setting);
|
|
149
|
+
config_state_1.TelemetrySettings.telemetryEnabled = enableTelemetry;
|
|
150
|
+
}
|
|
151
|
+
catch (_a) {
|
|
152
|
+
// Telemetry settings could not be written
|
|
153
|
+
}
|
|
154
|
+
const commonProperties = yield (0, data_processor_1.getCommonProperties)();
|
|
155
|
+
(0, reporting_1.reportEnableTelemetryOnOff)(enableTelemetry, commonProperties);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
exports.setEnableTelemetry = setEnableTelemetry;
|
|
159
|
+
/**
|
|
160
|
+
* Get telemetry settings.
|
|
161
|
+
*
|
|
162
|
+
* @returns Telemetry settings of context module that consumes telemetry library
|
|
163
|
+
*/
|
|
164
|
+
function getTelemetrySetting() {
|
|
165
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
let setting;
|
|
167
|
+
try {
|
|
168
|
+
const storeService = yield (0, store_1.getService)({
|
|
169
|
+
entityName: 'telemetrySetting'
|
|
170
|
+
});
|
|
171
|
+
setting = yield storeService.read(new store_1.TelemetrySettingKey());
|
|
172
|
+
}
|
|
173
|
+
catch (_a) {
|
|
174
|
+
// ignore if settings could not be read, return undefined
|
|
175
|
+
}
|
|
176
|
+
return setting;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
exports.getTelemetrySetting = getTelemetrySetting;
|
|
180
|
+
//# sourceMappingURL=telemetry-settings.js.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { ProjectInfo } from '../base/types';
|
|
2
|
+
import type { AppType } from '@sap-ux/project-access/dist/types';
|
|
3
|
+
export type TelemetryHelperProperties = {
|
|
4
|
+
appPath: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Type exposed via telemetry API. The following paramters can be provided by developer who
|
|
8
|
+
* calls telemetry API.
|
|
9
|
+
*
|
|
10
|
+
* - resourceId: Id of cloud telemetry resource (e.g. Azure application insights resource is supported)
|
|
11
|
+
* - consumerModule: name and version of module that uses telemetry library
|
|
12
|
+
* - internalFeature: if UX tooling InternalFeature is enabled
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
export type ToolsSuiteTelemetryInitSettings = {
|
|
16
|
+
resourceId: string;
|
|
17
|
+
consumerModule: ProjectInfo;
|
|
18
|
+
internalFeature: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare enum ToolsId {
|
|
21
|
+
UNKNOWN = "UNKNOWN",
|
|
22
|
+
NO_TOOLS_ID = "NO_TOOLS_ID"
|
|
23
|
+
}
|
|
24
|
+
export declare enum ODataSource {
|
|
25
|
+
CAPJava = "CAPJava",
|
|
26
|
+
CAPNode = "CAPNode",
|
|
27
|
+
ABAP = "ABAP",
|
|
28
|
+
UNKNOWN = "UNKNOWN"
|
|
29
|
+
}
|
|
30
|
+
export declare enum DeployTarget {
|
|
31
|
+
CF = "CF",
|
|
32
|
+
ABAP = "ABAP",
|
|
33
|
+
UNKNOWN_DEPLOY_CONFIG = "UNKNOWN_DEPLOY_CONFIG",
|
|
34
|
+
NO_DEPLOY_CONFIG = "NO_DEPLOY_CONFIG"
|
|
35
|
+
}
|
|
36
|
+
export declare enum CommonProperties {
|
|
37
|
+
DevSpace = "cmn.devspace",
|
|
38
|
+
AppStudio = "cmn.appstudio",
|
|
39
|
+
AppStudioBackwardCompatible = "appstudio",
|
|
40
|
+
InternlVsExternal = "cmn.internalFeatures",
|
|
41
|
+
InternlVsExternalBackwardCompatible = "internalVsExternal",
|
|
42
|
+
TemplateType = "cmn.template",
|
|
43
|
+
DeployTargetType = "cmn.deployTarget",
|
|
44
|
+
ODataSourceType = "cmn.odataSource",
|
|
45
|
+
AppToolsId = "cmn.toolsId",
|
|
46
|
+
NodeVersion = "cmn.nodeVersion",
|
|
47
|
+
AppProgrammingLanguage = "cmn.appLanguage",
|
|
48
|
+
TemplateId = "cmn.templateId",
|
|
49
|
+
TemplateVersion = "cmn.templateVersion",
|
|
50
|
+
ApplicationType = "cmn.applicationType"
|
|
51
|
+
}
|
|
52
|
+
export type InternalFeature = 'internal' | 'external';
|
|
53
|
+
export interface CommonTelemetryProperties extends TelemetryProperties {
|
|
54
|
+
v: string;
|
|
55
|
+
datetime: string;
|
|
56
|
+
}
|
|
57
|
+
export interface CommonFioriProjectProperties extends TelemetryProperties {
|
|
58
|
+
[CommonProperties.DevSpace]: string;
|
|
59
|
+
[CommonProperties.AppStudio]: boolean;
|
|
60
|
+
[CommonProperties.AppStudioBackwardCompatible]: boolean;
|
|
61
|
+
[CommonProperties.InternlVsExternal]: InternalFeature;
|
|
62
|
+
[CommonProperties.InternlVsExternalBackwardCompatible]: InternalFeature;
|
|
63
|
+
[CommonProperties.TemplateType]: string;
|
|
64
|
+
[CommonProperties.DeployTargetType]: DeployTarget;
|
|
65
|
+
[CommonProperties.ODataSourceType]: ODataSource;
|
|
66
|
+
[CommonProperties.AppToolsId]: string;
|
|
67
|
+
[CommonProperties.NodeVersion]: string;
|
|
68
|
+
[CommonProperties.AppProgrammingLanguage]: string;
|
|
69
|
+
[CommonProperties.TemplateId]: string;
|
|
70
|
+
[CommonProperties.TemplateVersion]: string;
|
|
71
|
+
[CommonProperties.ApplicationType]: AppType;
|
|
72
|
+
}
|
|
73
|
+
export interface TelemetryProperties {
|
|
74
|
+
[key: string]: string | boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface TelemetryMeasurements {
|
|
77
|
+
[key: string]: number;
|
|
78
|
+
}
|
|
79
|
+
export type TelemetryEvent = {
|
|
80
|
+
eventName: string;
|
|
81
|
+
properties: TelemetryProperties;
|
|
82
|
+
measurements: TelemetryMeasurements;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* sourceTemplate information in Fiori app manifest.json file.
|
|
86
|
+
*/
|
|
87
|
+
export interface SourceTemplate {
|
|
88
|
+
id?: string;
|
|
89
|
+
version?: string;
|
|
90
|
+
toolsId?: string;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommonProperties = exports.DeployTarget = exports.ODataSource = exports.ToolsId = void 0;
|
|
4
|
+
var ToolsId;
|
|
5
|
+
(function (ToolsId) {
|
|
6
|
+
ToolsId["UNKNOWN"] = "UNKNOWN";
|
|
7
|
+
ToolsId["NO_TOOLS_ID"] = "NO_TOOLS_ID";
|
|
8
|
+
})(ToolsId = exports.ToolsId || (exports.ToolsId = {}));
|
|
9
|
+
var ODataSource;
|
|
10
|
+
(function (ODataSource) {
|
|
11
|
+
ODataSource["CAPJava"] = "CAPJava";
|
|
12
|
+
ODataSource["CAPNode"] = "CAPNode";
|
|
13
|
+
ODataSource["ABAP"] = "ABAP";
|
|
14
|
+
ODataSource["UNKNOWN"] = "UNKNOWN";
|
|
15
|
+
})(ODataSource = exports.ODataSource || (exports.ODataSource = {}));
|
|
16
|
+
var DeployTarget;
|
|
17
|
+
(function (DeployTarget) {
|
|
18
|
+
DeployTarget["CF"] = "CF";
|
|
19
|
+
DeployTarget["ABAP"] = "ABAP";
|
|
20
|
+
DeployTarget["UNKNOWN_DEPLOY_CONFIG"] = "UNKNOWN_DEPLOY_CONFIG";
|
|
21
|
+
DeployTarget["NO_DEPLOY_CONFIG"] = "NO_DEPLOY_CONFIG";
|
|
22
|
+
})(DeployTarget = exports.DeployTarget || (exports.DeployTarget = {}));
|
|
23
|
+
var CommonProperties;
|
|
24
|
+
(function (CommonProperties) {
|
|
25
|
+
CommonProperties["DevSpace"] = "cmn.devspace";
|
|
26
|
+
CommonProperties["AppStudio"] = "cmn.appstudio";
|
|
27
|
+
CommonProperties["AppStudioBackwardCompatible"] = "appstudio";
|
|
28
|
+
CommonProperties["InternlVsExternal"] = "cmn.internalFeatures";
|
|
29
|
+
CommonProperties["InternlVsExternalBackwardCompatible"] = "internalVsExternal";
|
|
30
|
+
CommonProperties["TemplateType"] = "cmn.template";
|
|
31
|
+
CommonProperties["DeployTargetType"] = "cmn.deployTarget";
|
|
32
|
+
CommonProperties["ODataSourceType"] = "cmn.odataSource";
|
|
33
|
+
CommonProperties["AppToolsId"] = "cmn.toolsId";
|
|
34
|
+
CommonProperties["NodeVersion"] = "cmn.nodeVersion";
|
|
35
|
+
CommonProperties["AppProgrammingLanguage"] = "cmn.appLanguage";
|
|
36
|
+
CommonProperties["TemplateId"] = "cmn.templateId";
|
|
37
|
+
CommonProperties["TemplateVersion"] = "cmn.templateVersion";
|
|
38
|
+
CommonProperties["ApplicationType"] = "cmn.applicationType";
|
|
39
|
+
})(CommonProperties = exports.CommonProperties || (exports.CommonProperties = {}));
|
|
40
|
+
//# sourceMappingURL=types.js.map
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sap-ux/telemetry",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Library for sending usage telemetry data",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/SAP/open-ux-tools.git",
|
|
8
|
+
"directory": "packages/telemetry"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Atelemetry"
|
|
12
|
+
},
|
|
13
|
+
"license": "Apache-2.0",
|
|
14
|
+
"private": false,
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@sap/ux-specification": "1.108.18",
|
|
18
|
+
"applicationinsights": "2.9.0",
|
|
19
|
+
"axios": "1.6.0",
|
|
20
|
+
"performance-now": "2.1.0",
|
|
21
|
+
"yaml": "2.3.3",
|
|
22
|
+
"@sap-ux/store": "0.4.0",
|
|
23
|
+
"@sap-ux/project-access": "1.16.2",
|
|
24
|
+
"@sap-ux/btp-utils": "0.12.1",
|
|
25
|
+
"@sap-ux/ui5-config": "0.21.0",
|
|
26
|
+
"@sap-ux/logger": "0.4.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"jest-extended": "3.2.4",
|
|
30
|
+
"memfs": "3.4.13",
|
|
31
|
+
"ts-jest": "29.1.1",
|
|
32
|
+
"ts-node": "8.5.2",
|
|
33
|
+
"typescript": "4.9.5",
|
|
34
|
+
"unionfs": "4.4.0",
|
|
35
|
+
"dotenv": "16.3.1"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"LICENSE",
|
|
40
|
+
"!dist/*.map",
|
|
41
|
+
"!dist/**/*.map"
|
|
42
|
+
],
|
|
43
|
+
"engines": {
|
|
44
|
+
"pnpm": ">=6.26.1 < 7.0.0 || >=7.1.0",
|
|
45
|
+
"node": ">=18.x"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "tsc --build",
|
|
49
|
+
"watch": "tsc --watch",
|
|
50
|
+
"clean": "rimraf --glob dist coverage *.tsbuildinfo",
|
|
51
|
+
"format": "prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",
|
|
52
|
+
"lint": "eslint . --ext .ts",
|
|
53
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
54
|
+
"test": "jest --ci --forceExit --detectOpenHandles --colors",
|
|
55
|
+
"test-u": "jest --ci --forceExit --detectOpenHandles --colors -u",
|
|
56
|
+
"link": "pnpm link --global",
|
|
57
|
+
"unlink": "pnpm unlink --global",
|
|
58
|
+
"example": "ts-node example/index.ts"
|
|
59
|
+
}
|
|
60
|
+
}
|