@c8y/devkit 1019.24.6 → 1020.0.4
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/options.d.ts +0 -1
- package/dist/options.js +0 -1
- package/dist/options.js.map +1 -1
- package/dist/src/builders/BuilderOptions.d.ts +2 -2
- package/dist/src/builders/browser/index.js.map +1 -1
- package/dist/src/builders/browser/schema.json +6 -7
- package/dist/src/builders/compile-i18n/compile-i18n-builder.js.map +1 -1
- package/dist/src/builders/create-schema.js +1 -2
- package/dist/src/builders/create-schema.js.map +1 -1
- package/dist/src/builders/deploy/app-as-zip-file.js.map +1 -1
- package/dist/src/builders/deploy/build-and-zip-app.d.ts +2 -2
- package/dist/src/builders/deploy/build-and-zip-app.js +3 -3
- package/dist/src/builders/deploy/build-and-zip-app.js.map +1 -1
- package/dist/src/builders/deploy/deploy-builder.js +70 -6
- package/dist/src/builders/deploy/deploy-builder.js.map +1 -1
- package/dist/src/builders/deploy/helpers.js.map +1 -1
- package/dist/src/builders/deploy/schema.json +1 -1
- package/dist/src/builders/dev-server/index.js.map +1 -1
- package/dist/src/builders/dev-server/schema.json +45 -6
- package/dist/src/builders/extract-i18n/extract-i18n-builder.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/angular-json.js +11 -2
- package/dist/src/schematics/ng-add/configs/angular-json.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/app-module.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/app-routing.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/index-html.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/main.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/ng1.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/translation.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/tsconfig-app-json.js +6 -0
- package/dist/src/schematics/ng-add/configs/tsconfig-app-json.js.map +1 -1
- package/dist/src/schematics/ng-add/configs/tsconfig-json.js +4 -6
- package/dist/src/schematics/ng-add/configs/tsconfig-json.js.map +1 -1
- package/dist/src/schematics/ng-add/index.js +38 -8
- package/dist/src/schematics/ng-add/index.js.map +1 -1
- package/dist/src/schematics/ng-add/utils.d.ts +13 -0
- package/dist/src/schematics/ng-add/utils.js +22 -1
- package/dist/src/schematics/ng-add/utils.js.map +1 -1
- package/dist/src/utils/locale-compiler.js.map +1 -1
- package/dist/src/utils/locale-utils.js.map +1 -1
- package/dist/src/webpack/EnvironmentOptions.d.ts +17 -48
- package/dist/src/webpack/EnvironmentOptions.js +1 -8
- package/dist/src/webpack/EnvironmentOptions.js.map +1 -1
- package/dist/src/webpack/config/base.js +1 -1
- package/dist/src/webpack/config/base.js.map +1 -1
- package/dist/src/webpack/config/development.js.map +1 -1
- package/dist/src/webpack/config/extra.js.map +1 -1
- package/dist/src/webpack/config/federation.d.ts +2 -1
- package/dist/src/webpack/config/federation.js +3 -10
- package/dist/src/webpack/config/federation.js.map +1 -1
- package/dist/src/webpack/config/plugin.js.map +1 -1
- package/dist/src/webpack/config/production.js.map +1 -1
- package/dist/src/webpack/config/styles.js +1 -4
- package/dist/src/webpack/config/styles.js.map +1 -1
- package/dist/src/webpack/loaders/loader-data.js.map +1 -1
- package/dist/src/webpack/loaders/loader-manifest.js.map +1 -1
- package/dist/src/webpack/plugin/plugin.d.ts +48 -39
- package/dist/src/webpack/plugin/plugin.js +5 -6
- package/dist/src/webpack/plugin/plugin.js.map +1 -1
- package/dist/src/webpack/plugin/translation-aggregation-plugin.d.ts +1 -1
- package/dist/src/webpack/plugin/translation-aggregation-plugin.js.map +1 -1
- package/dist/src/webpack/plugin/translation-data-store.js.map +1 -1
- package/dist/src/webpack/utils/federationUtils.js.map +1 -1
- package/dist/src/webpack/utils/helpers.d.ts +12 -1
- package/dist/src/webpack/utils/helpers.js +41 -26
- package/dist/src/webpack/utils/helpers.js.map +1 -1
- package/dist/src/webpack/utils/legacy-manifest-resolver.js.map +1 -1
- package/dist/src/webpack/utils/proxy.js.map +1 -1
- package/package.json +30 -26
- package/dist/src/schematics/ng-add/configs/package-json.d.ts +0 -17
- package/dist/src/schematics/ng-add/configs/package-json.js +0 -67
- package/dist/src/schematics/ng-add/configs/package-json.js.map +0 -1
- package/dist/src/webpack/ApplicationOptions.d.ts +0 -417
- package/dist/src/webpack/ApplicationOptions.js +0 -27
- package/dist/src/webpack/ApplicationOptions.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c8y/devkit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1020.0.4",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Cumulocity",
|
|
6
6
|
"description": "Cumulocity Webpack Build Facade",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"typings": "./dist/options.d.ts",
|
|
7
9
|
"engines": {
|
|
8
|
-
"node": ">=14 <=
|
|
10
|
+
"node": ">=14 <=20"
|
|
9
11
|
},
|
|
10
12
|
"exports": {
|
|
11
13
|
".": "./dist/index.js",
|
|
@@ -34,52 +36,52 @@
|
|
|
34
36
|
"tools"
|
|
35
37
|
],
|
|
36
38
|
"dependencies": {
|
|
37
|
-
"@babel/cli": "7.23.
|
|
38
|
-
"@babel/core": "^7.
|
|
39
|
-
"@babel/eslint-parser": "^7.
|
|
39
|
+
"@babel/cli": "7.23.9",
|
|
40
|
+
"@babel/core": "^7.23.9",
|
|
41
|
+
"@babel/eslint-parser": "^7.23.10",
|
|
40
42
|
"@babel/helper-plugin-utils": "^7.14.0",
|
|
41
43
|
"@babel/parser": "^7.14.0",
|
|
42
44
|
"@babel/plugin-proposal-object-rest-spread": "^7.14.0",
|
|
43
45
|
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
|
44
46
|
"@babel/plugin-syntax-dynamic-import": "7.8.3",
|
|
45
47
|
"@babel/plugin-transform-async-to-generator": "^7.18.6",
|
|
46
|
-
"@babel/preset-env": "^7.
|
|
47
|
-
"@c8y/client": "
|
|
48
|
-
"@schematics/angular": "^
|
|
48
|
+
"@babel/preset-env": "^7.24.4",
|
|
49
|
+
"@c8y/client": "1020.0.4",
|
|
50
|
+
"@schematics/angular": "^17.3.1",
|
|
49
51
|
"angular-gettext-tools": "2.5.3",
|
|
50
|
-
"autoprefixer": "
|
|
52
|
+
"autoprefixer": "10.4.19",
|
|
51
53
|
"babel-eslint": "10.0.1",
|
|
52
54
|
"babel-loader": "9.1.3",
|
|
53
55
|
"babel-plugin-angularjs-annotate": "0.10.0",
|
|
54
56
|
"chalk": "^4.1.2",
|
|
55
|
-
"copy-webpack-plugin": "
|
|
56
|
-
"cosmiconfig": "
|
|
57
|
+
"copy-webpack-plugin": "12.0.2",
|
|
58
|
+
"cosmiconfig": "9.0.0",
|
|
57
59
|
"cosmiconfig-typescript-loader": "~5.0.0",
|
|
58
|
-
"css-loader": "
|
|
60
|
+
"css-loader": "6.10.0",
|
|
59
61
|
"css-minimizer-webpack-plugin": "^4.0.0",
|
|
60
|
-
"dotenv": "16.
|
|
62
|
+
"dotenv": "16.4.5",
|
|
61
63
|
"file-loader": "^6.2.0",
|
|
62
64
|
"fs-extra": "11.2.0",
|
|
63
65
|
"html-loader": "5.0.0",
|
|
64
|
-
"html-webpack-plugin": "5.
|
|
66
|
+
"html-webpack-plugin": "5.6.0",
|
|
65
67
|
"imports-loader": "^0.8.0",
|
|
66
|
-
"mini-css-extract-plugin": "2.
|
|
68
|
+
"mini-css-extract-plugin": "2.8.1",
|
|
67
69
|
"postcss-loader": "6.1.1",
|
|
68
70
|
"style-loader": "3.3.4",
|
|
69
71
|
"terser-webpack-plugin": "^5.3.3",
|
|
70
72
|
"tslib": "^2.3.1",
|
|
71
73
|
"tslint": "^5.9.1",
|
|
72
|
-
"typescript": "
|
|
74
|
+
"typescript": "5.3.2",
|
|
73
75
|
"unzip-stream": "0.3.1",
|
|
74
|
-
"webpack-dev-middleware": "
|
|
75
|
-
"webpack-hot-middleware": "2.
|
|
76
|
-
"webpack-merge": "^5.
|
|
76
|
+
"webpack-dev-middleware": "7.1.1",
|
|
77
|
+
"webpack-hot-middleware": "2.26.1",
|
|
78
|
+
"webpack-merge": "^5.10.0",
|
|
77
79
|
"webpack-sources": "^3.2.3",
|
|
78
80
|
"zip-dir": "2.0.0",
|
|
79
81
|
"JSONPath": "0.11.2",
|
|
80
82
|
"pofile": "1.0.11",
|
|
81
83
|
"commander": "11.1.0",
|
|
82
|
-
"fast-glob": "3.3.
|
|
84
|
+
"fast-glob": "3.3.2"
|
|
83
85
|
},
|
|
84
86
|
"browserslist": [
|
|
85
87
|
"last 2 major versions"
|
|
@@ -88,13 +90,15 @@
|
|
|
88
90
|
"@types/lodash": "4.14.202",
|
|
89
91
|
"@types/unzip-stream": "0.3.4",
|
|
90
92
|
"@types/node": "18",
|
|
91
|
-
"@types/semver": "^7.
|
|
92
|
-
"@types/webpack": "^5.28.
|
|
93
|
-
"@types/webpack-dev-server": "^4.3.1"
|
|
93
|
+
"@types/semver": "^7.5.7",
|
|
94
|
+
"@types/webpack": "^5.28.5",
|
|
95
|
+
"@types/webpack-dev-server": "^4.3.1",
|
|
96
|
+
"@types/inquirer": "9.0.7",
|
|
97
|
+
"@c8y/options": "1020.0.4"
|
|
94
98
|
},
|
|
95
99
|
"peerDependencies": {
|
|
96
|
-
"@angular-devkit/build-angular": "^
|
|
97
|
-
"@angular-devkit/schematics": "^
|
|
98
|
-
"webpack": "^5.
|
|
100
|
+
"@angular-devkit/build-angular": "^17.3.1",
|
|
101
|
+
"@angular-devkit/schematics": "^17.3.1",
|
|
102
|
+
"webpack": "^5.90.3"
|
|
99
103
|
}
|
|
100
104
|
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Tree } from '@angular-devkit/schematics';
|
|
2
|
-
import { Application } from '../model';
|
|
3
|
-
import { NodeDependencyType } from '@schematics/angular/utility/dependencies';
|
|
4
|
-
export declare const PACKAGE_JSON = "package.json";
|
|
5
|
-
export declare const ANGULAR_JSON = "angular.json";
|
|
6
|
-
interface Dependency {
|
|
7
|
-
name: string;
|
|
8
|
-
version: string;
|
|
9
|
-
type: NodeDependencyType;
|
|
10
|
-
}
|
|
11
|
-
/** Adds a package to the package.json in the given host tree. */
|
|
12
|
-
export declare function addPackageToPackageJson(host: Tree, dependency: Dependency): Tree;
|
|
13
|
-
/** Gets the version of the specified package by looking at the package.json in the given tree. */
|
|
14
|
-
export declare function getPackageVersionFromPackageJson(host: Tree, name: string): string | null;
|
|
15
|
-
/** Add application metadata to the package.json */
|
|
16
|
-
export declare function addApplicationMetadataToPackageJson(host: Tree, application: Application): void;
|
|
17
|
-
export {};
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addApplicationMetadataToPackageJson = exports.getPackageVersionFromPackageJson = exports.addPackageToPackageJson = exports.ANGULAR_JSON = exports.PACKAGE_JSON = void 0;
|
|
4
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
-
const dependencies_1 = require("@schematics/angular/utility/dependencies");
|
|
6
|
-
const utils_1 = require("../utils");
|
|
7
|
-
exports.PACKAGE_JSON = 'package.json';
|
|
8
|
-
exports.ANGULAR_JSON = 'angular.json';
|
|
9
|
-
const APPLICATION_OPTIONS_DEFAULTS = {
|
|
10
|
-
name: 'application',
|
|
11
|
-
contextPath: 'application',
|
|
12
|
-
key: 'application-application-key'
|
|
13
|
-
};
|
|
14
|
-
/** Adds a package to the package.json in the given host tree. */
|
|
15
|
-
function addPackageToPackageJson(host, dependency) {
|
|
16
|
-
if (!host.exists(exports.PACKAGE_JSON)) {
|
|
17
|
-
throw new schematics_1.SchematicsException(`The file ${exports.PACKAGE_JSON} doesn't exists...`);
|
|
18
|
-
}
|
|
19
|
-
const { name, version, type } = dependency;
|
|
20
|
-
const sourceText = host.read(exports.PACKAGE_JSON).toString('utf-8');
|
|
21
|
-
const json = JSON.parse(sourceText);
|
|
22
|
-
switch (type) {
|
|
23
|
-
case dependencies_1.NodeDependencyType.Dev:
|
|
24
|
-
if (!json[dependencies_1.NodeDependencyType.Dev]) {
|
|
25
|
-
json[dependencies_1.NodeDependencyType.Dev] = {};
|
|
26
|
-
}
|
|
27
|
-
if (!json[dependencies_1.NodeDependencyType.Dev][name]) {
|
|
28
|
-
json[dependencies_1.NodeDependencyType.Dev][name] = version;
|
|
29
|
-
json[dependencies_1.NodeDependencyType.Dev] = (0, utils_1.sortObjectByKeys)(json[dependencies_1.NodeDependencyType.Dev]);
|
|
30
|
-
}
|
|
31
|
-
break;
|
|
32
|
-
default:
|
|
33
|
-
if (!json[dependencies_1.NodeDependencyType.Default]) {
|
|
34
|
-
json[dependencies_1.NodeDependencyType.Default] = {};
|
|
35
|
-
}
|
|
36
|
-
if (!json[dependencies_1.NodeDependencyType.Default][name]) {
|
|
37
|
-
json[dependencies_1.NodeDependencyType.Default][name] = version;
|
|
38
|
-
json[dependencies_1.NodeDependencyType.Default] = (0, utils_1.sortObjectByKeys)(json[dependencies_1.NodeDependencyType.Default]);
|
|
39
|
-
}
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
host.overwrite(exports.PACKAGE_JSON, JSON.stringify(json, null, 2));
|
|
43
|
-
return host;
|
|
44
|
-
}
|
|
45
|
-
exports.addPackageToPackageJson = addPackageToPackageJson;
|
|
46
|
-
/** Gets the version of the specified package by looking at the package.json in the given tree. */
|
|
47
|
-
function getPackageVersionFromPackageJson(host, name) {
|
|
48
|
-
if (!host.exists(exports.PACKAGE_JSON)) {
|
|
49
|
-
throw new schematics_1.SchematicsException(`The file ${exports.PACKAGE_JSON} doesn't exists...`);
|
|
50
|
-
}
|
|
51
|
-
const packageJson = JSON.parse(host.read(exports.PACKAGE_JSON).toString('utf8'));
|
|
52
|
-
if (packageJson.dependencies && packageJson.dependencies[name]) {
|
|
53
|
-
return packageJson.dependencies[name];
|
|
54
|
-
}
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
exports.getPackageVersionFromPackageJson = getPackageVersionFromPackageJson;
|
|
58
|
-
/** Add application metadata to the package.json */
|
|
59
|
-
function addApplicationMetadataToPackageJson(host, application) {
|
|
60
|
-
const packageJson = JSON.parse(host.read(exports.PACKAGE_JSON).toString('utf8'));
|
|
61
|
-
packageJson.c8y = {
|
|
62
|
-
application: { ...APPLICATION_OPTIONS_DEFAULTS, ...application }
|
|
63
|
-
};
|
|
64
|
-
host.overwrite(exports.PACKAGE_JSON, JSON.stringify(packageJson, null, 2));
|
|
65
|
-
}
|
|
66
|
-
exports.addApplicationMetadataToPackageJson = addApplicationMetadataToPackageJson;
|
|
67
|
-
//# sourceMappingURL=package-json.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../../../src/schematics/ng-add/configs/package-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,417 +0,0 @@
|
|
|
1
|
-
import { IApplication, VersioningMatrix } from '@c8y/client';
|
|
2
|
-
import type { Pattern } from 'copy-webpack-plugin';
|
|
3
|
-
export interface ApplicationOptions {
|
|
4
|
-
/** Application name (saved to the server). */
|
|
5
|
-
name: string;
|
|
6
|
-
/** Application context path (saved to the server). */
|
|
7
|
-
contextPath: string;
|
|
8
|
-
/** Application key (saved to the server). */
|
|
9
|
-
key: string;
|
|
10
|
-
/** The version of the application */
|
|
11
|
-
version: string;
|
|
12
|
-
/** The version of the used WebSDK version */
|
|
13
|
-
webSdkVersion?: string;
|
|
14
|
-
/** The description of the application */
|
|
15
|
-
description?: string;
|
|
16
|
-
/** The author of the application */
|
|
17
|
-
author?: string;
|
|
18
|
-
/** The license of the application */
|
|
19
|
-
license?: string;
|
|
20
|
-
/**
|
|
21
|
-
* Set to `true` if the application is hybrid and uses Angular and AngularJS simultaneously.
|
|
22
|
-
*/
|
|
23
|
-
upgrade?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Path to the branding entry file. (Set it to false to disable any styling. You can handle the styling then on your own e.g. in an angular.json file using ng-cli)
|
|
26
|
-
*/
|
|
27
|
-
brandingEntry?: string | boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Path to tsconfig.json file if TypeScript is used (default: ./tsconfig.json).
|
|
30
|
-
* @deprecated: Configure this in the build options of the angular.json
|
|
31
|
-
*/
|
|
32
|
-
tsConfigPath?: string;
|
|
33
|
-
/**
|
|
34
|
-
* Entry module for Angular compiler (only used with lazy loaded routes), e.g. `'app.module.ts#AppModule'`.
|
|
35
|
-
* @deprecated: Configure this in the build options of the angular.json
|
|
36
|
-
*/
|
|
37
|
-
entryModule?: string;
|
|
38
|
-
/**
|
|
39
|
-
* Path to custom index.html (otherwise default one will be used).
|
|
40
|
-
* @deprecated: Configure this in the build options of the angular.json
|
|
41
|
-
*/
|
|
42
|
-
indexTemplate?: string;
|
|
43
|
-
/** URL to dynamically fetched options. */
|
|
44
|
-
dynamicOptionsUrl?: string;
|
|
45
|
-
/** URL to favicon. */
|
|
46
|
-
faviconUrl?: string;
|
|
47
|
-
/** URL to *.css file which will replace default branding. */
|
|
48
|
-
brandingUrl?: string;
|
|
49
|
-
/** Object with properties that will be converted to CSS custom variables. */
|
|
50
|
-
brandingCssVars?: BrandingCssVars;
|
|
51
|
-
/**
|
|
52
|
-
* Allows for adding or overriding languages available in the application.
|
|
53
|
-
*
|
|
54
|
-
* Its keys are language codes and its values are objects with the following properties:
|
|
55
|
-
*
|
|
56
|
-
* - `name`: English name of the language,
|
|
57
|
-
* - `nativeName`: native name of the language,
|
|
58
|
-
* - `url`: full URL to JSON file with compiled translations;
|
|
59
|
-
* if not defined, translations will be loaded from `${localePath}/${langCode}.json`.
|
|
60
|
-
*
|
|
61
|
-
* Example:
|
|
62
|
-
* ```json
|
|
63
|
-
* "languages": {
|
|
64
|
-
* "de": {
|
|
65
|
-
* "name": "German",
|
|
66
|
-
* "nativeName": "Deutsch",
|
|
67
|
-
* "url": "/apps/public/ui-assets/de.json"
|
|
68
|
-
* }
|
|
69
|
-
* }
|
|
70
|
-
* ```
|
|
71
|
-
*/
|
|
72
|
-
languages?: Languages;
|
|
73
|
-
/**
|
|
74
|
-
* Allows for adding custom translations. It is an optional property.
|
|
75
|
-
*
|
|
76
|
-
* Its keys are language codes (https://cumulocity.com/docs/section/getting_started/#a-name-languages-a-available-languages)
|
|
77
|
-
* and its values are objects with key-value pairs, where the key is the original string in English and the value - its translation.
|
|
78
|
-
*
|
|
79
|
-
* - `Home`: "Startseite"
|
|
80
|
-
*
|
|
81
|
-
* For example, you can add the translation of your custom cookie banner configured in the branding settings:
|
|
82
|
-
* ```json
|
|
83
|
-
* "i18nExtra": {
|
|
84
|
-
* "de": {
|
|
85
|
-
* "About cookies on Cumulocity IoT": "Informationen zu Cookies in Cumulocity IoT",
|
|
86
|
-
* "Click Agree and Proceed to accept cookies and go directly to the platform or click on Privacy Policy to see detailed descriptions of the used cookies.": "Klicken Sie auf Zustimmen und fortfahren, um Cookies zu akzeptieren und direkt zur Plattform zu gelangen, oder klicken Sie auf Datenschutzrichtlinie, um detaillierte Beschreibungen der verwendeten Cookies anzuzeigen."
|
|
87
|
-
* }
|
|
88
|
-
* }
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
i18nExtra?: I18nExtra;
|
|
92
|
-
/**
|
|
93
|
-
* Path to the folder from which *.po files will be loaded.
|
|
94
|
-
* @deprecated: Configure this in the BuildTimeOptions.
|
|
95
|
-
*/
|
|
96
|
-
localePath?: string;
|
|
97
|
-
/** Array of URLs to additional *.css files to be loaded at runtime. */
|
|
98
|
-
extraCssUrls?: string[];
|
|
99
|
-
/** Documentation links settings. */
|
|
100
|
-
docs?: Docs;
|
|
101
|
-
/** Application icon to be displayed in app switcher and header bar. */
|
|
102
|
-
icon?: Icon;
|
|
103
|
-
/** Hide application in app switcher (saved to the server). */
|
|
104
|
-
noAppSwitcher?: boolean;
|
|
105
|
-
/** HTML page title. */
|
|
106
|
-
globalTitle?: string;
|
|
107
|
-
/** Hide "powered by" and version info at the bottom of the navigator and in the right drawer. */
|
|
108
|
-
hidePowered?: boolean;
|
|
109
|
-
/** Hides the header bar */
|
|
110
|
-
hideHeader?: boolean;
|
|
111
|
-
/** Hides the "Platform information" in the right drawer, will overrule the "hidePowered" option */
|
|
112
|
-
hidePlatformInformation?: boolean;
|
|
113
|
-
/** Shows the link to support page. Accepts values:
|
|
114
|
-
* false, hide the link
|
|
115
|
-
* string, value of url to be shown
|
|
116
|
-
*/
|
|
117
|
-
supportUrl?: boolean | string;
|
|
118
|
-
/**
|
|
119
|
-
* Replacement string for `user` field in audit logs for actions performed by a support user
|
|
120
|
-
* (available placeholders: `{{support_user}}`, `{{supported_user}}`).
|
|
121
|
-
*/
|
|
122
|
-
supportUserString?: string;
|
|
123
|
-
/**
|
|
124
|
-
* Disables realtime updates on the map widget and maps in general.
|
|
125
|
-
*/
|
|
126
|
-
mapWidgetRealtimeDisabled?: boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Allows to adjust the default pagesize of 100 items of the map widget and maps in general.
|
|
129
|
-
*/
|
|
130
|
-
mapWidgetPageSize?: number;
|
|
131
|
-
/**
|
|
132
|
-
* Allows to hide the hint that there are more devices with geo coordinates then displayed on the map widget and maps in general.
|
|
133
|
-
*/
|
|
134
|
-
mapWidgetHideMaxDeviceOnMapHint?: boolean;
|
|
135
|
-
/** Enable or disable the right drawer. */
|
|
136
|
-
rightDrawer?: boolean;
|
|
137
|
-
/** Enable or disable breadcrumbs in the header for groups and devices (default: false). */
|
|
138
|
-
breadcrumbs?: boolean;
|
|
139
|
-
/** Collapse navigator on initial load. */
|
|
140
|
-
hideNavigator?: boolean;
|
|
141
|
-
/** Show tabs horizontally or vertically. */
|
|
142
|
-
tabsHorizontal?: boolean;
|
|
143
|
-
/** Additional link to display on login screen. */
|
|
144
|
-
loginExtraLink?: LoginExtraLink | LoginExtraLink[];
|
|
145
|
-
/** Enable or disable storage limitation feature. */
|
|
146
|
-
storageLimitationFeatureEnabled?: boolean;
|
|
147
|
-
/** Name of company handling support requests from app users (displayed in notification message). */
|
|
148
|
-
companyName?: string;
|
|
149
|
-
/** URL template for documentation links (default: `'${docsBaseUrl}${partialUrl}'`). */
|
|
150
|
-
guideHrefTemplate?: string;
|
|
151
|
-
/** Base URL for documentation links (include `{{ version }}` placeholder, if you want versioned links). */
|
|
152
|
-
docsBaseUrl?: string;
|
|
153
|
-
/** CSP string to be applied to `index.html` by replacing default values. */
|
|
154
|
-
contentSecurityPolicy?: string;
|
|
155
|
-
/** Enables cloud sensor wizard */
|
|
156
|
-
sensorPhone?: boolean;
|
|
157
|
-
/** Show or hide a newsletter subscription checkbox in edit user modal. */
|
|
158
|
-
newsletter?: boolean;
|
|
159
|
-
/** Cookie Banner configuration */
|
|
160
|
-
cookieBanner?: CookieBannerConfiguration;
|
|
161
|
-
/** Cookie preferences configuration. Here you can enable or disable cookie categories */
|
|
162
|
-
cookiePreferences?: CookiePreferencesConfiguration;
|
|
163
|
-
/** A key for the product experience software Gainsight. */
|
|
164
|
-
gainsightKey?: string;
|
|
165
|
-
/** Disable user tracking */
|
|
166
|
-
disableTracking?: boolean;
|
|
167
|
-
/** NgModule export for plugins. */
|
|
168
|
-
exports?: PluginsExports[];
|
|
169
|
-
/** List of imported remote plugins. */
|
|
170
|
-
remotes?: RemotePlugins;
|
|
171
|
-
/**
|
|
172
|
-
* Defines if the application is a package. Packages can be distributed as blueprint or allow plugins.
|
|
173
|
-
*/
|
|
174
|
-
isPackage?: boolean;
|
|
175
|
-
/**
|
|
176
|
-
* Defines what is contained in the package.
|
|
177
|
-
*/
|
|
178
|
-
package?: 'plugin' | 'blueprint';
|
|
179
|
-
/** The package source a application origins from as IApplication or simply the id of the source */
|
|
180
|
-
source?: string | number | IApplication;
|
|
181
|
-
/**
|
|
182
|
-
* Additional assets to copy to the build output.
|
|
183
|
-
* See https://github.com/webpack-contrib/copy-webpack-plugin for more information
|
|
184
|
-
* about the patterns to add here.
|
|
185
|
-
* @deprecated: Configure this in the BuildTimeOptions.
|
|
186
|
-
*/
|
|
187
|
-
copy?: Pattern[];
|
|
188
|
-
/**
|
|
189
|
-
* Allows to enable or disable context help, or to override the default base URL used to load its contents.
|
|
190
|
-
* By default, the context help uses the same base URL as defined in the `docsBaseUrl` option
|
|
191
|
-
* (if this option is undefined, then the following value will be used: `https://www.cumulocity.com`).
|
|
192
|
-
* Alternatively, if a string is provided here, it'll be used as the base URL
|
|
193
|
-
* and any `{{ version }}` placeholder will be replaced with the relevant docs version.
|
|
194
|
-
*/
|
|
195
|
-
contextHelp?: boolean | string;
|
|
196
|
-
/**
|
|
197
|
-
* By default, cockpit and devicemanagement use the onlyRoots query to resolve root nodes. This
|
|
198
|
-
* could lead to performance issues, if a customer has a lot of root nodes. Therefore you can disable
|
|
199
|
-
* the use of this query with this flag.
|
|
200
|
-
*/
|
|
201
|
-
disableOnlyRootsQuery?: boolean;
|
|
202
|
-
/**
|
|
203
|
-
* Allows to force showing the setup wizard.
|
|
204
|
-
*/
|
|
205
|
-
forceSetup?: boolean;
|
|
206
|
-
/**
|
|
207
|
-
* Indicates if the application needs to show the setup wizard.
|
|
208
|
-
*/
|
|
209
|
-
isSetup?: boolean;
|
|
210
|
-
/**
|
|
211
|
-
* By default a WebSDK app requires the user to be logged in.
|
|
212
|
-
* In case you would like to develop just a static application, that does not require any kind of access to the backend,
|
|
213
|
-
* you can use this flag to disable the login screen.
|
|
214
|
-
* NOTE: not all WebSDK components support this, some might require the user to be logged in and won't work.
|
|
215
|
-
*/
|
|
216
|
-
noLogin?: boolean;
|
|
217
|
-
/**
|
|
218
|
-
* Allows to opt out of supporting/loading plugins for this application.
|
|
219
|
-
*/
|
|
220
|
-
noPlugins?: boolean;
|
|
221
|
-
/**
|
|
222
|
-
* Allows to opt out of the version warning which is shown in the dev tools.
|
|
223
|
-
*/
|
|
224
|
-
noVersionWarning?: boolean;
|
|
225
|
-
/**
|
|
226
|
-
* Link to the sensor app.
|
|
227
|
-
*/
|
|
228
|
-
sensorAppOneLink?: string;
|
|
229
|
-
/**
|
|
230
|
-
* Allows to set the map layers. If not set, defaults to open street map layer.
|
|
231
|
-
*/
|
|
232
|
-
mapLayers?: MapTileLayer[];
|
|
233
|
-
/**
|
|
234
|
-
* Allows to set default configurations on the maps.
|
|
235
|
-
*/
|
|
236
|
-
mapConfig?: MapDefaultConfig;
|
|
237
|
-
/**
|
|
238
|
-
* The URL used to lookup geo coordinates for a user provided address via [nominatim API](https://nominatim.org/release-docs/develop/api/Search/).
|
|
239
|
-
* Can be set to empty to disable the find address feature on the location tab.
|
|
240
|
-
* Uses: `https://nominatim.openstreetmap.org/search?format=json&q={searchTerm}` if not set.
|
|
241
|
-
*/
|
|
242
|
-
mapNominatimUrl?: string;
|
|
243
|
-
/**
|
|
244
|
-
* The name of the root element. By default c8y-bootstrap.
|
|
245
|
-
*/
|
|
246
|
-
rootTagName?: string;
|
|
247
|
-
/**
|
|
248
|
-
* A matrix of versions indicating which versions of the application (key) are dependent on which version of a cumulocity component (API version and Web SDK version of the shell application currently supported, indicated by the value).
|
|
249
|
-
* The versions of the dependent components can be indicated by a semver range.
|
|
250
|
-
* ```json
|
|
251
|
-
* {
|
|
252
|
-
* "1.0.0": {
|
|
253
|
-
* "sdk": ">=1016.0.0 <1017.0.0",
|
|
254
|
-
* "api": ">=1016.0.0 <1017.0.0"
|
|
255
|
-
* },
|
|
256
|
-
* "2.0.0": {
|
|
257
|
-
* "sdk": "~1017.0.0",
|
|
258
|
-
* "api": "~1017.0.0"
|
|
259
|
-
* },
|
|
260
|
-
* "3.0.0": {
|
|
261
|
-
* "sdk": ">=1018.0.0",
|
|
262
|
-
* "api": ">=1018.0.0"
|
|
263
|
-
* },
|
|
264
|
-
* }
|
|
265
|
-
* ```
|
|
266
|
-
*/
|
|
267
|
-
versioningMatrix?: VersioningMatrix;
|
|
268
|
-
}
|
|
269
|
-
export interface MapDefaultConfig {
|
|
270
|
-
/**
|
|
271
|
-
* The default zoom level to set on each new map.
|
|
272
|
-
*/
|
|
273
|
-
zoomLevel?: number;
|
|
274
|
-
/**
|
|
275
|
-
* The default center position of each new map.
|
|
276
|
-
*/
|
|
277
|
-
center?: [number, number];
|
|
278
|
-
}
|
|
279
|
-
export interface MapTileLayer {
|
|
280
|
-
/**
|
|
281
|
-
* The layer url in the specific leaflet format.
|
|
282
|
-
*/
|
|
283
|
-
layerUrl: string;
|
|
284
|
-
/**
|
|
285
|
-
* Additional options. Note this options are not typed as leaflet should not be by default included. The type from leaflet is L.TileLayerOptions.
|
|
286
|
-
*/
|
|
287
|
-
options: any;
|
|
288
|
-
/**
|
|
289
|
-
* A label to show to the end user.
|
|
290
|
-
*/
|
|
291
|
-
label: string;
|
|
292
|
-
/**
|
|
293
|
-
* Define the order of the layers to be shown to the user. Highest priority first.
|
|
294
|
-
*/
|
|
295
|
-
priority?: number;
|
|
296
|
-
/**
|
|
297
|
-
* Indicates whether the layer is an overlay layer or an base layer. Default is false.
|
|
298
|
-
*/
|
|
299
|
-
isOverlay?: boolean;
|
|
300
|
-
}
|
|
301
|
-
export interface RemotePlugins {
|
|
302
|
-
/**
|
|
303
|
-
* A key value pair, while the value is an array of modules to load and the
|
|
304
|
-
* key is the context path.
|
|
305
|
-
* ```js
|
|
306
|
-
* {
|
|
307
|
-
* 'cockpit': ['HomeDashboardModule', 'DataExplorerDashboard'],
|
|
308
|
-
* 'widget-package@1.0.0': ['ExtendedMapWidget']
|
|
309
|
-
* }
|
|
310
|
-
* ``
|
|
311
|
-
*/
|
|
312
|
-
[key: string]: string[];
|
|
313
|
-
}
|
|
314
|
-
export interface PluginsExports {
|
|
315
|
-
/**
|
|
316
|
-
* The name of the plugin.
|
|
317
|
-
*/
|
|
318
|
-
name: string;
|
|
319
|
-
/**
|
|
320
|
-
* The name of the Angular module class.
|
|
321
|
-
*/
|
|
322
|
-
module: string;
|
|
323
|
-
/**
|
|
324
|
-
* The file path to the module typescript file.
|
|
325
|
-
*/
|
|
326
|
-
path: string;
|
|
327
|
-
/**
|
|
328
|
-
* An short description about what the module does.
|
|
329
|
-
*/
|
|
330
|
-
description?: string;
|
|
331
|
-
/**
|
|
332
|
-
* Allows to scope the plugin to certain applications.
|
|
333
|
-
* Default is undefined, which means every application can import this plugin.
|
|
334
|
-
* - Use `self` to limit the plugin to the current application.
|
|
335
|
-
* - The `global` is atm not used, but planned for allowing this plugin to all applications at the same time.
|
|
336
|
-
* - The `self-optional` is used to add it as a possible plugin to the current application, without it being imported by default.
|
|
337
|
-
*/
|
|
338
|
-
scope?: (typeof PluginsExportScopes)[keyof typeof PluginsExportScopes];
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Tells how a plugin is scoped.
|
|
342
|
-
*/
|
|
343
|
-
export declare enum PluginsExportScopes {
|
|
344
|
-
/**
|
|
345
|
-
* Limit the plugin to the current application. It is imported by default.
|
|
346
|
-
*/
|
|
347
|
-
SELF = "self",
|
|
348
|
-
/**
|
|
349
|
-
* Allows to add the plugin to a global scope, meaning it is imported to all applications at the same time.
|
|
350
|
-
* This is not used at the moment but planned to be implemented in the new branding editor.
|
|
351
|
-
*/
|
|
352
|
-
GLOBAL = "global",
|
|
353
|
-
/**
|
|
354
|
-
* Limit the plugin to the current application. The plugin is not imported by default.
|
|
355
|
-
*/
|
|
356
|
-
SELF_OPTIONAL = "self-optional",
|
|
357
|
-
/**
|
|
358
|
-
* Like undefined the plugin is available for any private application.
|
|
359
|
-
*/
|
|
360
|
-
DEFAULT = ""
|
|
361
|
-
}
|
|
362
|
-
export interface CookieBannerConfiguration {
|
|
363
|
-
/** Here you can set the title of Cookie Banner */
|
|
364
|
-
cookieBannerTitle?: string;
|
|
365
|
-
/** Here you can set the Text of Cookie Banner */
|
|
366
|
-
cookieBannerText?: string;
|
|
367
|
-
/** Here you can set the policyUrl of Cookie Banner */
|
|
368
|
-
policyUrl?: string;
|
|
369
|
-
}
|
|
370
|
-
export interface CookiePreferencesConfiguration {
|
|
371
|
-
/** This category includes e.g. cookies related to logging in */
|
|
372
|
-
required?: boolean | string;
|
|
373
|
-
/** This category includes e.g. tracking cookies */
|
|
374
|
-
functional?: boolean | string;
|
|
375
|
-
/** This category includes e.g. cookies related to advertising */
|
|
376
|
-
marketing?: boolean | string;
|
|
377
|
-
}
|
|
378
|
-
export interface LoginExtraLink {
|
|
379
|
-
url: string;
|
|
380
|
-
label: string;
|
|
381
|
-
}
|
|
382
|
-
export interface Icon {
|
|
383
|
-
class?: string;
|
|
384
|
-
url?: string;
|
|
385
|
-
}
|
|
386
|
-
export interface Docs {
|
|
387
|
-
/** Hide default links to documentation. */
|
|
388
|
-
noDefault?: boolean;
|
|
389
|
-
/** List of regex strings. Matching default docs URLs will be hidden. */
|
|
390
|
-
excludeDefault?: string[];
|
|
391
|
-
/** Additional links to be displayed. */
|
|
392
|
-
links?: Links[];
|
|
393
|
-
}
|
|
394
|
-
export interface Links {
|
|
395
|
-
/** Icon classes with `c8y-icon`, e.g. `c8y-icon c8y-icon-add-user` or `c8y-icon c8y-icon-device-connect`. */
|
|
396
|
-
icon: string;
|
|
397
|
-
label: string;
|
|
398
|
-
url: string;
|
|
399
|
-
type: 'doc' | 'quicklink';
|
|
400
|
-
}
|
|
401
|
-
export interface I18nExtra {
|
|
402
|
-
[langCode: string]: I18nExtraLangCode;
|
|
403
|
-
}
|
|
404
|
-
export interface I18nExtraLangCode {
|
|
405
|
-
[key: string]: string;
|
|
406
|
-
}
|
|
407
|
-
export interface Languages {
|
|
408
|
-
[langCode: string]: LanguagesLangCode;
|
|
409
|
-
}
|
|
410
|
-
export interface LanguagesLangCode {
|
|
411
|
-
name: string;
|
|
412
|
-
nativeName: string;
|
|
413
|
-
url?: string;
|
|
414
|
-
}
|
|
415
|
-
export interface BrandingCssVars {
|
|
416
|
-
[key: string]: string;
|
|
417
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PluginsExportScopes = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Tells how a plugin is scoped.
|
|
6
|
-
*/
|
|
7
|
-
var PluginsExportScopes;
|
|
8
|
-
(function (PluginsExportScopes) {
|
|
9
|
-
/**
|
|
10
|
-
* Limit the plugin to the current application. It is imported by default.
|
|
11
|
-
*/
|
|
12
|
-
PluginsExportScopes["SELF"] = "self";
|
|
13
|
-
/**
|
|
14
|
-
* Allows to add the plugin to a global scope, meaning it is imported to all applications at the same time.
|
|
15
|
-
* This is not used at the moment but planned to be implemented in the new branding editor.
|
|
16
|
-
*/
|
|
17
|
-
PluginsExportScopes["GLOBAL"] = "global";
|
|
18
|
-
/**
|
|
19
|
-
* Limit the plugin to the current application. The plugin is not imported by default.
|
|
20
|
-
*/
|
|
21
|
-
PluginsExportScopes["SELF_OPTIONAL"] = "self-optional";
|
|
22
|
-
/**
|
|
23
|
-
* Like undefined the plugin is available for any private application.
|
|
24
|
-
*/
|
|
25
|
-
PluginsExportScopes["DEFAULT"] = "";
|
|
26
|
-
})(PluginsExportScopes = exports.PluginsExportScopes || (exports.PluginsExportScopes = {}));
|
|
27
|
-
//# sourceMappingURL=ApplicationOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationOptions.js","sourceRoot":"","sources":["../../../src/webpack/ApplicationOptions.ts"],"names":[],"mappings":";;;AAgWA;;GAEG;AACH,IAAY,mBAkBX;AAlBD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,oCAAa,CAAA;IACb;;;OAGG;IACH,wCAAiB,CAAA;IACjB;;OAEG;IACH,sDAA+B,CAAA;IAC/B;;OAEG;IACH,mCAAY,CAAA;AACd,CAAC,EAlBW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAkB9B"}
|