@webiny/wcp 0.0.0-unstable.a4637c5ce6 → 0.0.0-unstable.a85ef555b2
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.d.ts +23 -5
- package/License.js +115 -73
- package/License.js.map +1 -1
- package/NullLicense.d.ts +20 -2
- package/NullLicense.js +86 -41
- package/NullLicense.js.map +1 -1
- package/README.md +7 -111
- package/encryption.js +14 -26
- package/encryption.js.map +1 -1
- package/getWcpProjectEnvironment.d.ts +1 -1
- package/getWcpProjectEnvironment.js +7 -14
- package/getWcpProjectEnvironment.js.map +1 -1
- package/index.d.ts +7 -5
- package/index.js +17 -89
- package/index.js.map +1 -1
- package/licenses.d.ts +1 -1
- package/licenses.js +31 -50
- package/licenses.js.map +1 -1
- package/package.json +13 -15
- package/testing/createTestWcpLicense.d.ts +8 -2
- package/testing/createTestWcpLicense.js +57 -53
- package/testing/createTestWcpLicense.js.map +1 -1
- package/types.d.ts +58 -8
- package/types.js +18 -20
- package/types.js.map +1 -1
- package/urls.js +10 -18
- package/urls.js.map +1 -1
package/License.d.ts
CHANGED
|
@@ -1,19 +1,37 @@
|
|
|
1
|
-
import type { DecryptedWcpProjectLicense, ILicense, WcpProject } from "./types";
|
|
2
|
-
import { NullLicense } from "./NullLicense";
|
|
3
|
-
import type { WCP_FEATURE_LABEL } from "./index";
|
|
1
|
+
import type { DecryptedWcpProjectLicense, ILicense, WcpProject } from "./types.js";
|
|
2
|
+
import { NullLicense } from "./NullLicense.js";
|
|
3
|
+
import type { WCP_FEATURE_LABEL } from "./index.js";
|
|
4
4
|
export declare class License implements ILicense {
|
|
5
5
|
private readonly license;
|
|
6
|
-
static fromLicenseDto(license: DecryptedWcpProjectLicense | null):
|
|
7
|
-
static fromEnvironment(): Promise<
|
|
6
|
+
static fromLicenseDto(license: DecryptedWcpProjectLicense | null): License | NullLicense;
|
|
7
|
+
static fromEnvironment(): Promise<License | NullLicense>;
|
|
8
8
|
private constructor();
|
|
9
9
|
getRawLicense(): DecryptedWcpProjectLicense;
|
|
10
|
+
toDto(): DecryptedWcpProjectLicense;
|
|
10
11
|
getProject(): WcpProject | null;
|
|
11
12
|
canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL): boolean;
|
|
12
13
|
canUseAacl(): boolean;
|
|
13
14
|
canUseTeams(): boolean;
|
|
14
15
|
canUseFolderLevelPermissions(): boolean;
|
|
16
|
+
canUseHcmsFieldPermissions(): boolean;
|
|
15
17
|
canUsePrivateFiles(): boolean;
|
|
16
18
|
canUseAuditLogs(): boolean;
|
|
17
19
|
canUseRecordLocking(): boolean;
|
|
18
20
|
canUseFileManagerThreatDetection(): boolean;
|
|
21
|
+
canUseWorkflows(): boolean;
|
|
22
|
+
canUseAiImageEnrichment(): boolean;
|
|
23
|
+
canUseAiPageGeneration(): boolean;
|
|
24
|
+
canUseAiPageTranslation(): boolean;
|
|
25
|
+
canUseAiLexicalGeneration(): boolean;
|
|
26
|
+
canUseAiAdminAssistant(): boolean;
|
|
27
|
+
canUseAiEntryGeneration(): boolean;
|
|
28
|
+
canUseAiEntryComparison(): boolean;
|
|
29
|
+
canUseAiEntryTranslation(): boolean;
|
|
30
|
+
canUseAiPowerups(): boolean;
|
|
31
|
+
canUseAbTesting(): boolean;
|
|
32
|
+
canUseRemoteComponents(): boolean;
|
|
33
|
+
canUseCollaboration(): boolean;
|
|
34
|
+
canUseComments(): boolean;
|
|
35
|
+
canUseActivityLog(): boolean;
|
|
36
|
+
canUseLanguages(): boolean;
|
|
19
37
|
}
|
package/License.js
CHANGED
|
@@ -1,77 +1,119 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.License = void 0;
|
|
7
|
-
var _getWcpProjectEnvironment = require("./getWcpProjectEnvironment");
|
|
8
|
-
var _licenses = require("./licenses");
|
|
9
|
-
var _NullLicense = require("./NullLicense");
|
|
1
|
+
import { getWcpProjectEnvironment } from "./getWcpProjectEnvironment.js";
|
|
2
|
+
import { getWcpProjectLicense } from "./licenses.js";
|
|
3
|
+
import { NullLicense } from "./NullLicense.js";
|
|
10
4
|
class License {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
5
|
+
static fromLicenseDto(license) {
|
|
6
|
+
if (!license) return new NullLicense();
|
|
7
|
+
return new License(license);
|
|
8
|
+
}
|
|
9
|
+
static async fromEnvironment() {
|
|
10
|
+
const wcpProjectEnvironment = getWcpProjectEnvironment();
|
|
11
|
+
if (!wcpProjectEnvironment) return new NullLicense();
|
|
12
|
+
const license = await getWcpProjectLicense({
|
|
13
|
+
orgId: wcpProjectEnvironment.org.id,
|
|
14
|
+
projectId: wcpProjectEnvironment.project.id,
|
|
15
|
+
projectEnvironmentApiKey: wcpProjectEnvironment.apiKey
|
|
16
|
+
});
|
|
17
|
+
return License.fromLicenseDto(license);
|
|
18
|
+
}
|
|
19
|
+
constructor(license){
|
|
20
|
+
this.license = license;
|
|
21
|
+
}
|
|
22
|
+
getRawLicense() {
|
|
23
|
+
return this.license;
|
|
24
|
+
}
|
|
25
|
+
toDto() {
|
|
26
|
+
return this.license;
|
|
27
|
+
}
|
|
28
|
+
getProject() {
|
|
29
|
+
return {
|
|
30
|
+
orgId: this.license.orgId,
|
|
31
|
+
projectId: this.license.projectId,
|
|
32
|
+
package: this.license.package
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
canUseFeature(wcpFeatureId) {
|
|
36
|
+
return this.license.package?.features?.[wcpFeatureId]?.enabled === true;
|
|
37
|
+
}
|
|
38
|
+
canUseAacl() {
|
|
39
|
+
return this.canUseFeature("advancedAccessControlLayer");
|
|
40
|
+
}
|
|
41
|
+
canUseTeams() {
|
|
42
|
+
if (!this.canUseAacl()) return false;
|
|
43
|
+
return this.license.package.features.advancedAccessControlLayer.options.teams;
|
|
44
|
+
}
|
|
45
|
+
canUseFolderLevelPermissions() {
|
|
46
|
+
if (!this.canUseAacl()) return false;
|
|
47
|
+
return this.license.package.features.advancedAccessControlLayer.options.folderLevelPermissions;
|
|
48
|
+
}
|
|
49
|
+
canUseHcmsFieldPermissions() {
|
|
50
|
+
if (!this.canUseAacl()) return false;
|
|
51
|
+
return this.license.package.features.advancedAccessControlLayer.options.hcmsFieldPermissions;
|
|
52
|
+
}
|
|
53
|
+
canUsePrivateFiles() {
|
|
54
|
+
if (!this.canUseAacl()) return false;
|
|
55
|
+
return this.license.package.features.advancedAccessControlLayer.options.privateFiles;
|
|
56
|
+
}
|
|
57
|
+
canUseAuditLogs() {
|
|
58
|
+
return this.canUseFeature("auditLogs");
|
|
59
|
+
}
|
|
60
|
+
canUseRecordLocking() {
|
|
61
|
+
return this.canUseFeature("recordLocking");
|
|
62
|
+
}
|
|
63
|
+
canUseFileManagerThreatDetection() {
|
|
64
|
+
return this.license.package.features.fileManager?.options.threatDetection ?? false;
|
|
65
|
+
}
|
|
66
|
+
canUseWorkflows() {
|
|
67
|
+
return this.canUseFeature("advancedPublishingWorkflow");
|
|
68
|
+
}
|
|
69
|
+
canUseAiImageEnrichment() {
|
|
70
|
+
return this.license.package.features.aiPowerups?.options?.fileManager?.imageEnrichment === true;
|
|
71
|
+
}
|
|
72
|
+
canUseAiPageGeneration() {
|
|
73
|
+
return this.license.package.features.aiPowerups?.options?.websiteBuilder?.pageGeneration === true;
|
|
74
|
+
}
|
|
75
|
+
canUseAiPageTranslation() {
|
|
76
|
+
return this.license.package.features.aiPowerups?.options?.websiteBuilder?.pageTranslation === true;
|
|
77
|
+
}
|
|
78
|
+
canUseAiLexicalGeneration() {
|
|
79
|
+
return this.license.package.features.aiPowerups?.options?.lexicalGeneration === true;
|
|
80
|
+
}
|
|
81
|
+
canUseAiAdminAssistant() {
|
|
82
|
+
return this.license.package.features.aiPowerups?.options?.adminAssistant === true;
|
|
83
|
+
}
|
|
84
|
+
canUseAiEntryGeneration() {
|
|
85
|
+
return this.license.package.features.aiPowerups?.options?.cms?.entryGeneration === true;
|
|
86
|
+
}
|
|
87
|
+
canUseAiEntryComparison() {
|
|
88
|
+
return this.license.package.features.aiPowerups?.options?.cms?.entryComparison === true;
|
|
89
|
+
}
|
|
90
|
+
canUseAiEntryTranslation() {
|
|
91
|
+
return this.license.package.features.aiPowerups?.options?.cms?.entryTranslation === true;
|
|
92
|
+
}
|
|
93
|
+
canUseAiPowerups() {
|
|
94
|
+
return this.canUseAiImageEnrichment() || this.canUseAiPageGeneration() || this.canUseAiPageTranslation() || this.canUseAiLexicalGeneration() || this.canUseAiAdminAssistant() || this.canUseAiEntryGeneration() || this.canUseAiEntryComparison() || this.canUseAiEntryTranslation() || this.canUseRemoteComponents();
|
|
95
|
+
}
|
|
96
|
+
canUseAbTesting() {
|
|
97
|
+
return this.canUseFeature("abTesting");
|
|
98
|
+
}
|
|
99
|
+
canUseRemoteComponents() {
|
|
100
|
+
return this.license.package.features.aiPowerups?.options?.remoteComponents === true;
|
|
101
|
+
}
|
|
102
|
+
canUseCollaboration() {
|
|
103
|
+
return this.canUseFeature("collaboration");
|
|
104
|
+
}
|
|
105
|
+
canUseComments() {
|
|
106
|
+
if (!this.canUseCollaboration()) return false;
|
|
107
|
+
return this.license.package.features.collaboration.options?.comments === true;
|
|
108
|
+
}
|
|
109
|
+
canUseActivityLog() {
|
|
110
|
+
if (!this.canUseCollaboration()) return false;
|
|
111
|
+
return this.license.package.features.collaboration.options?.activityLog === true;
|
|
112
|
+
}
|
|
113
|
+
canUseLanguages() {
|
|
114
|
+
return this.canUseFeature("multiTenancy");
|
|
115
|
+
}
|
|
74
116
|
}
|
|
75
|
-
|
|
117
|
+
export { License };
|
|
76
118
|
|
|
77
119
|
//# sourceMappingURL=License.js.map
|
package/License.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"License.js","sources":["../src/License.ts"],"sourcesContent":["import { getWcpProjectEnvironment } from \"./getWcpProjectEnvironment.js\";\nimport type { DecryptedWcpProjectLicense, ILicense, WcpProject } from \"./types.js\";\nimport { getWcpProjectLicense } from \"./licenses.js\";\nimport { NullLicense } from \"./NullLicense.js\";\nimport type { WCP_FEATURE_LABEL } from \"./index.js\";\n\nexport class License implements ILicense {\n private readonly license: DecryptedWcpProjectLicense;\n\n static fromLicenseDto(license: DecryptedWcpProjectLicense | null) {\n if (!license) {\n return new NullLicense();\n }\n\n return new License(license);\n }\n\n static async fromEnvironment() {\n const wcpProjectEnvironment = getWcpProjectEnvironment();\n\n if (!wcpProjectEnvironment) {\n return new NullLicense();\n }\n\n const license = await getWcpProjectLicense({\n orgId: wcpProjectEnvironment.org.id,\n projectId: wcpProjectEnvironment.project.id,\n projectEnvironmentApiKey: wcpProjectEnvironment.apiKey\n });\n\n return License.fromLicenseDto(license);\n }\n\n private constructor(license: DecryptedWcpProjectLicense) {\n this.license = license;\n }\n\n getRawLicense(): DecryptedWcpProjectLicense {\n return this.license;\n }\n\n toDto(): DecryptedWcpProjectLicense {\n return this.license;\n }\n\n getProject(): WcpProject | null {\n return {\n orgId: this.license.orgId,\n projectId: this.license.projectId,\n package: this.license.package\n };\n }\n\n canUseFeature(wcpFeatureId: keyof typeof WCP_FEATURE_LABEL) {\n return this.license.package?.features?.[wcpFeatureId]?.enabled === true;\n }\n\n canUseAacl() {\n return this.canUseFeature(\"advancedAccessControlLayer\");\n }\n\n canUseTeams() {\n if (!this.canUseAacl()) {\n return false;\n }\n\n return this.license.package.features.advancedAccessControlLayer.options.teams;\n }\n\n canUseFolderLevelPermissions() {\n if (!this.canUseAacl()) {\n return false;\n }\n\n return this.license.package.features.advancedAccessControlLayer.options\n .folderLevelPermissions;\n }\n\n canUseHcmsFieldPermissions() {\n if (!this.canUseAacl()) {\n return false;\n }\n\n return this.license.package.features.advancedAccessControlLayer.options\n .hcmsFieldPermissions;\n }\n\n canUsePrivateFiles() {\n if (!this.canUseAacl()) {\n return false;\n }\n\n return this.license.package.features.advancedAccessControlLayer.options.privateFiles;\n }\n\n canUseAuditLogs() {\n return this.canUseFeature(\"auditLogs\");\n }\n\n canUseRecordLocking() {\n return this.canUseFeature(\"recordLocking\");\n }\n\n canUseFileManagerThreatDetection() {\n return this.license.package.features.fileManager?.options.threatDetection ?? false;\n }\n\n public canUseWorkflows(): boolean {\n return this.canUseFeature(\"advancedPublishingWorkflow\");\n }\n\n canUseAiImageEnrichment(): boolean {\n return (\n this.license.package.features.aiPowerups?.options?.fileManager?.imageEnrichment === true\n );\n }\n\n canUseAiPageGeneration(): boolean {\n return (\n this.license.package.features.aiPowerups?.options?.websiteBuilder?.pageGeneration ===\n true\n );\n }\n\n canUseAiPageTranslation(): boolean {\n return (\n this.license.package.features.aiPowerups?.options?.websiteBuilder?.pageTranslation ===\n true\n );\n }\n\n canUseAiLexicalGeneration(): boolean {\n return this.license.package.features.aiPowerups?.options?.lexicalGeneration === true;\n }\n\n canUseAiAdminAssistant(): boolean {\n return this.license.package.features.aiPowerups?.options?.adminAssistant === true;\n }\n\n canUseAiEntryGeneration(): boolean {\n return this.license.package.features.aiPowerups?.options?.cms?.entryGeneration === true;\n }\n\n canUseAiEntryComparison(): boolean {\n return this.license.package.features.aiPowerups?.options?.cms?.entryComparison === true;\n }\n\n canUseAiEntryTranslation(): boolean {\n return this.license.package.features.aiPowerups?.options?.cms?.entryTranslation === true;\n }\n\n /*\n * Derived, not read off `aiPowerups.enabled`. The individual capabilities above already ignore\n * that parent, and WCP has projects carrying capabilities under a parent that reads false, so\n * anything else would switch off capabilities customers are currently using.\n */\n canUseAiPowerups(): boolean {\n return (\n this.canUseAiImageEnrichment() ||\n this.canUseAiPageGeneration() ||\n this.canUseAiPageTranslation() ||\n this.canUseAiLexicalGeneration() ||\n this.canUseAiAdminAssistant() ||\n this.canUseAiEntryGeneration() ||\n this.canUseAiEntryComparison() ||\n this.canUseAiEntryTranslation() ||\n this.canUseRemoteComponents()\n );\n }\n\n canUseAbTesting(): boolean {\n return this.canUseFeature(\"abTesting\");\n }\n\n canUseRemoteComponents(): boolean {\n return this.license.package.features.aiPowerups?.options?.remoteComponents === true;\n }\n\n canUseCollaboration(): boolean {\n return this.canUseFeature(\"collaboration\");\n }\n\n canUseComments(): boolean {\n if (!this.canUseCollaboration()) {\n return false;\n }\n\n return this.license.package.features.collaboration.options?.comments === true;\n }\n\n canUseActivityLog(): boolean {\n if (!this.canUseCollaboration()) {\n return false;\n }\n\n return this.license.package.features.collaboration.options?.activityLog === true;\n }\n\n /*\n * Languages are granted with multi-tenancy. This is the one place that mapping lives; everything\n * else asks for `languages`, so a change to which license option grants them only touches this.\n */\n canUseLanguages(): boolean {\n return this.canUseFeature(\"multiTenancy\");\n }\n}\n"],"names":["License","license","NullLicense","wcpProjectEnvironment","getWcpProjectEnvironment","getWcpProjectLicense","wcpFeatureId"],"mappings":"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"}
|
package/NullLicense.d.ts
CHANGED
|
@@ -1,14 +1,32 @@
|
|
|
1
|
-
import type { WCP_FEATURE_LABEL } from "./index";
|
|
2
|
-
import type { ILicense, WcpProject } from "./types";
|
|
1
|
+
import type { WCP_FEATURE_LABEL } from "./index.js";
|
|
2
|
+
import type { ILicense, WcpProject } from "./types.js";
|
|
3
3
|
export declare class NullLicense implements ILicense {
|
|
4
4
|
getRawLicense(): null;
|
|
5
|
+
toDto(): null;
|
|
5
6
|
getProject(): WcpProject | null;
|
|
6
7
|
canUseAacl(): boolean;
|
|
7
8
|
canUseAuditLogs(): boolean;
|
|
8
9
|
canUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): boolean;
|
|
9
10
|
canUseFileManagerThreatDetection(): boolean;
|
|
10
11
|
canUseFolderLevelPermissions(): boolean;
|
|
12
|
+
canUseHcmsFieldPermissions(): boolean;
|
|
11
13
|
canUsePrivateFiles(): boolean;
|
|
12
14
|
canUseRecordLocking(): boolean;
|
|
13
15
|
canUseTeams(): boolean;
|
|
16
|
+
canUseWorkflows(): boolean;
|
|
17
|
+
canUseAiImageEnrichment(): boolean;
|
|
18
|
+
canUseAiPageGeneration(): boolean;
|
|
19
|
+
canUseAiPageTranslation(): boolean;
|
|
20
|
+
canUseAiLexicalGeneration(): boolean;
|
|
21
|
+
canUseAiAdminAssistant(): boolean;
|
|
22
|
+
canUseAiEntryGeneration(): boolean;
|
|
23
|
+
canUseAiEntryComparison(): boolean;
|
|
24
|
+
canUseAiEntryTranslation(): boolean;
|
|
25
|
+
canUseAiPowerups(): boolean;
|
|
26
|
+
canUseAbTesting(): boolean;
|
|
27
|
+
canUseRemoteComponents(): boolean;
|
|
28
|
+
canUseCollaboration(): boolean;
|
|
29
|
+
canUseComments(): boolean;
|
|
30
|
+
canUseActivityLog(): boolean;
|
|
31
|
+
canUseLanguages(): boolean;
|
|
14
32
|
}
|
package/NullLicense.js
CHANGED
|
@@ -1,45 +1,90 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.NullLicense = void 0;
|
|
7
1
|
class NullLicense {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
2
|
+
getRawLicense() {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
toDto() {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
getProject() {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
canUseAacl() {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
canUseAuditLogs() {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
canUseFeature(featureId) {
|
|
18
|
+
if ("multiTenancy" === featureId) return "true" === process.env.WEBINY_MULTI_TENANCY;
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
canUseFileManagerThreatDetection() {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
canUseFolderLevelPermissions() {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
canUseHcmsFieldPermissions() {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
canUsePrivateFiles() {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
canUseRecordLocking() {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
canUseTeams() {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
canUseWorkflows() {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
canUseAiImageEnrichment() {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
canUseAiPageGeneration() {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
canUseAiPageTranslation() {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
canUseAiLexicalGeneration() {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
canUseAiAdminAssistant() {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
canUseAiEntryGeneration() {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
canUseAiEntryComparison() {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
canUseAiEntryTranslation() {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
canUseAiPowerups() {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
canUseAbTesting() {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
canUseRemoteComponents() {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
canUseCollaboration() {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
canUseComments() {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
canUseActivityLog() {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
canUseLanguages() {
|
|
85
|
+
return this.canUseFeature("multiTenancy");
|
|
86
|
+
}
|
|
42
87
|
}
|
|
43
|
-
|
|
88
|
+
export { NullLicense };
|
|
44
89
|
|
|
45
90
|
//# sourceMappingURL=NullLicense.js.map
|
package/NullLicense.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"NullLicense.js","sources":["../src/NullLicense.ts"],"sourcesContent":["import type { WCP_FEATURE_LABEL } from \"./index.js\";\nimport type { ILicense, WcpProject } from \"./types.js\";\n\nexport class NullLicense implements ILicense {\n getRawLicense() {\n return null;\n }\n\n toDto(): null {\n return null;\n }\n\n getProject(): WcpProject | null {\n return null;\n }\n\n canUseAacl() {\n return false;\n }\n\n canUseAuditLogs() {\n return false;\n }\n\n canUseFeature(featureId: keyof typeof WCP_FEATURE_LABEL): boolean {\n // For backwards compatibility, we need to check the legacy ENV variable `WEBINY_MULTI_TENANCY`.\n if (featureId === \"multiTenancy\") {\n return process.env.WEBINY_MULTI_TENANCY === \"true\";\n }\n\n return false;\n }\n\n canUseFileManagerThreatDetection() {\n return false;\n }\n\n canUseFolderLevelPermissions() {\n return false;\n }\n\n canUseHcmsFieldPermissions() {\n return false;\n }\n\n canUsePrivateFiles() {\n return false;\n }\n\n canUseRecordLocking() {\n return false;\n }\n\n canUseTeams() {\n return false;\n }\n\n public canUseWorkflows(): boolean {\n return false;\n }\n\n canUseAiImageEnrichment(): boolean {\n return false;\n }\n\n canUseAiPageGeneration(): boolean {\n return false;\n }\n\n canUseAiPageTranslation(): boolean {\n return false;\n }\n\n canUseAiLexicalGeneration(): boolean {\n return false;\n }\n\n canUseAiAdminAssistant(): boolean {\n return false;\n }\n\n canUseAiEntryGeneration(): boolean {\n return false;\n }\n\n canUseAiEntryComparison(): boolean {\n return false;\n }\n\n canUseAiEntryTranslation(): boolean {\n return false;\n }\n\n canUseAiPowerups(): boolean {\n return false;\n }\n\n canUseAbTesting(): boolean {\n return false;\n }\n\n canUseRemoteComponents(): boolean {\n return false;\n }\n\n canUseCollaboration(): boolean {\n return false;\n }\n\n canUseComments(): boolean {\n return false;\n }\n\n canUseActivityLog(): boolean {\n return false;\n }\n\n // Same mapping as `License.canUseLanguages()`, so the legacy `WEBINY_MULTI_TENANCY` switch\n // still grants languages to a project without a WCP license.\n canUseLanguages(): boolean {\n return this.canUseFeature(\"multiTenancy\");\n }\n}\n"],"names":["NullLicense","featureId","process"],"mappings":"AAGO,MAAMA;IACT,gBAAgB;QACZ,OAAO;IACX;IAEA,QAAc;QACV,OAAO;IACX;IAEA,aAAgC;QAC5B,OAAO;IACX;IAEA,aAAa;QACT,OAAO;IACX;IAEA,kBAAkB;QACd,OAAO;IACX;IAEA,cAAcC,SAAyC,EAAW;QAE9D,IAAIA,AAAc,mBAAdA,WACA,OAAOC,AAAqC,WAArCA,QAAQ,GAAG,CAAC,oBAAoB;QAG3C,OAAO;IACX;IAEA,mCAAmC;QAC/B,OAAO;IACX;IAEA,+BAA+B;QAC3B,OAAO;IACX;IAEA,6BAA6B;QACzB,OAAO;IACX;IAEA,qBAAqB;QACjB,OAAO;IACX;IAEA,sBAAsB;QAClB,OAAO;IACX;IAEA,cAAc;QACV,OAAO;IACX;IAEO,kBAA2B;QAC9B,OAAO;IACX;IAEA,0BAAmC;QAC/B,OAAO;IACX;IAEA,yBAAkC;QAC9B,OAAO;IACX;IAEA,0BAAmC;QAC/B,OAAO;IACX;IAEA,4BAAqC;QACjC,OAAO;IACX;IAEA,yBAAkC;QAC9B,OAAO;IACX;IAEA,0BAAmC;QAC/B,OAAO;IACX;IAEA,0BAAmC;QAC/B,OAAO;IACX;IAEA,2BAAoC;QAChC,OAAO;IACX;IAEA,mBAA4B;QACxB,OAAO;IACX;IAEA,kBAA2B;QACvB,OAAO;IACX;IAEA,yBAAkC;QAC9B,OAAO;IACX;IAEA,sBAA+B;QAC3B,OAAO;IACX;IAEA,iBAA0B;QACtB,OAAO;IACX;IAEA,oBAA6B;QACzB,OAAO;IACX;IAIA,kBAA2B;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B;AACJ"}
|
package/README.md
CHANGED
|
@@ -1,115 +1,11 @@
|
|
|
1
|
-
#
|
|
2
|
-
[](https://www.npmjs.com/package/@webiny/wcp)
|
|
3
|
-
[](https://www.npmjs.com/package/@webiny/wcp)
|
|
4
|
-
[](https://github.com/prettier/prettier)
|
|
5
|
-
[](http://makeapullrequest.com)
|
|
1
|
+
# @webiny/wcp
|
|
6
2
|
|
|
7
|
-
|
|
3
|
+
> [!NOTE]
|
|
4
|
+
> This package is part of the [Webiny](https://www.webiny.com) monorepo.
|
|
5
|
+
> It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
- [Overview](#overview)
|
|
13
|
-
- [Examples](#examples)
|
|
14
|
-
- [Reference](#reference)
|
|
15
|
-
- [Functions](#functions)
|
|
16
|
-
- [`getWcpAppUrl`](#getWcpAppUrl)
|
|
17
|
-
- [`getWcpApiUrl`](#getWcpApiUrl)
|
|
18
|
-
- [`getWcpGqlApiUrl`](#getWcpGqlApiUrl)
|
|
19
|
-
|
|
20
|
-
## Installation
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
npm install --save @webiny/wcp
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Or if you prefer yarn:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
yarn add @webiny/wcp
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
## Overview
|
|
34
|
-
|
|
35
|
-
The `@webiny/wcp` package contains essential Webiny Control Panel (WCP)-related utilities.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
## Examples
|
|
40
|
-
|
|
41
|
-
| Example | Description |
|
|
42
|
-
| ------- | ----------- |
|
|
43
|
-
| [Retrieve WCP URLs](./docs/examples/retrievingWcpUrls.md) | Shows how to retrieve WCP API and app URLs. |
|
|
44
|
-
|
|
45
|
-
## Reference
|
|
46
|
-
|
|
47
|
-
### Functions
|
|
48
|
-
|
|
49
|
-
#### `getWcpAppUrl`
|
|
50
|
-
|
|
51
|
-
<details>
|
|
52
|
-
<summary>Type Declaration</summary>
|
|
53
|
-
<p>
|
|
54
|
-
|
|
55
|
-
```ts
|
|
56
|
-
export declare const getWcpAppUrl: (path?: string | undefined) => string;
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
</p>
|
|
60
|
-
</details>
|
|
61
|
-
|
|
62
|
-
Returns WCP app URL. The default URL can be overridden via the `WCP_APP_URL` environment variable.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
```ts
|
|
66
|
-
import { getWcpAppUrl } from "@webiny/wcp";
|
|
67
|
-
|
|
68
|
-
console.log(getWcpAppUrl()); // Returns "https://d3mudimnmgk2a9.cloudfront.net".
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
#### `getWcpApiUrl`
|
|
73
|
-
|
|
74
|
-
<details>
|
|
75
|
-
<summary>Type Declaration</summary>
|
|
76
|
-
<p>
|
|
77
|
-
|
|
78
|
-
```ts
|
|
79
|
-
export declare const getWcpApiUrl: (path?: string | undefined) => string;
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
</p>
|
|
83
|
-
</details>
|
|
84
|
-
|
|
85
|
-
Returns WCP API URL. The default URL can be overridden via the `WCP_API_URL` environment variable.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
```ts
|
|
89
|
-
import { getWcpApiUrl } from "@webiny/wcp";
|
|
90
|
-
|
|
91
|
-
console.log(getWcpApiUrl()); // Returns "https://d3mudimnmgk2a9.cloudfront.net".
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
#### `getWcpGqlApiUrl`
|
|
95
|
-
|
|
96
|
-
<details>
|
|
97
|
-
<summary>Type Declaration</summary>
|
|
98
|
-
<p>
|
|
99
|
-
|
|
100
|
-
```ts
|
|
101
|
-
export declare const getWcpGqlApiUrl: (path?: string | undefined) => string;
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
</p>
|
|
105
|
-
</details>
|
|
106
|
-
|
|
107
|
-
Returns WCP GraphQL API URL.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
```ts
|
|
111
|
-
import { getWcpGqlApiUrl } from "@webiny/wcp";
|
|
112
|
-
|
|
113
|
-
console.log(getWcpGqlApiUrl()); // Returns "https://d3mudimnmgk2a9.cloudfront.net/graphql".
|
|
114
|
-
```
|
|
9
|
+
---
|
|
115
10
|
|
|
11
|
+
_This README file is automatically generated during the publish process._
|
package/encryption.js
CHANGED
|
@@ -1,30 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* For now, we're not doing actual encryption, just simple base64 encoding/decoding.
|
|
9
|
-
* Potentially, we'll revisit this in the future and implement actual encryption.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
const encrypt = rawObject => {
|
|
13
|
-
try {
|
|
14
|
-
return Buffer.from(JSON.stringify(rawObject), "utf-8").toString("base64");
|
|
15
|
-
} catch {
|
|
16
|
-
throw new Error("Could not encrypt given data.");
|
|
17
|
-
}
|
|
1
|
+
const encrypt = (rawObject)=>{
|
|
2
|
+
try {
|
|
3
|
+
return Buffer.from(JSON.stringify(rawObject), "utf-8").toString("base64");
|
|
4
|
+
} catch {
|
|
5
|
+
throw new Error("Could not encrypt given data.");
|
|
6
|
+
}
|
|
18
7
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
8
|
+
const decrypt = (encryptedString)=>{
|
|
9
|
+
try {
|
|
10
|
+
const decryptedString = Buffer.from(encryptedString, "base64").toString("utf-8");
|
|
11
|
+
return JSON.parse(decryptedString);
|
|
12
|
+
} catch {
|
|
13
|
+
throw new Error(`Could not decrypt the given string (${encryptedString}).`);
|
|
14
|
+
}
|
|
27
15
|
};
|
|
28
|
-
|
|
16
|
+
export { decrypt, encrypt };
|
|
29
17
|
|
|
30
18
|
//# sourceMappingURL=encryption.js.map
|
package/encryption.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"encryption.js","sources":["../src/encryption.ts"],"sourcesContent":["/**\n * For now, we're not doing actual encryption, just simple base64 encoding/decoding.\n * Potentially, we'll revisit this in the future and implement actual encryption.\n */\n\nexport const encrypt = <T = Record<string, any>>(rawObject: T): string => {\n try {\n return Buffer.from(JSON.stringify(rawObject), \"utf-8\").toString(\"base64\");\n } catch {\n throw new Error(\"Could not encrypt given data.\");\n }\n};\n\nexport const decrypt = <T = Record<string, any>>(encryptedString: string): T => {\n try {\n const decryptedString = Buffer.from(encryptedString, \"base64\").toString(\"utf-8\");\n return JSON.parse(decryptedString) as T;\n } catch {\n throw new Error(`Could not decrypt the given string (${encryptedString}).`);\n }\n};\n"],"names":["encrypt","rawObject","Buffer","JSON","Error","decrypt","encryptedString","decryptedString"],"mappings":"AAKO,MAAMA,UAAU,CAA0BC;IAC7C,IAAI;QACA,OAAOC,OAAO,IAAI,CAACC,KAAK,SAAS,CAACF,YAAY,SAAS,QAAQ,CAAC;IACpE,EAAE,OAAM;QACJ,MAAM,IAAIG,MAAM;IACpB;AACJ;AAEO,MAAMC,UAAU,CAA0BC;IAC7C,IAAI;QACA,MAAMC,kBAAkBL,OAAO,IAAI,CAACI,iBAAiB,UAAU,QAAQ,CAAC;QACxE,OAAOH,KAAK,KAAK,CAACI;IACtB,EAAE,OAAM;QACJ,MAAM,IAAIH,MAAM,CAAC,oCAAoC,EAAEE,gBAAgB,EAAE,CAAC;IAC9E;AACJ"}
|