@interopio/iocd-cli 0.0.1 → 0.0.2
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/commands/license.command.d.ts.map +1 -1
- package/dist/commands/license.command.js +63 -11
- package/dist/commands/license.command.js.map +1 -1
- package/dist/services/create.service.d.ts +1 -1
- package/dist/services/create.service.d.ts.map +1 -1
- package/dist/services/create.service.js +18 -14
- package/dist/services/create.service.js.map +1 -1
- package/dist/services/installer/prerequisites.js +3 -3
- package/dist/services/installer/prerequisites.js.map +1 -1
- package/dist/services/license.service.d.ts +101 -3
- package/dist/services/license.service.d.ts.map +1 -1
- package/dist/services/license.service.js +166 -6
- package/dist/services/license.service.js.map +1 -1
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.command.d.ts","sourceRoot":"","sources":["../../src/commands/license.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"license.command.d.ts","sourceRoot":"","sources":["../../src/commands/license.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,cAAc,SACkB,CAAC"}
|
|
@@ -1,23 +1,75 @@
|
|
|
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.licenseCommand = void 0;
|
|
4
40
|
const commander_1 = require("commander");
|
|
5
41
|
const logger_1 = require("../utils/logger");
|
|
42
|
+
const license_service_1 = __importDefault(require("../services/license.service"));
|
|
43
|
+
const clack = __importStar(require("@clack/prompts"));
|
|
6
44
|
const logger = logger_1.Logger.getInstance();
|
|
7
45
|
exports.licenseCommand = new commander_1.Command('license')
|
|
8
46
|
.description('License management commands');
|
|
9
47
|
exports.licenseCommand
|
|
10
|
-
.command('info')
|
|
11
48
|
.description('Display current license information')
|
|
12
|
-
.action(() => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
49
|
+
.action(async () => {
|
|
50
|
+
try {
|
|
51
|
+
const info = await license_service_1.default.validateLicense();
|
|
52
|
+
const { status, type, licensePayload, errorMessage } = info;
|
|
53
|
+
// Format the license information for display
|
|
54
|
+
let licenseStatus = status;
|
|
55
|
+
const licenseType = type;
|
|
56
|
+
const formattedExpiration = licensePayload?.expiration
|
|
57
|
+
? new Date(licensePayload.expiration).toLocaleDateString()
|
|
58
|
+
: 'Never';
|
|
59
|
+
// Create formatted license info display
|
|
60
|
+
const licenseInfo = [
|
|
61
|
+
`Status: ${licenseStatus}`,
|
|
62
|
+
`Type: ${licenseType}`,
|
|
63
|
+
`Licensee: ${licensePayload?.licensee || 'N/A'}`,
|
|
64
|
+
`Organization: ${licensePayload?.organization.displayName || 'N/A'}`,
|
|
65
|
+
status !== "Invalid" ? `Expiration: ${formattedExpiration}` : '',
|
|
66
|
+
errorMessage ? `Error: ${errorMessage}` : ''
|
|
67
|
+
].filter(line => line.length > 0).join('\n');
|
|
68
|
+
// Display with clack.note for nice formatting
|
|
69
|
+
clack.note(licenseInfo, `${licenseStatus === "Active" ? '✅' : '❌'} License Information`);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
logger.error(`Failed to retrieve license information: ${error instanceof Error ? error.message : String(error)}`);
|
|
73
|
+
}
|
|
22
74
|
});
|
|
23
75
|
//# sourceMappingURL=license.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.command.js","sourceRoot":"","sources":["../../src/commands/license.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"license.command.js","sourceRoot":"","sources":["../../src/commands/license.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,4CAAyC;AACzC,kFAAyD;AACzD,sDAAwC;AAExC,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;AAEvB,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,6BAA6B,CAAC,CAAC;AAE9C,sBAAc;KACX,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,IAAI,EAAE;IAEjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,yBAAc,CAAC,eAAe,EAAE,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAE5D,6CAA6C;QAC7C,IAAI,aAAa,GAAG,MAAM,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,MAAM,mBAAmB,GAAG,cAAc,EAAE,UAAU;YACpD,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE;YAC1D,CAAC,CAAC,OAAO,CAAC;QAEZ,wCAAwC;QACxC,MAAM,WAAW,GAAG;YAClB,WAAW,aAAa,EAAE;YAC1B,SAAS,WAAW,EAAE;YACtB,aAAa,cAAc,EAAE,QAAQ,IAAI,KAAK,EAAE;YAChD,iBAAiB,cAAc,EAAE,YAAY,CAAC,WAAW,IAAI,KAAK,EAAE;YACpE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE;YAChE,YAAY,CAAC,CAAC,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;SAC7C,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7C,8CAA8C;QAC9C,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAE3F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.service.d.ts","sourceRoot":"","sources":["../../src/services/create.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.service.d.ts","sourceRoot":"","sources":["../../src/services/create.service.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,eAAe,CAAyB;IAEhD;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBtC;;OAEG;YACW,gBAAgB;YA0FhB,iBAAiB;IA8B/B;;OAEG;YACW,2BAA2B;IAgDzC;;OAEG;YACW,gBAAgB;IA8D9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;YACW,mBAAmB;CAYlC"}
|
|
@@ -32,6 +32,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.CreateService = void 0;
|
|
37
40
|
const node_path_1 = require("node:path");
|
|
@@ -42,6 +45,7 @@ const node_fs_1 = require("node:fs");
|
|
|
42
45
|
const colors_1 = require("../utils/colors");
|
|
43
46
|
const clack = __importStar(require("@clack/prompts"));
|
|
44
47
|
const components_registry_1 = require("./components/components.registry");
|
|
48
|
+
const license_service_1 = __importDefault(require("./license.service"));
|
|
45
49
|
/**
|
|
46
50
|
* SetupService handles the interactive project setup flow using @clack/prompts.
|
|
47
51
|
*
|
|
@@ -128,27 +132,29 @@ class CreateService {
|
|
|
128
132
|
// Step 5: License Key (optional, multi-line editor)
|
|
129
133
|
const hasLicense = await clack.confirm({
|
|
130
134
|
message: 'Do you have a valid license?',
|
|
131
|
-
initialValue:
|
|
135
|
+
initialValue: true
|
|
132
136
|
});
|
|
133
137
|
if (clack.isCancel(hasLicense))
|
|
134
138
|
throw hasLicense;
|
|
135
139
|
let licenseKey;
|
|
136
140
|
if (hasLicense) {
|
|
137
|
-
clack.note('You can paste
|
|
141
|
+
clack.note('You can paste your license here. Press Enter when done.', 'License Input');
|
|
138
142
|
const licenseInput = await clack.text({
|
|
139
|
-
message: 'Paste your license
|
|
143
|
+
message: 'Paste your license key here:',
|
|
140
144
|
validate: (value) => {
|
|
141
145
|
if (!value.trim()) {
|
|
142
146
|
return 'License content is required if you have a license';
|
|
143
147
|
}
|
|
144
|
-
// Try to parse as JSON to validate format
|
|
145
148
|
try {
|
|
146
|
-
|
|
147
|
-
|
|
149
|
+
const info = license_service_1.default.validateLicense(value);
|
|
150
|
+
if (info.status !== "Active") {
|
|
151
|
+
return `License is not active: Status=${info.status} Error=${info.errorMessage || 'Unknown issue'}`;
|
|
152
|
+
}
|
|
148
153
|
}
|
|
149
|
-
catch {
|
|
150
|
-
return
|
|
154
|
+
catch (error) {
|
|
155
|
+
return `Invalid license: ${error instanceof Error ? error.message : String(error)}`;
|
|
151
156
|
}
|
|
157
|
+
return undefined;
|
|
152
158
|
}
|
|
153
159
|
});
|
|
154
160
|
if (clack.isCancel(licenseInput))
|
|
@@ -298,14 +304,12 @@ class CreateService {
|
|
|
298
304
|
.replace(/^-|-$/g, '');
|
|
299
305
|
}
|
|
300
306
|
/**
|
|
301
|
-
* Generate license.
|
|
307
|
+
* Generate license.key file with provided license JSON
|
|
302
308
|
*/
|
|
303
|
-
async generateLicenseFile(targetDirectory,
|
|
309
|
+
async generateLicenseFile(targetDirectory, license) {
|
|
304
310
|
try {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
const licensePath = (0, node_path_1.join)(targetDirectory, 'license.json');
|
|
308
|
-
(0, node_fs_1.writeFileSync)(licensePath, JSON.stringify(licenseData, null, 2), 'utf-8');
|
|
311
|
+
const licensePath = (0, node_path_1.join)(targetDirectory, 'license.key');
|
|
312
|
+
(0, node_fs_1.writeFileSync)(licensePath, license, 'utf-8');
|
|
309
313
|
this.logger.debug(`License file created at: ${licensePath}`);
|
|
310
314
|
}
|
|
311
315
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.service.js","sourceRoot":"","sources":["../../src/services/create.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.service.js","sourceRoot":"","sources":["../../src/services/create.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,9 +30,9 @@ async function validatePrerequisites(packageNames) {
|
|
|
30
30
|
}
|
|
31
31
|
(0, ensure_iocd_exists_1.ensureIOCDComponentExists)();
|
|
32
32
|
// Validate license
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
35
|
-
throw new Error(
|
|
33
|
+
const licenseInfo = license_service_1.default.validateLicense();
|
|
34
|
+
if (licenseInfo.status !== "Active") {
|
|
35
|
+
throw new Error(`Valid license required for packaging: ${licenseInfo.errorMessage || 'Unknown issue'}`);
|
|
36
36
|
}
|
|
37
37
|
logger.info('Prerequisites validated successfully!');
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prerequisites.js","sourceRoot":"","sources":["../../../src/services/installer/prerequisites.ts"],"names":[],"mappings":";;;;;AAOA,sDAiCC;AAxCD,+CAA4C;AAC5C,yEAAgD;AAChD,yEAAoE;AACpE,uEAA2E;AAE3E,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;AAE7B,KAAK,UAAU,qBAAqB,CAAC,YAAsB;IAChE,6CAA6C;IAC7C,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAG3C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,QAAQ,CAAC,CAAC;YAErC,oDAAoD;YACpD,MAAM,2BAA2B,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,sEAAsE;gBACpF,0BAA0B,WAAW,IAAI;gBACzC,MAAM;gBACN,kBAAkB,WAAW,MAAM;gBACnC,SAAS,WAAW,oFAAoF,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAA,8CAAyB,GAAE,CAAC;IAE5B,mBAAmB;IACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"prerequisites.js","sourceRoot":"","sources":["../../../src/services/installer/prerequisites.ts"],"names":[],"mappings":";;;;;AAOA,sDAiCC;AAxCD,+CAA4C;AAC5C,yEAAgD;AAChD,yEAAoE;AACpE,uEAA2E;AAE3E,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;AAE7B,KAAK,UAAU,qBAAqB,CAAC,YAAsB;IAChE,6CAA6C;IAC7C,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAG3C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,QAAQ,CAAC,CAAC;YAErC,oDAAoD;YACpD,MAAM,2BAA2B,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,GAAG,WAAW,sEAAsE;gBACpF,0BAA0B,WAAW,IAAI;gBACzC,MAAM;gBACN,kBAAkB,WAAW,MAAM;gBACnC,SAAS,WAAW,oFAAoF,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAA,8CAAyB,GAAE,CAAC;IAE5B,mBAAmB;IACnB,MAAM,WAAW,GAAG,yBAAc,CAAC,eAAe,EAAE,CAAC;IACrD,IAAI,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,WAAW,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,WAAmB;IAC5D,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,WAAW,GAAG,MAAM,uCAAiB,CAAC,cAAc,EAAE,CAAC;QAE7D,4DAA4D;QAC5D,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,yCAAyC;gBACvD,wFAAwF;gBACxF,sCAAsC;gBACtC,4BAA4B,WAAW,IAAI;gBAC3C,wCAAwC,WAAW,EAAE,CACtD,CAAC;QACJ,CAAC;QAED,sFAAsF;QACtF,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,IAAI,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7F,MAAM,aAAa,GAAG,WAAW,CAAC,gBAAgB,IAAI,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEhG,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,uCAAuC,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,6DAA6D,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,2EAA2E;YAC3E,MAAM,CAAC,IAAI,CACT,GAAG,WAAW,4DAA4D;gBAC1E,oDAAoD;gBACpD,0BAA0B,WAAW,EAAE,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0DAA0D;QAC1D,MAAM,CAAC,KAAK,CAAC,sBAAsB,WAAW,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5H,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,104 @@
|
|
|
1
|
-
declare
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export declare const prodPublicKey = "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoaL0vbGVpI6fw/YY6vvf\nQFHA097QBPIzLf+8LccaFaN7kz/pvX70V3clnmtE/vY5yhzGksypOX9CfcZpyH1/\nnHmeJNWugts9SaO/+/SYC9iVmi34M/DjRQnKmhmAcd9/X6hxCwtf6nR32Igy2Z0X\niBvdUcstTrDT55YpHf+g2myVWqPfyv5+q9KlqrySb7Po/PGsdpth4Jqkqhl49hQv\n6D0sp2wRHEqjtblOz4ZYyh++02Xir+mhAYxPPrhx4ymm4jPmiqYP5aUky4udPydF\nlBHj/sKGzlU/kcd/jiws7l0Iy7DDV0ajRkbJ3C18hW7rs0xRxhGdySaj0VBA7vtR\nZ7zjDADNm9KqLQPB9nKGPSBLzQBYW+mQP92seyKRd2f29g4hFkX+kkZnS7CAvfLs\njIBw7GlHuTiZCMAgiPatU/7WxneD8Qs/s+cMMk5CTImWL/BWdtd18TMjL1G/LiTA\n3uNFnbdzrRYAC33/02W73dyk64uYtZ9rPkMJnYMMWMU8zpauQxzezxuSYCEtp2N8\n6YsWnPaZkrdZKQxUsQ2AoDJ+GWYlMJZoNh+wj0pyZcZ/BEAGCvK3DcGlgjb2mgJX\nSBAqI8x0afhfXqckthbsIaqi+0kdAgQV0VDKI0OCZgesrjwPlawmBbpgCdZ28oc3\n4w1zLjAq74LInPITHxMzaaECAwEAAQ==\n-----END PUBLIC KEY-----\n";
|
|
2
|
+
export declare class LicenseService {
|
|
3
|
+
private logger;
|
|
4
|
+
private publicKey;
|
|
5
|
+
validateLicense(license?: string): LicenseInfo;
|
|
6
|
+
private validateJWT;
|
|
7
|
+
/**
|
|
8
|
+
* Only called in unit tests.
|
|
9
|
+
*/
|
|
10
|
+
setProdPublicKey(): void;
|
|
11
|
+
/**
|
|
12
|
+
* Only called in unit tests.
|
|
13
|
+
*/
|
|
14
|
+
setTestPublicKey(publicKey: string): void;
|
|
15
|
+
}
|
|
16
|
+
export declare class LicenseError extends Error {
|
|
17
|
+
readonly licensePayload: LicensePayload;
|
|
18
|
+
constructor(message: string, licensePayload: LicensePayload);
|
|
19
|
+
}
|
|
20
|
+
export declare class LicenseOrganization {
|
|
21
|
+
/**
|
|
22
|
+
* Organization display name. Used in logs.
|
|
23
|
+
* @example "InteropIO"
|
|
24
|
+
*/
|
|
25
|
+
displayName: string;
|
|
26
|
+
/**
|
|
27
|
+
* Organization identifier. Unused.
|
|
28
|
+
* @example "interopio"
|
|
29
|
+
*/
|
|
30
|
+
identifier: string;
|
|
31
|
+
}
|
|
32
|
+
interface LicensePayload {
|
|
33
|
+
type: "paid" | "trial";
|
|
34
|
+
expiration?: number;
|
|
35
|
+
extraComponents: {
|
|
36
|
+
insights: {
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
};
|
|
39
|
+
bbgv2: {
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
};
|
|
42
|
+
bbgv3: {
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
};
|
|
45
|
+
excel: {
|
|
46
|
+
enabled: boolean;
|
|
47
|
+
};
|
|
48
|
+
outlook: {
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
};
|
|
51
|
+
word: {
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
};
|
|
54
|
+
teams: {
|
|
55
|
+
enabled: boolean;
|
|
56
|
+
};
|
|
57
|
+
fidessa: {
|
|
58
|
+
enabled: boolean;
|
|
59
|
+
};
|
|
60
|
+
salesforce: {
|
|
61
|
+
enabled: boolean;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
issuedBy: string;
|
|
65
|
+
email: string;
|
|
66
|
+
iat: number;
|
|
67
|
+
licensee: string;
|
|
68
|
+
organization: {
|
|
69
|
+
identifier: string;
|
|
70
|
+
displayName: string;
|
|
71
|
+
};
|
|
72
|
+
meta?: any;
|
|
73
|
+
}
|
|
74
|
+
export interface LicenseInfo {
|
|
75
|
+
/**
|
|
76
|
+
* Invalid – missing or improperly signed certificate
|
|
77
|
+
* Inactive – valid certificate but no longer usable (e.g. expired, revoked)
|
|
78
|
+
* Active – valid and can be used
|
|
79
|
+
*
|
|
80
|
+
* Note that paid licenses are always "valid" in practice, even if they have an expiration date. The expiration date is used for informational purposes only.
|
|
81
|
+
**/
|
|
82
|
+
status: "Invalid" | "Inactive" | "Active";
|
|
83
|
+
type: "Trial" | "Paid";
|
|
84
|
+
/**
|
|
85
|
+
* If `true` the license is expired.
|
|
86
|
+
*/
|
|
87
|
+
isExpired: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Error message related to invalid or inactive license.
|
|
90
|
+
* Undefined if the license is valid and active.
|
|
91
|
+
*/
|
|
92
|
+
errorMessage?: string | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* License JWT payload.
|
|
95
|
+
* Only there if the license is present and correctly signed.
|
|
96
|
+
*/
|
|
97
|
+
licensePayload?: LicensePayload | undefined;
|
|
98
|
+
}
|
|
99
|
+
export declare enum LicenseType {
|
|
100
|
+
paid = "paid",
|
|
101
|
+
trail = "trail"
|
|
4
102
|
}
|
|
5
103
|
declare const _default: LicenseService;
|
|
6
104
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.service.d.ts","sourceRoot":"","sources":["../../src/services/license.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"license.service.d.ts","sourceRoot":"","sources":["../../src/services/license.service.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,mzBAczB,CAAC;AAGF,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAwB;IAEtC,OAAO,CAAC,SAAS,CAAyB;IAGnC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW;IA4FrD,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACI,gBAAgB;IAIvB;;OAEG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM;CAG5C;AAED,qBAAa,YAAa,SAAQ,KAAK;IACnC,SAAgB,cAAc,EAAE,cAAc,CAAC;gBAEnC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc;CAI9D;AAED,qBAAa,mBAAmB;IAC5B;;;OAGG;IACI,WAAW,EAAG,MAAM,CAAC;IAE5B;;;OAGG;IACI,UAAU,EAAG,MAAM,CAAC;CAC9B;AAED,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE;QACb,QAAQ,EAAE;YACN,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,KAAK,EAAE;YACH,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,KAAK,EAAE;YACH,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,KAAK,EAAE;YACH,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,OAAO,EAAE;YACL,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,IAAI,EAAE;YACF,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,KAAK,EAAE;YACH,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,OAAO,EAAE;YACL,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,UAAU,EAAE;YACR,OAAO,EAAE,OAAO,CAAC;SACpB,CAAC;KACL,CAAA;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACvB,CAAA;IACD,IAAI,CAAC,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAExB;;;;;;QAMI;IACJ,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAG1C,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAC/C;AAED,oBAAY,WAAW;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;;AAED,wBAAoC"}
|
|
@@ -1,14 +1,174 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LicenseType = exports.LicenseOrganization = exports.LicenseError = exports.LicenseService = exports.prodPublicKey = void 0;
|
|
7
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
8
|
+
const logger_1 = require("../utils/logger");
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const path_1 = require("../utils/path");
|
|
11
|
+
const path_2 = require("path");
|
|
12
|
+
exports.prodPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
13
|
+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoaL0vbGVpI6fw/YY6vvf
|
|
14
|
+
QFHA097QBPIzLf+8LccaFaN7kz/pvX70V3clnmtE/vY5yhzGksypOX9CfcZpyH1/
|
|
15
|
+
nHmeJNWugts9SaO/+/SYC9iVmi34M/DjRQnKmhmAcd9/X6hxCwtf6nR32Igy2Z0X
|
|
16
|
+
iBvdUcstTrDT55YpHf+g2myVWqPfyv5+q9KlqrySb7Po/PGsdpth4Jqkqhl49hQv
|
|
17
|
+
6D0sp2wRHEqjtblOz4ZYyh++02Xir+mhAYxPPrhx4ymm4jPmiqYP5aUky4udPydF
|
|
18
|
+
lBHj/sKGzlU/kcd/jiws7l0Iy7DDV0ajRkbJ3C18hW7rs0xRxhGdySaj0VBA7vtR
|
|
19
|
+
Z7zjDADNm9KqLQPB9nKGPSBLzQBYW+mQP92seyKRd2f29g4hFkX+kkZnS7CAvfLs
|
|
20
|
+
jIBw7GlHuTiZCMAgiPatU/7WxneD8Qs/s+cMMk5CTImWL/BWdtd18TMjL1G/LiTA
|
|
21
|
+
3uNFnbdzrRYAC33/02W73dyk64uYtZ9rPkMJnYMMWMU8zpauQxzezxuSYCEtp2N8
|
|
22
|
+
6YsWnPaZkrdZKQxUsQ2AoDJ+GWYlMJZoNh+wj0pyZcZ/BEAGCvK3DcGlgjb2mgJX
|
|
23
|
+
SBAqI8x0afhfXqckthbsIaqi+0kdAgQV0VDKI0OCZgesrjwPlawmBbpgCdZ28oc3
|
|
24
|
+
4w1zLjAq74LInPITHxMzaaECAwEAAQ==
|
|
25
|
+
-----END PUBLIC KEY-----
|
|
26
|
+
`;
|
|
3
27
|
class LicenseService {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
28
|
+
logger = logger_1.Logger.getInstance();
|
|
29
|
+
publicKey = exports.prodPublicKey;
|
|
30
|
+
validateLicense(license) {
|
|
31
|
+
let licensePayload;
|
|
32
|
+
// argument -> env variable -> license.key file
|
|
33
|
+
let licenseKeyString = license || process.env['IOCD_LICENSE_KEY'];
|
|
34
|
+
if (!licenseKeyString) {
|
|
35
|
+
this.logger.debug('No license key in environment variable, checking license.key file');
|
|
36
|
+
try {
|
|
37
|
+
const filePath = (0, path_2.join)(path_1.PathUtils.getRootDir(), 'license.key');
|
|
38
|
+
licenseKeyString = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
this.logger.debug('Error reading license.key file', error);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (!licenseKeyString) {
|
|
45
|
+
this.logger.debug('No license key found in environment variable or license.key file');
|
|
46
|
+
return {
|
|
47
|
+
status: "Invalid",
|
|
48
|
+
type: "Trial",
|
|
49
|
+
isExpired: true,
|
|
50
|
+
errorMessage: 'No license key found. Please set the `IOCD_LICENSE_KEY` environment variable or add a `license.key` file.\n' +
|
|
51
|
+
'To acquire a valid license key, contact us at sales@interop.io'
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
licensePayload = this.validateJWT(licenseKeyString);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
this.logger.debug('Error validating license token', error);
|
|
59
|
+
return {
|
|
60
|
+
status: "Invalid",
|
|
61
|
+
type: "Trial",
|
|
62
|
+
isExpired: true,
|
|
63
|
+
errorMessage: "The provided license key is invalid. To acquire a valid license key, contact us at sales@interop.io"
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const isPaidLicense = licensePayload.type.toLowerCase() === LicenseType.paid;
|
|
67
|
+
const organization = licensePayload.organization.displayName ?? licensePayload.licensee;
|
|
68
|
+
const expirationTimestamp = licensePayload.expiration ?? new Date().getTime() + 7 * 24 * 60 * 60 * 1000; // Default to 7 days from now if no expiration
|
|
69
|
+
let isExpired = false;
|
|
70
|
+
let expirationDate = undefined;
|
|
71
|
+
if (licensePayload.expiration) {
|
|
72
|
+
expirationDate = new Date(expirationTimestamp);
|
|
73
|
+
isExpired = expirationDate <= new Date();
|
|
74
|
+
}
|
|
75
|
+
let isActive = isPaidLicense || (!isPaidLicense && !isExpired);
|
|
76
|
+
let errorMessage = undefined;
|
|
77
|
+
if (isPaidLicense) {
|
|
78
|
+
if (!expirationDate) {
|
|
79
|
+
this.logger.info(`Using a paid license that was issued for client "${organization}" with no expiration date.`);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
if (isExpired) {
|
|
83
|
+
this.logger.warn(`Using a paid license that was issued for client "${organization}", but it has expired at ${expirationDate.toString()}`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.logger.info(`Using a paid license that was issued for client "${organization}" and is valid until ${expirationDate.toString()}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
if (!expirationDate) {
|
|
92
|
+
// This should never happen, but just in case
|
|
93
|
+
errorMessage = `The trial license for "${organization}" is missing an expiration date. To acquire a valid license key, contact us at sales@interop.io`;
|
|
94
|
+
this.logger.warn(errorMessage);
|
|
95
|
+
isActive = false;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// trial license
|
|
99
|
+
if (isExpired) {
|
|
100
|
+
errorMessage = `The trial license for "${organization}" has expired at ${expirationDate.toString()}. To acquire a valid license key, contact us at sales@interop.io`;
|
|
101
|
+
this.logger.warn(errorMessage);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.logger.info(`Using a trial license that was issued for "${organization}" and is valid until ${expirationDate.toString()}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
status: isActive ? "Active" : "Inactive",
|
|
110
|
+
type: isPaidLicense ? "Paid" : "Trial",
|
|
111
|
+
licensePayload,
|
|
112
|
+
isExpired,
|
|
113
|
+
errorMessage
|
|
114
|
+
};
|
|
7
115
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
116
|
+
validateJWT(licenseKeyString) {
|
|
117
|
+
if (!licenseKeyString ||
|
|
118
|
+
typeof licenseKeyString !== 'string' ||
|
|
119
|
+
!licenseKeyString.length) {
|
|
120
|
+
throw new Error('The provided license key is not a valid string.');
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
const jwtPayload = jsonwebtoken_1.default.verify(licenseKeyString, this.publicKey, {
|
|
124
|
+
algorithms: ['RS256'],
|
|
125
|
+
});
|
|
126
|
+
return jwtPayload;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
this.logger.debug('Error validating license token', error);
|
|
130
|
+
throw new Error('The provided license key is invalid. To acquire a valid license key, contact us at sales@interop.io');
|
|
131
|
+
}
|
|
11
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Only called in unit tests.
|
|
135
|
+
*/
|
|
136
|
+
setProdPublicKey() {
|
|
137
|
+
this.publicKey = exports.prodPublicKey;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Only called in unit tests.
|
|
141
|
+
*/
|
|
142
|
+
setTestPublicKey(publicKey) {
|
|
143
|
+
this.publicKey = publicKey;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.LicenseService = LicenseService;
|
|
147
|
+
class LicenseError extends Error {
|
|
148
|
+
licensePayload;
|
|
149
|
+
constructor(message, licensePayload) {
|
|
150
|
+
super(message);
|
|
151
|
+
this.licensePayload = licensePayload;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.LicenseError = LicenseError;
|
|
155
|
+
class LicenseOrganization {
|
|
156
|
+
/**
|
|
157
|
+
* Organization display name. Used in logs.
|
|
158
|
+
* @example "InteropIO"
|
|
159
|
+
*/
|
|
160
|
+
displayName;
|
|
161
|
+
/**
|
|
162
|
+
* Organization identifier. Unused.
|
|
163
|
+
* @example "interopio"
|
|
164
|
+
*/
|
|
165
|
+
identifier;
|
|
12
166
|
}
|
|
167
|
+
exports.LicenseOrganization = LicenseOrganization;
|
|
168
|
+
var LicenseType;
|
|
169
|
+
(function (LicenseType) {
|
|
170
|
+
LicenseType["paid"] = "paid";
|
|
171
|
+
LicenseType["trail"] = "trail";
|
|
172
|
+
})(LicenseType || (exports.LicenseType = LicenseType = {}));
|
|
13
173
|
exports.default = new LicenseService();
|
|
14
174
|
//# sourceMappingURL=license.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.service.js","sourceRoot":"","sources":["../../src/services/license.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"license.service.js","sourceRoot":"","sources":["../../src/services/license.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interopio/iocd-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "CLI tool for setting up, building and packaging io.Connect Desktop platforms",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18.0.0",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"concurrently": "^9.2.1",
|
|
45
45
|
"dotenv": "^17.2.2",
|
|
46
46
|
"fs-extra": "^11.3.1",
|
|
47
|
+
"jsonwebtoken": "^9.0.2",
|
|
47
48
|
"log4js": "^6.9.1",
|
|
48
49
|
"plist": "^3.1.0"
|
|
49
50
|
},
|
|
@@ -51,6 +52,7 @@
|
|
|
51
52
|
"@types/electron-builder": "^2.0.29",
|
|
52
53
|
"@types/fs-extra": "^11.0.4",
|
|
53
54
|
"@types/jest": "^29.5.5",
|
|
55
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
54
56
|
"@types/log4js": "^0.0.33",
|
|
55
57
|
"@types/node": "^20.8.0",
|
|
56
58
|
"@typescript-eslint/eslint-plugin": "^6.7.4",
|