@contrail/cli 3.3.1 → 3.3.3
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/README.md +1 -1
- package/dist/auth/login.js +8 -0
- package/dist/commands/app/extension/deploy.js +4 -2
- package/dist/commands/types/uploadUsageInfo.js +14 -2
- package/dist/helpers/app/extension-package-deployer.js +1 -1
- package/dist/helpers/config/config.js +3 -3
- package/dist/helpers/types/type-uploader.js +7 -0
- package/dist/interfaces.d.ts +1 -0
- package/dist/templates/typescript/README.md +3 -1
- package/dist/templates/typescript/assets/sample.json +1 -1
- package/dist/templates/typescript/eslintrc.json +1 -4
- package/dist/templates/typescript/tsconfig.json +5 -21
- package/oclif.manifest.json +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ $ npm install -g @contrail/cli
|
|
|
17
17
|
$ contrail COMMAND
|
|
18
18
|
running command...
|
|
19
19
|
$ contrail (--version)
|
|
20
|
-
@contrail/cli/3.3.
|
|
20
|
+
@contrail/cli/3.3.3 darwin-arm64 node-v20.19.4
|
|
21
21
|
$ contrail --help [COMMAND]
|
|
22
22
|
USAGE
|
|
23
23
|
$ contrail COMMAND
|
package/dist/auth/login.js
CHANGED
|
@@ -40,6 +40,10 @@ async function authUser() {
|
|
|
40
40
|
return await refreshCurrentUserOrg();
|
|
41
41
|
}
|
|
42
42
|
catch (e) {
|
|
43
|
+
if (isNetworkConnectionError(e)) {
|
|
44
|
+
logger_1.default.error("Encountered a network connection issue. Please ensure you're connected to the internet and try again");
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
43
47
|
logger_1.default.info('Token expired. Requesting auth credentials...');
|
|
44
48
|
}
|
|
45
49
|
}
|
|
@@ -211,3 +215,7 @@ async function returnAndStoreConfig(config) {
|
|
|
211
215
|
await (0, config_1.storeConfig)(configCopy);
|
|
212
216
|
return configCopy;
|
|
213
217
|
}
|
|
218
|
+
function isNetworkConnectionError(e) {
|
|
219
|
+
const cause = e?.cause;
|
|
220
|
+
return cause?.code === 'ENOTFOUND' || cause?.code === 'ECONNREFUSED';
|
|
221
|
+
}
|
|
@@ -40,10 +40,12 @@ class DeployExtension extends basecommand_1.BaseCommand {
|
|
|
40
40
|
await this.validateExtensionDeclaration(appDeclaration, extensionIdentifier);
|
|
41
41
|
const extensionDir = this.getExtensionDirectory(extensionIdentifier);
|
|
42
42
|
// 2. Package and upload extension
|
|
43
|
-
const createdPackage = await (0, extension_package_deployer_1.createExtensionPackage)(app.id, extensionDir, {
|
|
43
|
+
const createdPackage = await (0, extension_package_deployer_1.createExtensionPackage)(app.id, extensionDir, {
|
|
44
|
+
debug: this.flags.debug,
|
|
45
|
+
});
|
|
44
46
|
// 3. Poll until package is ready (timeout after 1 minute)
|
|
45
47
|
const readyPackage = await this.pollUntilPackageIsReady(createdPackage);
|
|
46
|
-
logger_1.default.info(
|
|
48
|
+
logger_1.default.info('Extension package is ready...Checking for extension deployment');
|
|
47
49
|
logger_1.default.debug(JSON.stringify(readyPackage, null, 2));
|
|
48
50
|
const deployment = await this.pollUntilDeploymentIsReady(readyPackage.deploymentId);
|
|
49
51
|
logger_1.default.info(`${chalk_1.default.green.bold('SUCCESS')} Extension package is ready.`);
|
|
@@ -115,8 +115,20 @@ async function uploadUsageInfoObjects(loadedUsageInfo) {
|
|
|
115
115
|
entityName: 'type-property-usage-info',
|
|
116
116
|
id: found.id,
|
|
117
117
|
object: {
|
|
118
|
-
editable: loadedUI
|
|
119
|
-
used: loadedUI
|
|
118
|
+
editable: loadedUI?.editable,
|
|
119
|
+
used: loadedUI?.used,
|
|
120
|
+
formulaFunction: loadedUI?.formulaFunction,
|
|
121
|
+
validationFunction: loadedUI?.validationFunction,
|
|
122
|
+
numberFormat: loadedUI?.numberFormat,
|
|
123
|
+
defaultValue: loadedUI?.defaultValue,
|
|
124
|
+
label: loadedUI?.label,
|
|
125
|
+
required: loadedUI?.required,
|
|
126
|
+
searchable: loadedUI?.searchable,
|
|
127
|
+
isUniqueProperty: loadedUI?.isUniqueProperty,
|
|
128
|
+
isUniquePropertyInFamily: loadedUI?.isUniquePropertyInFamily,
|
|
129
|
+
copyBehavior: loadedUI?.copyBehavior,
|
|
130
|
+
copyDefault: loadedUI?.copyDefault,
|
|
131
|
+
propertyLevel: loadedUI?.propertyLevel,
|
|
120
132
|
},
|
|
121
133
|
});
|
|
122
134
|
}
|
|
@@ -119,7 +119,7 @@ async function createExtensionPackage(appId, extensionDir, options) {
|
|
|
119
119
|
await uploadExtensionPackage(appExtensionPackage, tmpDir, options);
|
|
120
120
|
logger_1.default.info(`${chalk_1.default.green.bold('COMPLETE')} Extension packaged and uploaded.`);
|
|
121
121
|
if (options.debug) {
|
|
122
|
-
logger_1.default.debug(
|
|
122
|
+
logger_1.default.debug('debug mode enabled. Not cleaning up tmp dir.');
|
|
123
123
|
}
|
|
124
124
|
else {
|
|
125
125
|
cleanUp(tmpDir);
|
|
@@ -103,13 +103,13 @@ exports.writeConfig = writeConfig;
|
|
|
103
103
|
async function getConfig() {
|
|
104
104
|
let fileContent;
|
|
105
105
|
try {
|
|
106
|
-
fileContent =
|
|
106
|
+
fileContent = (await node_fs_1.promises.readFile(configFileLocation)).toString();
|
|
107
107
|
}
|
|
108
108
|
catch {
|
|
109
109
|
logger_1.default.debug(`failed to open config file (${configFileLocation}) for reading.`);
|
|
110
110
|
logger_1.default.debug('trying to initialize config file');
|
|
111
111
|
await initializeVibeIQConfig();
|
|
112
|
-
fileContent =
|
|
112
|
+
fileContent = (await node_fs_1.promises.readFile(configFileLocation)).toString();
|
|
113
113
|
}
|
|
114
114
|
try {
|
|
115
115
|
const configFileJSON = JSON.parse(fileContent);
|
|
@@ -156,7 +156,7 @@ async function getConfigContent(fileName) {
|
|
|
156
156
|
const configFilePath = (0, node_path_1.join)(configDirectoryLocation, `${fileName}.json`);
|
|
157
157
|
let fileContent;
|
|
158
158
|
try {
|
|
159
|
-
fileContent =
|
|
159
|
+
fileContent = (await node_fs_1.promises.readFile(configFilePath)).toString();
|
|
160
160
|
return JSON.parse(fileContent);
|
|
161
161
|
}
|
|
162
162
|
catch (error) {
|
|
@@ -188,6 +188,7 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
|
|
|
188
188
|
validationFunction: newPropertyType.validationFunction,
|
|
189
189
|
numberFormat: newPropertyType.numberFormat,
|
|
190
190
|
sequenceSeedValue: newPropertyType.sequenceSeedValue,
|
|
191
|
+
copyBehavior: newPropertyType?.copyBehavior,
|
|
191
192
|
}),
|
|
192
193
|
headers: {
|
|
193
194
|
Accept: 'application/json',
|
|
@@ -199,6 +200,11 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
|
|
|
199
200
|
// !newPropertyType.inherited &&
|
|
200
201
|
// !typePropertiesEqual(found, newPropertyType, optionSetIdBySlug)
|
|
201
202
|
) {
|
|
203
|
+
// Skip platform-managed entities
|
|
204
|
+
if (newPropertyType.core) {
|
|
205
|
+
logger_1.default.debug(`Skipping platform-managed property: ${newPropertyType.slug}`);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
202
208
|
const proposedTP = {
|
|
203
209
|
isArchived: newPropertyType.isArchived ?? null,
|
|
204
210
|
propertyType: newPropertyType.propertyType ?? null,
|
|
@@ -223,6 +229,7 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
|
|
|
223
229
|
validationFunction: newPropertyType.validationFunction ?? null,
|
|
224
230
|
numberFormat: newPropertyType.numberFormat ?? null,
|
|
225
231
|
sequenceSeedValue: newPropertyType.sequenceSeedValue ?? null,
|
|
232
|
+
copyBehavior: newPropertyType.copyBehavior ?? null,
|
|
226
233
|
};
|
|
227
234
|
// logger.debug(
|
|
228
235
|
// `found type property option set: ${newPropertyType.typePropertyOptionSetSlug}, ${proposedTP.typePropertyOptionSetId}, `,
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
### Running your app
|
|
2
|
+
|
|
2
3
|
Run `npm run start` at the root directory of your app (where the `package.json` file is located).
|
|
3
4
|
|
|
4
5
|
### Publishing your app
|
|
5
|
-
|
|
6
|
+
|
|
7
|
+
Run `contrail app publish` to publish a new version of the app.
|
|
@@ -25,10 +25,7 @@
|
|
|
25
25
|
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0 }],
|
|
26
26
|
"no-trailing-spaces": "error",
|
|
27
27
|
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
|
|
28
|
-
"@typescript-eslint/no-empty-function": [
|
|
29
|
-
"error",
|
|
30
|
-
{ "allow": ["arrowFunctions"] }
|
|
31
|
-
],
|
|
28
|
+
"@typescript-eslint/no-empty-function": ["error", { "allow": ["arrowFunctions"] }],
|
|
32
29
|
"@typescript-eslint/no-explicit-any": "off",
|
|
33
30
|
"@typescript-eslint/no-var-requires": "warn",
|
|
34
31
|
"no-unused-vars": "off",
|
|
@@ -4,15 +4,7 @@
|
|
|
4
4
|
"emitDecoratorMetadata": true,
|
|
5
5
|
"esModuleInterop": true,
|
|
6
6
|
"experimentalDecorators": true,
|
|
7
|
-
"lib": [
|
|
8
|
-
"es5",
|
|
9
|
-
"ES2015",
|
|
10
|
-
"ES2016",
|
|
11
|
-
"ES2017",
|
|
12
|
-
"ES2020",
|
|
13
|
-
"dom",
|
|
14
|
-
"esnext.asynciterable"
|
|
15
|
-
],
|
|
7
|
+
"lib": ["es5", "ES2015", "ES2016", "ES2017", "ES2020", "dom", "esnext.asynciterable"],
|
|
16
8
|
"module": "CommonJS",
|
|
17
9
|
// "moduleResolution": "node",
|
|
18
10
|
"noImplicitAny": false,
|
|
@@ -22,16 +14,8 @@
|
|
|
22
14
|
"strict": false,
|
|
23
15
|
"strictPropertyInitialization": false,
|
|
24
16
|
"target": "ES2020",
|
|
25
|
-
"types": [
|
|
26
|
-
"node", "jest"
|
|
27
|
-
]
|
|
17
|
+
"types": ["node", "jest"]
|
|
28
18
|
},
|
|
29
|
-
"exclude": [
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
],
|
|
33
|
-
"include": [
|
|
34
|
-
"src",
|
|
35
|
-
"package.json"
|
|
36
|
-
]
|
|
37
|
-
}
|
|
19
|
+
"exclude": ["node_modules", "**/__tests__/*"],
|
|
20
|
+
"include": ["src", "package.json"]
|
|
21
|
+
}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contrail/cli",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.3",
|
|
4
4
|
"description": "VibeIQ's Contrail Platform CLI.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"contrail-cli": "./bin/run",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@contrail/entity-types": "^1.3.0",
|
|
26
|
-
"@contrail/org-config-migration": "^1.1.
|
|
26
|
+
"@contrail/org-config-migration": "^1.1.6",
|
|
27
27
|
"@contrail/sdk": "^1.4.6",
|
|
28
28
|
"@contrail/types": "^3.0.48",
|
|
29
29
|
"@contrail/util": "^1.1.10",
|