@webiny/wcp
Advanced tools
+14
-18
@@ -1,22 +0,18 @@ | ||
| /** | ||
| * For now, we're not doing actual encryption, just simple base64 encoding/decoding. | ||
| * Potentially, we'll revisit this in the future and implement actual encryption. | ||
| */ | ||
| export const encrypt = rawObject => { | ||
| try { | ||
| return Buffer.from(JSON.stringify(rawObject), "utf-8").toString("base64"); | ||
| } catch { | ||
| throw new Error("Could not encrypt given data."); | ||
| } | ||
| const encrypt = (rawObject)=>{ | ||
| try { | ||
| return Buffer.from(JSON.stringify(rawObject), "utf-8").toString("base64"); | ||
| } catch { | ||
| throw new Error("Could not encrypt given data."); | ||
| } | ||
| }; | ||
| export const decrypt = encryptedString => { | ||
| try { | ||
| const decryptedString = Buffer.from(encryptedString, "base64").toString("utf-8"); | ||
| return JSON.parse(decryptedString); | ||
| } catch { | ||
| throw new Error(`Could not decrypt the given string (${encryptedString}).`); | ||
| } | ||
| const decrypt = (encryptedString)=>{ | ||
| try { | ||
| const decryptedString = Buffer.from(encryptedString, "base64").toString("utf-8"); | ||
| return JSON.parse(decryptedString); | ||
| } catch { | ||
| throw new Error(`Could not decrypt the given string (${encryptedString}).`); | ||
| } | ||
| }; | ||
| export { decrypt, encrypt }; | ||
| //# sourceMappingURL=encryption.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["encrypt","rawObject","Buffer","from","JSON","stringify","toString","Error","decrypt","encryptedString","decryptedString","parse"],"sources":["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"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,OAAO,GAA6BC,SAAY,IAAa;EACtE,IAAI;IACA,OAAOC,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACJ,SAAS,CAAC,EAAE,OAAO,CAAC,CAACK,QAAQ,CAAC,QAAQ,CAAC;EAC7E,CAAC,CAAC,MAAM;IACJ,MAAM,IAAIC,KAAK,CAAC,+BAA+B,CAAC;EACpD;AACJ,CAAC;AAED,OAAO,MAAMC,OAAO,GAA6BC,eAAuB,IAAQ;EAC5E,IAAI;IACA,MAAMC,eAAe,GAAGR,MAAM,CAACC,IAAI,CAACM,eAAe,EAAE,QAAQ,CAAC,CAACH,QAAQ,CAAC,OAAO,CAAC;IAChF,OAAOF,IAAI,CAACO,KAAK,CAACD,eAAe,CAAC;EACtC,CAAC,CAAC,MAAM;IACJ,MAAM,IAAIH,KAAK,CAAC,uCAAuCE,eAAe,IAAI,CAAC;EAC/E;AACJ,CAAC","ignoreList":[]} | ||
| {"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"} |
| import { decrypt } from "./encryption.js"; | ||
| export function getWcpProjectEnvironment() { | ||
| if (process.env.WCP_PROJECT_ENVIRONMENT) { | ||
| try { | ||
| return decrypt(process.env.WCP_PROJECT_ENVIRONMENT); | ||
| } catch { | ||
| throw new Error("Could not decrypt WCP_PROJECT_ENVIRONMENT environment variable data."); | ||
| function getWcpProjectEnvironment() { | ||
| if (process.env.WCP_PROJECT_ENVIRONMENT) try { | ||
| return decrypt(process.env.WCP_PROJECT_ENVIRONMENT); | ||
| } catch { | ||
| throw new Error("Could not decrypt WCP_PROJECT_ENVIRONMENT environment variable data."); | ||
| } | ||
| } | ||
| return null; | ||
| return null; | ||
| } | ||
| export { getWcpProjectEnvironment }; | ||
| //# sourceMappingURL=getWcpProjectEnvironment.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["decrypt","getWcpProjectEnvironment","process","env","WCP_PROJECT_ENVIRONMENT","Error"],"sources":["getWcpProjectEnvironment.ts"],"sourcesContent":["import type { WcpProjectEnvironment } from \"./types.js\";\nimport { decrypt } from \"./encryption.js\";\n\nexport function getWcpProjectEnvironment(): WcpProjectEnvironment | null {\n if (process.env.WCP_PROJECT_ENVIRONMENT) {\n try {\n return decrypt<WcpProjectEnvironment>(process.env.WCP_PROJECT_ENVIRONMENT);\n } catch {\n throw new Error(\"Could not decrypt WCP_PROJECT_ENVIRONMENT environment variable data.\");\n }\n }\n return null;\n}\n"],"mappings":"AACA,SAASA,OAAO;AAEhB,OAAO,SAASC,wBAAwBA,CAAA,EAAiC;EACrE,IAAIC,OAAO,CAACC,GAAG,CAACC,uBAAuB,EAAE;IACrC,IAAI;MACA,OAAOJ,OAAO,CAAwBE,OAAO,CAACC,GAAG,CAACC,uBAAuB,CAAC;IAC9E,CAAC,CAAC,MAAM;MACJ,MAAM,IAAIC,KAAK,CAAC,sEAAsE,CAAC;IAC3F;EACJ;EACA,OAAO,IAAI;AACf","ignoreList":[]} | ||
| {"version":3,"file":"getWcpProjectEnvironment.js","sources":["../src/getWcpProjectEnvironment.ts"],"sourcesContent":["import type { WcpProjectEnvironment } from \"./types.js\";\nimport { decrypt } from \"./encryption.js\";\n\nexport function getWcpProjectEnvironment(): WcpProjectEnvironment | null {\n if (process.env.WCP_PROJECT_ENVIRONMENT) {\n try {\n return decrypt<WcpProjectEnvironment>(process.env.WCP_PROJECT_ENVIRONMENT);\n } catch {\n throw new Error(\"Could not decrypt WCP_PROJECT_ENVIRONMENT environment variable data.\");\n }\n }\n return null;\n}\n"],"names":["getWcpProjectEnvironment","process","decrypt","Error"],"mappings":";AAGO,SAASA;IACZ,IAAIC,QAAQ,GAAG,CAAC,uBAAuB,EACnC,IAAI;QACA,OAAOC,QAA+BD,QAAQ,GAAG,CAAC,uBAAuB;IAC7E,EAAE,OAAM;QACJ,MAAM,IAAIE,MAAM;IACpB;IAEJ,OAAO;AACX"} |
+9
-8
@@ -7,12 +7,13 @@ export * from "./encryption.js"; | ||
| export * from "./getWcpProjectEnvironment.js"; | ||
| export const WCP_FEATURE_LABEL = { | ||
| seats: "User Seats", | ||
| multiTenancy: "Multi-tenancy", | ||
| advancedPublishingWorkflow: "Advanced Publishing Workflow (APW)", | ||
| advancedAccessControlLayer: "Advanced Access Control Layer (ACL)", | ||
| auditLogs: "Audit Logs", | ||
| recordLocking: "Record Locking", | ||
| fileManager: "File Manager" | ||
| const WCP_FEATURE_LABEL = { | ||
| seats: "User Seats", | ||
| multiTenancy: "Multi-tenancy", | ||
| advancedPublishingWorkflow: "Advanced Publishing Workflow (APW)", | ||
| advancedAccessControlLayer: "Advanced Access Control Layer (ACL)", | ||
| auditLogs: "Audit Logs", | ||
| recordLocking: "Record Locking", | ||
| fileManager: "File Manager" | ||
| }; | ||
| export { WCP_FEATURE_LABEL }; | ||
| //# sourceMappingURL=index.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["WCP_FEATURE_LABEL","seats","multiTenancy","advancedPublishingWorkflow","advancedAccessControlLayer","auditLogs","recordLocking","fileManager"],"sources":["index.ts"],"sourcesContent":["export * from \"./encryption.js\";\nexport * from \"./licenses.js\";\nexport * from \"./urls.js\";\nexport * from \"./License.js\";\nexport * from \"./NullLicense.js\";\nexport * from \"./getWcpProjectEnvironment.js\";\n\nexport const WCP_FEATURE_LABEL = {\n seats: \"User Seats\",\n multiTenancy: \"Multi-tenancy\",\n advancedPublishingWorkflow: \"Advanced Publishing Workflow (APW)\",\n advancedAccessControlLayer: \"Advanced Access Control Layer (ACL)\",\n auditLogs: \"Audit Logs\",\n recordLocking: \"Record Locking\",\n fileManager: \"File Manager\"\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAO,MAAMA,iBAAiB,GAAG;EAC7BC,KAAK,EAAE,YAAY;EACnBC,YAAY,EAAE,eAAe;EAC7BC,0BAA0B,EAAE,oCAAoC;EAChEC,0BAA0B,EAAE,qCAAqC;EACjEC,SAAS,EAAE,YAAY;EACvBC,aAAa,EAAE,gBAAgB;EAC/BC,WAAW,EAAE;AACjB,CAAC","ignoreList":[]} | ||
| {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["export * from \"./encryption.js\";\nexport * from \"./licenses.js\";\nexport * from \"./urls.js\";\nexport * from \"./License.js\";\nexport * from \"./NullLicense.js\";\nexport * from \"./getWcpProjectEnvironment.js\";\n\nexport const WCP_FEATURE_LABEL = {\n seats: \"User Seats\",\n multiTenancy: \"Multi-tenancy\",\n advancedPublishingWorkflow: \"Advanced Publishing Workflow (APW)\",\n advancedAccessControlLayer: \"Advanced Access Control Layer (ACL)\",\n auditLogs: \"Audit Logs\",\n recordLocking: \"Record Locking\",\n fileManager: \"File Manager\"\n};\n"],"names":["WCP_FEATURE_LABEL"],"mappings":";;;;;;AAOO,MAAMA,oBAAoB;IAC7B,OAAO;IACP,cAAc;IACd,4BAA4B;IAC5B,4BAA4B;IAC5B,WAAW;IACX,eAAe;IACf,aAAa;AACjB"} |
+69
-80
| import { getWcpProjectEnvironment } from "./getWcpProjectEnvironment.js"; | ||
| import { getWcpProjectLicense } from "./licenses.js"; | ||
| import { NullLicense } from "./NullLicense.js"; | ||
| export class License { | ||
| static fromLicenseDto(license) { | ||
| if (!license) { | ||
| return new NullLicense(); | ||
| class License { | ||
| static fromLicenseDto(license) { | ||
| if (!license) return new NullLicense(); | ||
| return new License(license); | ||
| } | ||
| return new License(license); | ||
| } | ||
| static async fromEnvironment() { | ||
| const wcpProjectEnvironment = getWcpProjectEnvironment(); | ||
| if (!wcpProjectEnvironment) { | ||
| return new NullLicense(); | ||
| static async fromEnvironment() { | ||
| const wcpProjectEnvironment = getWcpProjectEnvironment(); | ||
| if (!wcpProjectEnvironment) return new NullLicense(); | ||
| const license = await getWcpProjectLicense({ | ||
| orgId: wcpProjectEnvironment.org.id, | ||
| projectId: wcpProjectEnvironment.project.id, | ||
| projectEnvironmentApiKey: wcpProjectEnvironment.apiKey | ||
| }); | ||
| return License.fromLicenseDto(license); | ||
| } | ||
| const license = await getWcpProjectLicense({ | ||
| orgId: wcpProjectEnvironment.org.id, | ||
| projectId: wcpProjectEnvironment.project.id, | ||
| projectEnvironmentApiKey: wcpProjectEnvironment.apiKey | ||
| }); | ||
| return License.fromLicenseDto(license); | ||
| } | ||
| constructor(license) { | ||
| this.license = license; | ||
| } | ||
| getRawLicense() { | ||
| return this.license; | ||
| } | ||
| toDto() { | ||
| return this.license; | ||
| } | ||
| getProject() { | ||
| return { | ||
| orgId: this.license.orgId, | ||
| projectId: this.license.projectId, | ||
| package: this.license.package | ||
| }; | ||
| } | ||
| canUseFeature(wcpFeatureId) { | ||
| return this.license.package?.features?.[wcpFeatureId]?.enabled === true; | ||
| } | ||
| canUseAacl() { | ||
| return this.canUseFeature("advancedAccessControlLayer"); | ||
| } | ||
| canUseTeams() { | ||
| if (!this.canUseAacl()) { | ||
| return false; | ||
| constructor(license){ | ||
| this.license = license; | ||
| } | ||
| return this.license.package.features.advancedAccessControlLayer.options.teams; | ||
| } | ||
| canUseFolderLevelPermissions() { | ||
| if (!this.canUseAacl()) { | ||
| return false; | ||
| getRawLicense() { | ||
| return this.license; | ||
| } | ||
| return this.license.package.features.advancedAccessControlLayer.options.folderLevelPermissions; | ||
| } | ||
| canUseHcmsFieldPermissions() { | ||
| if (!this.canUseAacl()) { | ||
| return false; | ||
| toDto() { | ||
| return this.license; | ||
| } | ||
| return this.license.package.features.advancedAccessControlLayer.options.hcmsFieldPermissions; | ||
| } | ||
| canUsePrivateFiles() { | ||
| if (!this.canUseAacl()) { | ||
| return false; | ||
| getProject() { | ||
| return { | ||
| orgId: this.license.orgId, | ||
| projectId: this.license.projectId, | ||
| package: this.license.package | ||
| }; | ||
| } | ||
| return this.license.package.features.advancedAccessControlLayer.options.privateFiles; | ||
| } | ||
| canUseAuditLogs() { | ||
| return this.canUseFeature("auditLogs"); | ||
| } | ||
| canUseRecordLocking() { | ||
| return this.canUseFeature("recordLocking"); | ||
| } | ||
| canUseFileManagerThreatDetection() { | ||
| return this.license.package.features.fileManager?.options.threatDetection ?? false; | ||
| } | ||
| canUseWorkflows() { | ||
| return this.canUseFeature("advancedPublishingWorkflow"); | ||
| } | ||
| canUseAiImageEnrichment() { | ||
| return this.license.package.features.aiPowerups?.options?.fileManager?.imageEnrichment === true; | ||
| } | ||
| canUseAiPageGeneration() { | ||
| return this.license.package.features.aiPowerups?.options?.websiteBuilder?.pageGeneration === true; | ||
| } | ||
| canUseAiLexicalGeneration() { | ||
| return this.license.package.features.aiPowerups?.options?.lexicalGeneration === true; | ||
| } | ||
| canUseFeature(wcpFeatureId) { | ||
| return this.license.package?.features?.[wcpFeatureId]?.enabled === true; | ||
| } | ||
| canUseAacl() { | ||
| return this.canUseFeature("advancedAccessControlLayer"); | ||
| } | ||
| canUseTeams() { | ||
| if (!this.canUseAacl()) return false; | ||
| return this.license.package.features.advancedAccessControlLayer.options.teams; | ||
| } | ||
| canUseFolderLevelPermissions() { | ||
| if (!this.canUseAacl()) return false; | ||
| return this.license.package.features.advancedAccessControlLayer.options.folderLevelPermissions; | ||
| } | ||
| canUseHcmsFieldPermissions() { | ||
| if (!this.canUseAacl()) return false; | ||
| return this.license.package.features.advancedAccessControlLayer.options.hcmsFieldPermissions; | ||
| } | ||
| canUsePrivateFiles() { | ||
| if (!this.canUseAacl()) return false; | ||
| return this.license.package.features.advancedAccessControlLayer.options.privateFiles; | ||
| } | ||
| canUseAuditLogs() { | ||
| return this.canUseFeature("auditLogs"); | ||
| } | ||
| canUseRecordLocking() { | ||
| return this.canUseFeature("recordLocking"); | ||
| } | ||
| canUseFileManagerThreatDetection() { | ||
| return this.license.package.features.fileManager?.options.threatDetection ?? false; | ||
| } | ||
| canUseWorkflows() { | ||
| return this.canUseFeature("advancedPublishingWorkflow"); | ||
| } | ||
| canUseAiImageEnrichment() { | ||
| return this.license.package.features.aiPowerups?.options?.fileManager?.imageEnrichment === true; | ||
| } | ||
| canUseAiPageGeneration() { | ||
| return this.license.package.features.aiPowerups?.options?.websiteBuilder?.pageGeneration === true; | ||
| } | ||
| canUseAiLexicalGeneration() { | ||
| return this.license.package.features.aiPowerups?.options?.lexicalGeneration === true; | ||
| } | ||
| } | ||
| export { License }; | ||
| //# sourceMappingURL=License.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["getWcpProjectEnvironment","getWcpProjectLicense","NullLicense","License","fromLicenseDto","license","fromEnvironment","wcpProjectEnvironment","orgId","org","id","projectId","project","projectEnvironmentApiKey","apiKey","constructor","getRawLicense","toDto","getProject","package","canUseFeature","wcpFeatureId","features","enabled","canUseAacl","canUseTeams","advancedAccessControlLayer","options","teams","canUseFolderLevelPermissions","folderLevelPermissions","canUseHcmsFieldPermissions","hcmsFieldPermissions","canUsePrivateFiles","privateFiles","canUseAuditLogs","canUseRecordLocking","canUseFileManagerThreatDetection","fileManager","threatDetection","canUseWorkflows","canUseAiImageEnrichment","aiPowerups","imageEnrichment","canUseAiPageGeneration","websiteBuilder","pageGeneration","canUseAiLexicalGeneration","lexicalGeneration"],"sources":["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 canUseAiLexicalGeneration(): boolean {\n return this.license.package.features.aiPowerups?.options?.lexicalGeneration === true;\n }\n}\n"],"mappings":"AAAA,SAASA,wBAAwB;AAEjC,SAASC,oBAAoB;AAC7B,SAASC,WAAW;AAGpB,OAAO,MAAMC,OAAO,CAAqB;EAGrC,OAAOC,cAAcA,CAACC,OAA0C,EAAE;IAC9D,IAAI,CAACA,OAAO,EAAE;MACV,OAAO,IAAIH,WAAW,CAAC,CAAC;IAC5B;IAEA,OAAO,IAAIC,OAAO,CAACE,OAAO,CAAC;EAC/B;EAEA,aAAaC,eAAeA,CAAA,EAAG;IAC3B,MAAMC,qBAAqB,GAAGP,wBAAwB,CAAC,CAAC;IAExD,IAAI,CAACO,qBAAqB,EAAE;MACxB,OAAO,IAAIL,WAAW,CAAC,CAAC;IAC5B;IAEA,MAAMG,OAAO,GAAG,MAAMJ,oBAAoB,CAAC;MACvCO,KAAK,EAAED,qBAAqB,CAACE,GAAG,CAACC,EAAE;MACnCC,SAAS,EAAEJ,qBAAqB,CAACK,OAAO,CAACF,EAAE;MAC3CG,wBAAwB,EAAEN,qBAAqB,CAACO;IACpD,CAAC,CAAC;IAEF,OAAOX,OAAO,CAACC,cAAc,CAACC,OAAO,CAAC;EAC1C;EAEQU,WAAWA,CAACV,OAAmC,EAAE;IACrD,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEAW,aAAaA,CAAA,EAA+B;IACxC,OAAO,IAAI,CAACX,OAAO;EACvB;EAEAY,KAAKA,CAAA,EAA+B;IAChC,OAAO,IAAI,CAACZ,OAAO;EACvB;EAEAa,UAAUA,CAAA,EAAsB;IAC5B,OAAO;MACHV,KAAK,EAAE,IAAI,CAACH,OAAO,CAACG,KAAK;MACzBG,SAAS,EAAE,IAAI,CAACN,OAAO,CAACM,SAAS;MACjCQ,OAAO,EAAE,IAAI,CAACd,OAAO,CAACc;IAC1B,CAAC;EACL;EAEAC,aAAaA,CAACC,YAA4C,EAAE;IACxD,OAAO,IAAI,CAAChB,OAAO,CAACc,OAAO,EAAEG,QAAQ,GAAGD,YAAY,CAAC,EAAEE,OAAO,KAAK,IAAI;EAC3E;EAEAC,UAAUA,CAAA,EAAG;IACT,OAAO,IAAI,CAACJ,aAAa,CAAC,4BAA4B,CAAC;EAC3D;EAEAK,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC,IAAI,CAACD,UAAU,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI,CAACnB,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACI,0BAA0B,CAACC,OAAO,CAACC,KAAK;EACjF;EAEAC,4BAA4BA,CAAA,EAAG;IAC3B,IAAI,CAAC,IAAI,CAACL,UAAU,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI,CAACnB,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACI,0BAA0B,CAACC,OAAO,CAClEG,sBAAsB;EAC/B;EAEAC,0BAA0BA,CAAA,EAAG;IACzB,IAAI,CAAC,IAAI,CAACP,UAAU,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI,CAACnB,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACI,0BAA0B,CAACC,OAAO,CAClEK,oBAAoB;EAC7B;EAEAC,kBAAkBA,CAAA,EAAG;IACjB,IAAI,CAAC,IAAI,CAACT,UAAU,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI,CAACnB,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACI,0BAA0B,CAACC,OAAO,CAACO,YAAY;EACxF;EAEAC,eAAeA,CAAA,EAAG;IACd,OAAO,IAAI,CAACf,aAAa,CAAC,WAAW,CAAC;EAC1C;EAEAgB,mBAAmBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAChB,aAAa,CAAC,eAAe,CAAC;EAC9C;EAEAiB,gCAAgCA,CAAA,EAAG;IAC/B,OAAO,IAAI,CAAChC,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACgB,WAAW,EAAEX,OAAO,CAACY,eAAe,IAAI,KAAK;EACtF;EAEOC,eAAeA,CAAA,EAAY;IAC9B,OAAO,IAAI,CAACpB,aAAa,CAAC,4BAA4B,CAAC;EAC3D;EAEAqB,uBAAuBA,CAAA,EAAY;IAC/B,OACI,IAAI,CAACpC,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACoB,UAAU,EAAEf,OAAO,EAAEW,WAAW,EAAEK,eAAe,KAAK,IAAI;EAEhG;EAEAC,sBAAsBA,CAAA,EAAY;IAC9B,OACI,IAAI,CAACvC,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACoB,UAAU,EAAEf,OAAO,EAAEkB,cAAc,EAAEC,cAAc,KACjF,IAAI;EAEZ;EAEAC,yBAAyBA,CAAA,EAAY;IACjC,OAAO,IAAI,CAAC1C,OAAO,CAACc,OAAO,CAACG,QAAQ,CAACoB,UAAU,EAAEf,OAAO,EAAEqB,iBAAiB,KAAK,IAAI;EACxF;AACJ","ignoreList":[]} | ||
| {"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 canUseAiLexicalGeneration(): boolean {\n return this.license.package.features.aiPowerups?.options?.lexicalGeneration === true;\n }\n}\n"],"names":["License","license","NullLicense","wcpProjectEnvironment","getWcpProjectEnvironment","getWcpProjectLicense","wcpFeatureId"],"mappings":";;;AAMO,MAAMA;IAGT,OAAO,eAAeC,OAA0C,EAAE;QAC9D,IAAI,CAACA,SACD,OAAO,IAAIC;QAGf,OAAO,IAAIF,QAAQC;IACvB;IAEA,aAAa,kBAAkB;QAC3B,MAAME,wBAAwBC;QAE9B,IAAI,CAACD,uBACD,OAAO,IAAID;QAGf,MAAMD,UAAU,MAAMI,qBAAqB;YACvC,OAAOF,sBAAsB,GAAG,CAAC,EAAE;YACnC,WAAWA,sBAAsB,OAAO,CAAC,EAAE;YAC3C,0BAA0BA,sBAAsB,MAAM;QAC1D;QAEA,OAAOH,QAAQ,cAAc,CAACC;IAClC;IAEA,YAAoBA,OAAmC,CAAE;QACrD,IAAI,CAAC,OAAO,GAAGA;IACnB;IAEA,gBAA4C;QACxC,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,QAAoC;QAChC,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,aAAgC;QAC5B,OAAO;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO;QACjC;IACJ;IAEA,cAAcK,YAA4C,EAAE;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAACA,aAAa,EAAE,YAAY;IACvE;IAEA,aAAa;QACT,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B;IAEA,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,IAChB,OAAO;QAGX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,OAAO,CAAC,KAAK;IACjF;IAEA,+BAA+B;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,IAChB,OAAO;QAGX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,OAAO,CAClE,sBAAsB;IAC/B;IAEA,6BAA6B;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,IAChB,OAAO;QAGX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,OAAO,CAClE,oBAAoB;IAC7B;IAEA,qBAAqB;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,IAChB,OAAO;QAGX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,OAAO,CAAC,YAAY;IACxF;IAEA,kBAAkB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B;IAEA,sBAAsB;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B;IAEA,mCAAmC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,mBAAmB;IACjF;IAEO,kBAA2B;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B;IAEA,0BAAmC;QAC/B,OACI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,oBAAoB;IAE5F;IAEA,yBAAkC;QAC9B,OACI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,mBACnE;IAER;IAEA,4BAAqC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,sBAAsB;IACpF;AACJ"} |
+29
-39
| import { decrypt } from "./encryption.js"; | ||
| import { getWcpApiUrl } from "./urls.js"; | ||
| const fetchWcpProjectLicense = async ({ | ||
| orgId, | ||
| projectId, | ||
| projectEnvironmentApiKey | ||
| }) => { | ||
| // Fetch and decrypt the license. | ||
| const getLicenseEndpoint = getWcpApiUrl(`/orgs/${orgId}/projects/${projectId}/license`); | ||
| const encryptedLicense = await fetch(getLicenseEndpoint, { | ||
| headers: { | ||
| authorization: projectEnvironmentApiKey | ||
| const fetchWcpProjectLicense = async ({ orgId, projectId, projectEnvironmentApiKey })=>{ | ||
| const getLicenseEndpoint = getWcpApiUrl(`/orgs/${orgId}/projects/${projectId}/license`); | ||
| const encryptedLicense = await fetch(getLicenseEndpoint, { | ||
| headers: { | ||
| authorization: projectEnvironmentApiKey | ||
| } | ||
| }).then((response)=>{ | ||
| if (response.ok) return response.json(); | ||
| console.warn(`An error occurred while trying to retrieve the license for project "${orgId}/${projectId}": invalid response status (${response.status}, ${response.statusText})`, response); | ||
| return null; | ||
| }).catch((e)=>{ | ||
| console.warn(`An error occurred while trying to retrieve the license for project "${orgId}/${projectId}": ${e.message}`, e); | ||
| return null; | ||
| }); | ||
| return encryptedLicense; | ||
| }; | ||
| const getWcpProjectLicense = async (params)=>{ | ||
| let encryptedLicense = process.env.WCP_PROJECT_LICENSE; | ||
| if (!encryptedLicense) { | ||
| const fetchedLicense = await fetchWcpProjectLicense(params); | ||
| if (fetchedLicense) encryptedLicense = fetchedLicense.license; | ||
| } | ||
| }).then(response => { | ||
| if (response.ok) { | ||
| return response.json(); | ||
| if (!encryptedLicense) return null; | ||
| try { | ||
| return decrypt(encryptedLicense); | ||
| } catch (e) { | ||
| const projectId = `${params.orgId}/${params.projectId}`; | ||
| console.warn(`An error occurred while trying to decrypt the retrieved license for project "${projectId}": ${e.message}`); | ||
| return null; | ||
| } | ||
| console.warn(`An error occurred while trying to retrieve the license for project "${orgId}/${projectId}": invalid response status (${response.status}, ${response.statusText})`, response); | ||
| return null; | ||
| }).catch(e => { | ||
| console.warn(`An error occurred while trying to retrieve the license for project "${orgId}/${projectId}": ${e.message}`, e); | ||
| return null; | ||
| }); | ||
| return encryptedLicense; | ||
| }; | ||
| export const getWcpProjectLicense = async params => { | ||
| let encryptedLicense = process.env.WCP_PROJECT_LICENSE; | ||
| if (!encryptedLicense) { | ||
| const fetchedLicense = await fetchWcpProjectLicense(params); | ||
| if (fetchedLicense) { | ||
| encryptedLicense = fetchedLicense.license; | ||
| } | ||
| } | ||
| if (!encryptedLicense) { | ||
| return null; | ||
| } | ||
| try { | ||
| return decrypt(encryptedLicense); | ||
| } catch (e) { | ||
| const projectId = `${params.orgId}/${params.projectId}`; | ||
| console.warn(`An error occurred while trying to decrypt the retrieved license for project "${projectId}": ${e.message}`); | ||
| return null; | ||
| } | ||
| }; | ||
| export { getWcpProjectLicense }; | ||
| //# sourceMappingURL=licenses.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["decrypt","getWcpApiUrl","fetchWcpProjectLicense","orgId","projectId","projectEnvironmentApiKey","getLicenseEndpoint","encryptedLicense","fetch","headers","authorization","then","response","ok","json","console","warn","status","statusText","catch","e","message","getWcpProjectLicense","params","process","env","WCP_PROJECT_LICENSE","fetchedLicense","license"],"sources":["licenses.ts"],"sourcesContent":["import type { DecryptedWcpProjectLicense, EncryptedWcpProjectLicense } from \"./types.js\";\nimport { decrypt } from \"./encryption.js\";\nimport { getWcpApiUrl } from \"./urls.js\";\n\ninterface GetWcpProjectLicenseParams {\n orgId: string;\n projectId: string;\n projectEnvironmentApiKey: string;\n}\n\nconst fetchWcpProjectLicense = async ({\n orgId,\n projectId,\n projectEnvironmentApiKey\n}: GetWcpProjectLicenseParams) => {\n // Fetch and decrypt the license.\n const getLicenseEndpoint = getWcpApiUrl(`/orgs/${orgId}/projects/${projectId}/license`);\n\n const encryptedLicense: { license: EncryptedWcpProjectLicense } | null = await fetch(\n getLicenseEndpoint,\n {\n headers: { authorization: projectEnvironmentApiKey }\n }\n )\n .then(response => {\n if (response.ok) {\n return response.json();\n }\n\n console.warn(\n `An error occurred while trying to retrieve the license for project \"${orgId}/${projectId}\": invalid response status (${response.status}, ${response.statusText})`,\n response\n );\n\n return null;\n })\n .catch(e => {\n console.warn(\n `An error occurred while trying to retrieve the license for project \"${orgId}/${projectId}\": ${e.message}`,\n e\n );\n return null;\n });\n\n return encryptedLicense;\n};\n\nexport const getWcpProjectLicense = async (params: GetWcpProjectLicenseParams) => {\n let encryptedLicense = process.env.WCP_PROJECT_LICENSE;\n if (!encryptedLicense) {\n const fetchedLicense = await fetchWcpProjectLicense(params);\n if (fetchedLicense) {\n encryptedLicense = fetchedLicense.license;\n }\n }\n\n if (!encryptedLicense) {\n return null;\n }\n\n try {\n return decrypt<DecryptedWcpProjectLicense>(encryptedLicense);\n } catch (e) {\n const projectId = `${params.orgId}/${params.projectId}`;\n console.warn(\n `An error occurred while trying to decrypt the retrieved license for project \"${projectId}\": ${e.message}`\n );\n return null;\n }\n};\n"],"mappings":"AACA,SAASA,OAAO;AAChB,SAASC,YAAY;AAQrB,MAAMC,sBAAsB,GAAG,MAAAA,CAAO;EAClCC,KAAK;EACLC,SAAS;EACTC;AACwB,CAAC,KAAK;EAC9B;EACA,MAAMC,kBAAkB,GAAGL,YAAY,CAAC,SAASE,KAAK,aAAaC,SAAS,UAAU,CAAC;EAEvF,MAAMG,gBAAgE,GAAG,MAAMC,KAAK,CAChFF,kBAAkB,EAClB;IACIG,OAAO,EAAE;MAAEC,aAAa,EAAEL;IAAyB;EACvD,CACJ,CAAC,CACIM,IAAI,CAACC,QAAQ,IAAI;IACd,IAAIA,QAAQ,CAACC,EAAE,EAAE;MACb,OAAOD,QAAQ,CAACE,IAAI,CAAC,CAAC;IAC1B;IAEAC,OAAO,CAACC,IAAI,CACR,uEAAuEb,KAAK,IAAIC,SAAS,+BAA+BQ,QAAQ,CAACK,MAAM,KAAKL,QAAQ,CAACM,UAAU,GAAG,EAClKN,QACJ,CAAC;IAED,OAAO,IAAI;EACf,CAAC,CAAC,CACDO,KAAK,CAACC,CAAC,IAAI;IACRL,OAAO,CAACC,IAAI,CACR,uEAAuEb,KAAK,IAAIC,SAAS,MAAMgB,CAAC,CAACC,OAAO,EAAE,EAC1GD,CACJ,CAAC;IACD,OAAO,IAAI;EACf,CAAC,CAAC;EAEN,OAAOb,gBAAgB;AAC3B,CAAC;AAED,OAAO,MAAMe,oBAAoB,GAAG,MAAOC,MAAkC,IAAK;EAC9E,IAAIhB,gBAAgB,GAAGiB,OAAO,CAACC,GAAG,CAACC,mBAAmB;EACtD,IAAI,CAACnB,gBAAgB,EAAE;IACnB,MAAMoB,cAAc,GAAG,MAAMzB,sBAAsB,CAACqB,MAAM,CAAC;IAC3D,IAAII,cAAc,EAAE;MAChBpB,gBAAgB,GAAGoB,cAAc,CAACC,OAAO;IAC7C;EACJ;EAEA,IAAI,CAACrB,gBAAgB,EAAE;IACnB,OAAO,IAAI;EACf;EAEA,IAAI;IACA,OAAOP,OAAO,CAA6BO,gBAAgB,CAAC;EAChE,CAAC,CAAC,OAAOa,CAAC,EAAE;IACR,MAAMhB,SAAS,GAAG,GAAGmB,MAAM,CAACpB,KAAK,IAAIoB,MAAM,CAACnB,SAAS,EAAE;IACvDW,OAAO,CAACC,IAAI,CACR,gFAAgFZ,SAAS,MAAMgB,CAAC,CAACC,OAAO,EAC5G,CAAC;IACD,OAAO,IAAI;EACf;AACJ,CAAC","ignoreList":[]} | ||
| {"version":3,"file":"licenses.js","sources":["../src/licenses.ts"],"sourcesContent":["import type { DecryptedWcpProjectLicense, EncryptedWcpProjectLicense } from \"./types.js\";\nimport { decrypt } from \"./encryption.js\";\nimport { getWcpApiUrl } from \"./urls.js\";\n\ninterface GetWcpProjectLicenseParams {\n orgId: string;\n projectId: string;\n projectEnvironmentApiKey: string;\n}\n\nconst fetchWcpProjectLicense = async ({\n orgId,\n projectId,\n projectEnvironmentApiKey\n}: GetWcpProjectLicenseParams) => {\n // Fetch and decrypt the license.\n const getLicenseEndpoint = getWcpApiUrl(`/orgs/${orgId}/projects/${projectId}/license`);\n\n const encryptedLicense: { license: EncryptedWcpProjectLicense } | null = await fetch(\n getLicenseEndpoint,\n {\n headers: { authorization: projectEnvironmentApiKey }\n }\n )\n .then(response => {\n if (response.ok) {\n return response.json();\n }\n\n console.warn(\n `An error occurred while trying to retrieve the license for project \"${orgId}/${projectId}\": invalid response status (${response.status}, ${response.statusText})`,\n response\n );\n\n return null;\n })\n .catch(e => {\n console.warn(\n `An error occurred while trying to retrieve the license for project \"${orgId}/${projectId}\": ${e.message}`,\n e\n );\n return null;\n });\n\n return encryptedLicense;\n};\n\nexport const getWcpProjectLicense = async (params: GetWcpProjectLicenseParams) => {\n let encryptedLicense = process.env.WCP_PROJECT_LICENSE;\n if (!encryptedLicense) {\n const fetchedLicense = await fetchWcpProjectLicense(params);\n if (fetchedLicense) {\n encryptedLicense = fetchedLicense.license;\n }\n }\n\n if (!encryptedLicense) {\n return null;\n }\n\n try {\n return decrypt<DecryptedWcpProjectLicense>(encryptedLicense);\n } catch (e) {\n const projectId = `${params.orgId}/${params.projectId}`;\n console.warn(\n `An error occurred while trying to decrypt the retrieved license for project \"${projectId}\": ${e.message}`\n );\n return null;\n }\n};\n"],"names":["fetchWcpProjectLicense","orgId","projectId","projectEnvironmentApiKey","getLicenseEndpoint","getWcpApiUrl","encryptedLicense","fetch","response","console","e","getWcpProjectLicense","params","process","fetchedLicense","decrypt"],"mappings":";;AAUA,MAAMA,yBAAyB,OAAO,EAClCC,KAAK,EACLC,SAAS,EACTC,wBAAwB,EACC;IAEzB,MAAMC,qBAAqBC,aAAa,CAAC,MAAM,EAAEJ,MAAM,UAAU,EAAEC,UAAU,QAAQ,CAAC;IAEtF,MAAMI,mBAAmE,MAAMC,MAC3EH,oBACA;QACI,SAAS;YAAE,eAAeD;QAAyB;IACvD,GAEC,IAAI,CAACK,CAAAA;QACF,IAAIA,SAAS,EAAE,EACX,OAAOA,SAAS,IAAI;QAGxBC,QAAQ,IAAI,CACR,CAAC,oEAAoE,EAAER,MAAM,CAAC,EAAEC,UAAU,4BAA4B,EAAEM,SAAS,MAAM,CAAC,EAAE,EAAEA,SAAS,UAAU,CAAC,CAAC,CAAC,EAClKA;QAGJ,OAAO;IACX,GACC,KAAK,CAACE,CAAAA;QACHD,QAAQ,IAAI,CACR,CAAC,oEAAoE,EAAER,MAAM,CAAC,EAAEC,UAAU,GAAG,EAAEQ,EAAE,OAAO,EAAE,EAC1GA;QAEJ,OAAO;IACX;IAEJ,OAAOJ;AACX;AAEO,MAAMK,uBAAuB,OAAOC;IACvC,IAAIN,mBAAmBO,QAAQ,GAAG,CAAC,mBAAmB;IACtD,IAAI,CAACP,kBAAkB;QACnB,MAAMQ,iBAAiB,MAAMd,uBAAuBY;QACpD,IAAIE,gBACAR,mBAAmBQ,eAAe,OAAO;IAEjD;IAEA,IAAI,CAACR,kBACD,OAAO;IAGX,IAAI;QACA,OAAOS,QAAoCT;IAC/C,EAAE,OAAOI,GAAG;QACR,MAAMR,YAAY,GAAGU,OAAO,KAAK,CAAC,CAAC,EAAEA,OAAO,SAAS,EAAE;QACvDH,QAAQ,IAAI,CACR,CAAC,6EAA6E,EAAEP,UAAU,GAAG,EAAEQ,EAAE,OAAO,EAAE;QAE9G,OAAO;IACX;AACJ"} |
+50
-52
@@ -1,56 +0,54 @@ | ||
| export class NullLicense { | ||
| getRawLicense() { | ||
| return null; | ||
| } | ||
| toDto() { | ||
| return null; | ||
| } | ||
| getProject() { | ||
| return null; | ||
| } | ||
| canUseAacl() { | ||
| return false; | ||
| } | ||
| canUseAuditLogs() { | ||
| return false; | ||
| } | ||
| canUseFeature(featureId) { | ||
| // For backwards compatibility, we need to check the legacy ENV variable `WEBINY_MULTI_TENANCY`. | ||
| if (featureId === "multiTenancy") { | ||
| return process.env.WEBINY_MULTI_TENANCY === "true"; | ||
| class NullLicense { | ||
| getRawLicense() { | ||
| return null; | ||
| } | ||
| return false; | ||
| } | ||
| canUseFileManagerThreatDetection() { | ||
| return false; | ||
| } | ||
| canUseFolderLevelPermissions() { | ||
| return false; | ||
| } | ||
| canUseHcmsFieldPermissions() { | ||
| return false; | ||
| } | ||
| canUsePrivateFiles() { | ||
| return false; | ||
| } | ||
| canUseRecordLocking() { | ||
| return false; | ||
| } | ||
| canUseTeams() { | ||
| return false; | ||
| } | ||
| canUseWorkflows() { | ||
| return false; | ||
| } | ||
| canUseAiImageEnrichment() { | ||
| return false; | ||
| } | ||
| canUseAiPageGeneration() { | ||
| return false; | ||
| } | ||
| canUseAiLexicalGeneration() { | ||
| return false; | ||
| } | ||
| toDto() { | ||
| return null; | ||
| } | ||
| getProject() { | ||
| return null; | ||
| } | ||
| canUseAacl() { | ||
| return false; | ||
| } | ||
| canUseAuditLogs() { | ||
| return false; | ||
| } | ||
| canUseFeature(featureId) { | ||
| if ("multiTenancy" === featureId) return "true" === process.env.WEBINY_MULTI_TENANCY; | ||
| return false; | ||
| } | ||
| canUseFileManagerThreatDetection() { | ||
| return false; | ||
| } | ||
| canUseFolderLevelPermissions() { | ||
| return false; | ||
| } | ||
| canUseHcmsFieldPermissions() { | ||
| return false; | ||
| } | ||
| canUsePrivateFiles() { | ||
| return false; | ||
| } | ||
| canUseRecordLocking() { | ||
| return false; | ||
| } | ||
| canUseTeams() { | ||
| return false; | ||
| } | ||
| canUseWorkflows() { | ||
| return false; | ||
| } | ||
| canUseAiImageEnrichment() { | ||
| return false; | ||
| } | ||
| canUseAiPageGeneration() { | ||
| return false; | ||
| } | ||
| canUseAiLexicalGeneration() { | ||
| return false; | ||
| } | ||
| } | ||
| export { NullLicense }; | ||
| //# sourceMappingURL=NullLicense.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["NullLicense","getRawLicense","toDto","getProject","canUseAacl","canUseAuditLogs","canUseFeature","featureId","process","env","WEBINY_MULTI_TENANCY","canUseFileManagerThreatDetection","canUseFolderLevelPermissions","canUseHcmsFieldPermissions","canUsePrivateFiles","canUseRecordLocking","canUseTeams","canUseWorkflows","canUseAiImageEnrichment","canUseAiPageGeneration","canUseAiLexicalGeneration"],"sources":["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 canUseAiLexicalGeneration(): boolean {\n return false;\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,WAAW,CAAqB;EACzCC,aAAaA,CAAA,EAAG;IACZ,OAAO,IAAI;EACf;EAEAC,KAAKA,CAAA,EAAS;IACV,OAAO,IAAI;EACf;EAEAC,UAAUA,CAAA,EAAsB;IAC5B,OAAO,IAAI;EACf;EAEAC,UAAUA,CAAA,EAAG;IACT,OAAO,KAAK;EAChB;EAEAC,eAAeA,CAAA,EAAG;IACd,OAAO,KAAK;EAChB;EAEAC,aAAaA,CAACC,SAAyC,EAAW;IAC9D;IACA,IAAIA,SAAS,KAAK,cAAc,EAAE;MAC9B,OAAOC,OAAO,CAACC,GAAG,CAACC,oBAAoB,KAAK,MAAM;IACtD;IAEA,OAAO,KAAK;EAChB;EAEAC,gCAAgCA,CAAA,EAAG;IAC/B,OAAO,KAAK;EAChB;EAEAC,4BAA4BA,CAAA,EAAG;IAC3B,OAAO,KAAK;EAChB;EAEAC,0BAA0BA,CAAA,EAAG;IACzB,OAAO,KAAK;EAChB;EAEAC,kBAAkBA,CAAA,EAAG;IACjB,OAAO,KAAK;EAChB;EAEAC,mBAAmBA,CAAA,EAAG;IAClB,OAAO,KAAK;EAChB;EAEAC,WAAWA,CAAA,EAAG;IACV,OAAO,KAAK;EAChB;EAEOC,eAAeA,CAAA,EAAY;IAC9B,OAAO,KAAK;EAChB;EAEAC,uBAAuBA,CAAA,EAAY;IAC/B,OAAO,KAAK;EAChB;EAEAC,sBAAsBA,CAAA,EAAY;IAC9B,OAAO,KAAK;EAChB;EAEAC,yBAAyBA,CAAA,EAAY;IACjC,OAAO,KAAK;EAChB;AACJ","ignoreList":[]} | ||
| {"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 canUseAiLexicalGeneration(): boolean {\n return false;\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,4BAAqC;QACjC,OAAO;IACX;AACJ"} |
+3
-3
| { | ||
| "name": "@webiny/wcp", | ||
| "version": "6.3.0", | ||
| "version": "6.4.0-beta.0", | ||
| "type": "module", | ||
@@ -18,3 +18,3 @@ "exports": { | ||
| "devDependencies": { | ||
| "@webiny/build-tools": "6.3.0", | ||
| "@webiny/build-tools": "6.4.0-beta.0", | ||
| "rimraf": "6.1.3", | ||
@@ -32,3 +32,3 @@ "typescript": "6.0.3" | ||
| }, | ||
| "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693" | ||
| "gitHead": "a545d7529828af07d08d49c3da1bcb967483b9ce" | ||
| } |
| import { MT_OPTIONS_MAX_COUNT_TYPE, PROJECT_PACKAGE_FEATURE_NAME } from "../types.js"; | ||
| export const createTestWcpLicense = options => { | ||
| return { | ||
| orgId: "org-id", | ||
| projectId: "project-id", | ||
| package: { | ||
| features: { | ||
| [PROJECT_PACKAGE_FEATURE_NAME.AACL]: { | ||
| enabled: true, | ||
| options: { | ||
| teams: true, | ||
| folderLevelPermissions: options?.folderLevelPermissions ?? true, | ||
| privateFiles: true, | ||
| hcmsFieldPermissions: options?.hcmsFieldPermissions ?? true | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.MT]: { | ||
| enabled: true, | ||
| options: { | ||
| maxCount: { | ||
| type: MT_OPTIONS_MAX_COUNT_TYPE.SEAT_BASED | ||
| const createTestWcpLicense = (options)=>({ | ||
| orgId: "org-id", | ||
| projectId: "project-id", | ||
| package: { | ||
| features: { | ||
| [PROJECT_PACKAGE_FEATURE_NAME.AACL]: { | ||
| enabled: true, | ||
| options: { | ||
| teams: true, | ||
| folderLevelPermissions: options?.folderLevelPermissions ?? true, | ||
| privateFiles: true, | ||
| hcmsFieldPermissions: options?.hcmsFieldPermissions ?? true | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.MT]: { | ||
| enabled: true, | ||
| options: { | ||
| maxCount: { | ||
| type: MT_OPTIONS_MAX_COUNT_TYPE.SEAT_BASED | ||
| } | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.APW]: { | ||
| enabled: true | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.AUDIT_LOGS]: { | ||
| enabled: false | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.RECORD_LOCKING]: { | ||
| enabled: options?.recordLocking ?? false | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.SEATS]: { | ||
| enabled: true, | ||
| options: { | ||
| maxCount: 100 | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.FILE_MANAGER]: { | ||
| enabled: false, | ||
| options: { | ||
| threatDetection: false | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.AI_POWERUPS]: { | ||
| enabled: false, | ||
| options: {} | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.APW]: { | ||
| enabled: true | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.AUDIT_LOGS]: { | ||
| enabled: false | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.RECORD_LOCKING]: { | ||
| enabled: options?.recordLocking ?? false | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.SEATS]: { | ||
| enabled: true, | ||
| options: { | ||
| maxCount: 100 | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.FILE_MANAGER]: { | ||
| enabled: false, | ||
| options: { | ||
| threatDetection: false | ||
| } | ||
| }, | ||
| [PROJECT_PACKAGE_FEATURE_NAME.AI_POWERUPS]: { | ||
| enabled: false, | ||
| options: {} | ||
| } | ||
| } | ||
| } | ||
| }; | ||
| }; | ||
| }); | ||
| export { createTestWcpLicense }; | ||
| //# sourceMappingURL=createTestWcpLicense.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["MT_OPTIONS_MAX_COUNT_TYPE","PROJECT_PACKAGE_FEATURE_NAME","createTestWcpLicense","options","orgId","projectId","package","features","AACL","enabled","teams","folderLevelPermissions","privateFiles","hcmsFieldPermissions","MT","maxCount","type","SEAT_BASED","APW","AUDIT_LOGS","RECORD_LOCKING","recordLocking","SEATS","FILE_MANAGER","threatDetection","AI_POWERUPS"],"sources":["createTestWcpLicense.ts"],"sourcesContent":["import type { DecryptedWcpProjectLicense } from \"~/types.js\";\nimport { MT_OPTIONS_MAX_COUNT_TYPE, PROJECT_PACKAGE_FEATURE_NAME } from \"~/types.js\";\n\ninterface LicenseOptions {\n recordLocking?: boolean;\n folderLevelPermissions?: boolean;\n hcmsFieldPermissions?: boolean;\n}\n\nexport const createTestWcpLicense = (options?: LicenseOptions): DecryptedWcpProjectLicense => {\n return {\n orgId: \"org-id\",\n projectId: \"project-id\",\n package: {\n features: {\n [PROJECT_PACKAGE_FEATURE_NAME.AACL]: {\n enabled: true,\n options: {\n teams: true,\n folderLevelPermissions: options?.folderLevelPermissions ?? true,\n privateFiles: true,\n hcmsFieldPermissions: options?.hcmsFieldPermissions ?? true\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.MT]: {\n enabled: true,\n options: {\n maxCount: {\n type: MT_OPTIONS_MAX_COUNT_TYPE.SEAT_BASED\n }\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.APW]: {\n enabled: true\n },\n [PROJECT_PACKAGE_FEATURE_NAME.AUDIT_LOGS]: {\n enabled: false\n },\n [PROJECT_PACKAGE_FEATURE_NAME.RECORD_LOCKING]: {\n enabled: options?.recordLocking ?? false\n },\n [PROJECT_PACKAGE_FEATURE_NAME.SEATS]: {\n enabled: true,\n options: {\n maxCount: 100\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.FILE_MANAGER]: {\n enabled: false,\n options: {\n threatDetection: false\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.AI_POWERUPS]: {\n enabled: false,\n options: {}\n }\n }\n }\n };\n};\n"],"mappings":"AACA,SAASA,yBAAyB,EAAEC,4BAA4B;AAQhE,OAAO,MAAMC,oBAAoB,GAAIC,OAAwB,IAAiC;EAC1F,OAAO;IACHC,KAAK,EAAE,QAAQ;IACfC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE;MACLC,QAAQ,EAAE;QACN,CAACN,4BAA4B,CAACO,IAAI,GAAG;UACjCC,OAAO,EAAE,IAAI;UACbN,OAAO,EAAE;YACLO,KAAK,EAAE,IAAI;YACXC,sBAAsB,EAAER,OAAO,EAAEQ,sBAAsB,IAAI,IAAI;YAC/DC,YAAY,EAAE,IAAI;YAClBC,oBAAoB,EAAEV,OAAO,EAAEU,oBAAoB,IAAI;UAC3D;QACJ,CAAC;QACD,CAACZ,4BAA4B,CAACa,EAAE,GAAG;UAC/BL,OAAO,EAAE,IAAI;UACbN,OAAO,EAAE;YACLY,QAAQ,EAAE;cACNC,IAAI,EAAEhB,yBAAyB,CAACiB;YACpC;UACJ;QACJ,CAAC;QACD,CAAChB,4BAA4B,CAACiB,GAAG,GAAG;UAChCT,OAAO,EAAE;QACb,CAAC;QACD,CAACR,4BAA4B,CAACkB,UAAU,GAAG;UACvCV,OAAO,EAAE;QACb,CAAC;QACD,CAACR,4BAA4B,CAACmB,cAAc,GAAG;UAC3CX,OAAO,EAAEN,OAAO,EAAEkB,aAAa,IAAI;QACvC,CAAC;QACD,CAACpB,4BAA4B,CAACqB,KAAK,GAAG;UAClCb,OAAO,EAAE,IAAI;UACbN,OAAO,EAAE;YACLY,QAAQ,EAAE;UACd;QACJ,CAAC;QACD,CAACd,4BAA4B,CAACsB,YAAY,GAAG;UACzCd,OAAO,EAAE,KAAK;UACdN,OAAO,EAAE;YACLqB,eAAe,EAAE;UACrB;QACJ,CAAC;QACD,CAACvB,4BAA4B,CAACwB,WAAW,GAAG;UACxChB,OAAO,EAAE,KAAK;UACdN,OAAO,EAAE,CAAC;QACd;MACJ;IACJ;EACJ,CAAC;AACL,CAAC","ignoreList":[]} | ||
| {"version":3,"file":"testing/createTestWcpLicense.js","sources":["../../src/testing/createTestWcpLicense.ts"],"sourcesContent":["import type { DecryptedWcpProjectLicense } from \"~/types.js\";\nimport { MT_OPTIONS_MAX_COUNT_TYPE, PROJECT_PACKAGE_FEATURE_NAME } from \"~/types.js\";\n\ninterface LicenseOptions {\n recordLocking?: boolean;\n folderLevelPermissions?: boolean;\n hcmsFieldPermissions?: boolean;\n}\n\nexport const createTestWcpLicense = (options?: LicenseOptions): DecryptedWcpProjectLicense => {\n return {\n orgId: \"org-id\",\n projectId: \"project-id\",\n package: {\n features: {\n [PROJECT_PACKAGE_FEATURE_NAME.AACL]: {\n enabled: true,\n options: {\n teams: true,\n folderLevelPermissions: options?.folderLevelPermissions ?? true,\n privateFiles: true,\n hcmsFieldPermissions: options?.hcmsFieldPermissions ?? true\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.MT]: {\n enabled: true,\n options: {\n maxCount: {\n type: MT_OPTIONS_MAX_COUNT_TYPE.SEAT_BASED\n }\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.APW]: {\n enabled: true\n },\n [PROJECT_PACKAGE_FEATURE_NAME.AUDIT_LOGS]: {\n enabled: false\n },\n [PROJECT_PACKAGE_FEATURE_NAME.RECORD_LOCKING]: {\n enabled: options?.recordLocking ?? false\n },\n [PROJECT_PACKAGE_FEATURE_NAME.SEATS]: {\n enabled: true,\n options: {\n maxCount: 100\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.FILE_MANAGER]: {\n enabled: false,\n options: {\n threatDetection: false\n }\n },\n [PROJECT_PACKAGE_FEATURE_NAME.AI_POWERUPS]: {\n enabled: false,\n options: {}\n }\n }\n }\n };\n};\n"],"names":["createTestWcpLicense","options","PROJECT_PACKAGE_FEATURE_NAME","MT_OPTIONS_MAX_COUNT_TYPE"],"mappings":";AASO,MAAMA,uBAAuB,CAACC,UAC1B;QACH,OAAO;QACP,WAAW;QACX,SAAS;YACL,UAAU;gBACN,CAACC,6BAA6B,IAAI,CAAC,EAAE;oBACjC,SAAS;oBACT,SAAS;wBACL,OAAO;wBACP,wBAAwBD,SAAS,0BAA0B;wBAC3D,cAAc;wBACd,sBAAsBA,SAAS,wBAAwB;oBAC3D;gBACJ;gBACA,CAACC,6BAA6B,EAAE,CAAC,EAAE;oBAC/B,SAAS;oBACT,SAAS;wBACL,UAAU;4BACN,MAAMC,0BAA0B,UAAU;wBAC9C;oBACJ;gBACJ;gBACA,CAACD,6BAA6B,GAAG,CAAC,EAAE;oBAChC,SAAS;gBACb;gBACA,CAACA,6BAA6B,UAAU,CAAC,EAAE;oBACvC,SAAS;gBACb;gBACA,CAACA,6BAA6B,cAAc,CAAC,EAAE;oBAC3C,SAASD,SAAS,iBAAiB;gBACvC;gBACA,CAACC,6BAA6B,KAAK,CAAC,EAAE;oBAClC,SAAS;oBACT,SAAS;wBACL,UAAU;oBACd;gBACJ;gBACA,CAACA,6BAA6B,YAAY,CAAC,EAAE;oBACzC,SAAS;oBACT,SAAS;wBACL,iBAAiB;oBACrB;gBACJ;gBACA,CAACA,6BAA6B,WAAW,CAAC,EAAE;oBACxC,SAAS;oBACT,SAAS,CAAC;gBACd;YACJ;QACJ;IACJ"} |
+16
-20
@@ -1,24 +0,20 @@ | ||
| export let PROJECT_PACKAGE_FEATURE_NAME = /*#__PURE__*/function (PROJECT_PACKAGE_FEATURE_NAME) { | ||
| PROJECT_PACKAGE_FEATURE_NAME["SEATS"] = "seats"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["MT"] = "multiTenancy"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["APW"] = "advancedPublishingWorkflow"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["AACL"] = "advancedAccessControlLayer"; | ||
| /** | ||
| * @deprecated Use `AUDIT_LOGS` instead. | ||
| * TODO: remove oxlint disable when removing AL enum value. | ||
| */ | ||
| // oxlint-disable-next-line typescript/no-duplicate-enum-values | ||
| PROJECT_PACKAGE_FEATURE_NAME["AL"] = "auditLogs"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["AUDIT_LOGS"] = "auditLogs"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["RECORD_LOCKING"] = "recordLocking"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["FILE_MANAGER"] = "fileManager"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["AI_POWERUPS"] = "aiPowerups"; | ||
| return PROJECT_PACKAGE_FEATURE_NAME; | ||
| var types_PROJECT_PACKAGE_FEATURE_NAME = /*#__PURE__*/ function(PROJECT_PACKAGE_FEATURE_NAME) { | ||
| PROJECT_PACKAGE_FEATURE_NAME["SEATS"] = "seats"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["MT"] = "multiTenancy"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["APW"] = "advancedPublishingWorkflow"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["AACL"] = "advancedAccessControlLayer"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["AL"] = "auditLogs"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["AUDIT_LOGS"] = "auditLogs"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["RECORD_LOCKING"] = "recordLocking"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["FILE_MANAGER"] = "fileManager"; | ||
| PROJECT_PACKAGE_FEATURE_NAME["AI_POWERUPS"] = "aiPowerups"; | ||
| return PROJECT_PACKAGE_FEATURE_NAME; | ||
| }({}); | ||
| export let MT_OPTIONS_MAX_COUNT_TYPE = /*#__PURE__*/function (MT_OPTIONS_MAX_COUNT_TYPE) { | ||
| MT_OPTIONS_MAX_COUNT_TYPE["SEAT_BASED"] = "seatBased"; | ||
| MT_OPTIONS_MAX_COUNT_TYPE["FIXED"] = "fixed"; | ||
| return MT_OPTIONS_MAX_COUNT_TYPE; | ||
| var types_MT_OPTIONS_MAX_COUNT_TYPE = /*#__PURE__*/ function(MT_OPTIONS_MAX_COUNT_TYPE) { | ||
| MT_OPTIONS_MAX_COUNT_TYPE["SEAT_BASED"] = "seatBased"; | ||
| MT_OPTIONS_MAX_COUNT_TYPE["FIXED"] = "fixed"; | ||
| return MT_OPTIONS_MAX_COUNT_TYPE; | ||
| }({}); | ||
| export { types_MT_OPTIONS_MAX_COUNT_TYPE as MT_OPTIONS_MAX_COUNT_TYPE, types_PROJECT_PACKAGE_FEATURE_NAME as PROJECT_PACKAGE_FEATURE_NAME }; | ||
| //# sourceMappingURL=types.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["PROJECT_PACKAGE_FEATURE_NAME","MT_OPTIONS_MAX_COUNT_TYPE"],"sources":["types.ts"],"sourcesContent":["import type { WCP_FEATURE_LABEL } from \"./index.js\";\n\nexport interface WcpProject {\n orgId: string;\n projectId: string;\n package: {\n features: ProjectPackageFeatures;\n };\n}\n\nexport interface ILicense {\n // TODO: identify all places where raw license data is being used and refactor.\n getRawLicense: () => DecryptedWcpProjectLicense | null;\n getProject(): WcpProject | null;\n toDto(): DecryptedWcpProjectLicense | null;\n canUseFeature: (featureId: keyof typeof WCP_FEATURE_LABEL) => boolean;\n canUseAacl: () => boolean;\n canUseTeams: () => boolean;\n canUseAuditLogs: () => boolean;\n canUsePrivateFiles: () => boolean;\n canUseFileManagerThreatDetection: () => boolean;\n canUseFolderLevelPermissions: () => boolean;\n canUseRecordLocking: () => boolean;\n canUseWorkflows: () => boolean;\n canUseHcmsFieldPermissions: () => boolean;\n canUseAiImageEnrichment: () => boolean;\n canUseAiPageGeneration: () => boolean;\n canUseAiLexicalGeneration: () => boolean;\n}\n\nexport declare type WcpProjectEnvironment = {\n id: string;\n apiKey: string;\n org: {\n id: string;\n };\n project: {\n id: string;\n };\n};\n\nexport declare type EncryptedWcpProjectLicense = string;\n\nexport enum PROJECT_PACKAGE_FEATURE_NAME {\n SEATS = \"seats\",\n MT = \"multiTenancy\",\n APW = \"advancedPublishingWorkflow\",\n AACL = \"advancedAccessControlLayer\",\n /**\n * @deprecated Use `AUDIT_LOGS` instead.\n * TODO: remove oxlint disable when removing AL enum value.\n */\n // oxlint-disable-next-line typescript/no-duplicate-enum-values\n AL = \"auditLogs\",\n AUDIT_LOGS = \"auditLogs\",\n RECORD_LOCKING = \"recordLocking\",\n FILE_MANAGER = \"fileManager\",\n AI_POWERUPS = \"aiPowerups\"\n}\n\nexport enum MT_OPTIONS_MAX_COUNT_TYPE {\n SEAT_BASED = \"seatBased\",\n FIXED = \"fixed\"\n}\n\nexport interface ProjectPackageFeatures {\n [PROJECT_PACKAGE_FEATURE_NAME.SEATS]: {\n // This is always true because WCP projects immediately get access to seats (by default 1 seat).\n enabled: true;\n options: {\n maxCount: number;\n };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.MT]: {\n // This is always true because WCP projects immediately get access to multi-tenancy.\n enabled: true;\n options: {\n maxCount: {\n type: MT_OPTIONS_MAX_COUNT_TYPE;\n count?: number;\n };\n };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.APW]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AUDIT_LOGS]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.RECORD_LOCKING]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AACL]: {\n enabled: boolean;\n options: {\n teams: boolean;\n privateFiles: boolean;\n folderLevelPermissions: boolean;\n hcmsFieldPermissions: boolean;\n };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AL]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.FILE_MANAGER]: {\n enabled: boolean;\n options: { threatDetection: boolean };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AI_POWERUPS]: {\n enabled: boolean;\n options: {\n websiteBuilder?: { pageGeneration?: boolean };\n fileManager?: { imageEnrichment?: boolean };\n lexicalGeneration?: boolean;\n };\n };\n}\n\nexport interface DecryptedWcpProjectLicense {\n orgId: string;\n projectId: string;\n package: {\n features: ProjectPackageFeatures;\n };\n}\n"],"mappings":"AA2CA,WAAYA,4BAA4B,0BAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAKpC;AACJ;AACA;AACA;EACI;EATQA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA;AAiBxC,WAAYC,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA","ignoreList":[]} | ||
| {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import type { WCP_FEATURE_LABEL } from \"./index.js\";\n\nexport interface WcpProject {\n orgId: string;\n projectId: string;\n package: {\n features: ProjectPackageFeatures;\n };\n}\n\nexport interface ILicense {\n // TODO: identify all places where raw license data is being used and refactor.\n getRawLicense: () => DecryptedWcpProjectLicense | null;\n getProject(): WcpProject | null;\n toDto(): DecryptedWcpProjectLicense | null;\n canUseFeature: (featureId: keyof typeof WCP_FEATURE_LABEL) => boolean;\n canUseAacl: () => boolean;\n canUseTeams: () => boolean;\n canUseAuditLogs: () => boolean;\n canUsePrivateFiles: () => boolean;\n canUseFileManagerThreatDetection: () => boolean;\n canUseFolderLevelPermissions: () => boolean;\n canUseRecordLocking: () => boolean;\n canUseWorkflows: () => boolean;\n canUseHcmsFieldPermissions: () => boolean;\n canUseAiImageEnrichment: () => boolean;\n canUseAiPageGeneration: () => boolean;\n canUseAiLexicalGeneration: () => boolean;\n}\n\nexport declare type WcpProjectEnvironment = {\n id: string;\n apiKey: string;\n org: {\n id: string;\n };\n project: {\n id: string;\n };\n};\n\nexport declare type EncryptedWcpProjectLicense = string;\n\nexport enum PROJECT_PACKAGE_FEATURE_NAME {\n SEATS = \"seats\",\n MT = \"multiTenancy\",\n APW = \"advancedPublishingWorkflow\",\n AACL = \"advancedAccessControlLayer\",\n /**\n * @deprecated Use `AUDIT_LOGS` instead.\n * TODO: remove oxlint disable when removing AL enum value.\n */\n // oxlint-disable-next-line typescript/no-duplicate-enum-values\n AL = \"auditLogs\",\n AUDIT_LOGS = \"auditLogs\",\n RECORD_LOCKING = \"recordLocking\",\n FILE_MANAGER = \"fileManager\",\n AI_POWERUPS = \"aiPowerups\"\n}\n\nexport enum MT_OPTIONS_MAX_COUNT_TYPE {\n SEAT_BASED = \"seatBased\",\n FIXED = \"fixed\"\n}\n\nexport interface ProjectPackageFeatures {\n [PROJECT_PACKAGE_FEATURE_NAME.SEATS]: {\n // This is always true because WCP projects immediately get access to seats (by default 1 seat).\n enabled: true;\n options: {\n maxCount: number;\n };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.MT]: {\n // This is always true because WCP projects immediately get access to multi-tenancy.\n enabled: true;\n options: {\n maxCount: {\n type: MT_OPTIONS_MAX_COUNT_TYPE;\n count?: number;\n };\n };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.APW]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AUDIT_LOGS]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.RECORD_LOCKING]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AACL]: {\n enabled: boolean;\n options: {\n teams: boolean;\n privateFiles: boolean;\n folderLevelPermissions: boolean;\n hcmsFieldPermissions: boolean;\n };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AL]: {\n enabled: boolean;\n };\n [PROJECT_PACKAGE_FEATURE_NAME.FILE_MANAGER]: {\n enabled: boolean;\n options: { threatDetection: boolean };\n };\n [PROJECT_PACKAGE_FEATURE_NAME.AI_POWERUPS]: {\n enabled: boolean;\n options: {\n websiteBuilder?: { pageGeneration?: boolean };\n fileManager?: { imageEnrichment?: boolean };\n lexicalGeneration?: boolean;\n };\n };\n}\n\nexport interface DecryptedWcpProjectLicense {\n orgId: string;\n projectId: string;\n package: {\n features: ProjectPackageFeatures;\n };\n}\n"],"names":["PROJECT_PACKAGE_FEATURE_NAME","MT_OPTIONS_MAX_COUNT_TYPE"],"mappings":"AA2CO,IAAKA,qCAA4BA,WAAAA,GAAAA,SAA5BA,4BAA4B;;;;;;;;;;WAA5BA;;AAiBL,IAAKC,kCAAyBA,WAAAA,GAAAA,SAAzBA,yBAAyB;;;WAAzBA"} |
+10
-9
| const DEFAULT_WCP_API_URL = "https://api.webiny.com"; | ||
| const DEFAULT_WCP_APP_URL = "https://app.webiny.com"; | ||
| export const getWcpApiUrl = path => { | ||
| const apiUrl = process.env.WCP_API_URL || DEFAULT_WCP_API_URL; | ||
| return path ? apiUrl + path : apiUrl; | ||
| const getWcpApiUrl = (path)=>{ | ||
| const apiUrl = process.env.WCP_API_URL || DEFAULT_WCP_API_URL; | ||
| return path ? apiUrl + path : apiUrl; | ||
| }; | ||
| export const getWcpGqlApiUrl = path => { | ||
| const graphqlApi = getWcpApiUrl("/graphql"); | ||
| return path ? graphqlApi + path : graphqlApi; | ||
| const getWcpGqlApiUrl = (path)=>{ | ||
| const graphqlApi = getWcpApiUrl("/graphql"); | ||
| return path ? graphqlApi + path : graphqlApi; | ||
| }; | ||
| export const getWcpAppUrl = path => { | ||
| const appUrl = process.env.WCP_APP_URL || DEFAULT_WCP_APP_URL; | ||
| return path ? appUrl + path : appUrl; | ||
| const getWcpAppUrl = (path)=>{ | ||
| const appUrl = process.env.WCP_APP_URL || DEFAULT_WCP_APP_URL; | ||
| return path ? appUrl + path : appUrl; | ||
| }; | ||
| export { getWcpApiUrl, getWcpAppUrl, getWcpGqlApiUrl }; | ||
| //# sourceMappingURL=urls.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"names":["DEFAULT_WCP_API_URL","DEFAULT_WCP_APP_URL","getWcpApiUrl","path","apiUrl","process","env","WCP_API_URL","getWcpGqlApiUrl","graphqlApi","getWcpAppUrl","appUrl","WCP_APP_URL"],"sources":["urls.ts"],"sourcesContent":["const DEFAULT_WCP_API_URL = \"https://api.webiny.com\";\nconst DEFAULT_WCP_APP_URL = \"https://app.webiny.com\";\n\nexport const getWcpApiUrl = (path?: string) => {\n const apiUrl = process.env.WCP_API_URL || DEFAULT_WCP_API_URL;\n return path ? apiUrl + path : apiUrl;\n};\n\nexport const getWcpGqlApiUrl = (path?: string) => {\n const graphqlApi = getWcpApiUrl(\"/graphql\");\n return path ? graphqlApi + path : graphqlApi;\n};\n\nexport const getWcpAppUrl = (path?: string) => {\n const appUrl = process.env.WCP_APP_URL || DEFAULT_WCP_APP_URL;\n return path ? appUrl + path : appUrl;\n};\n"],"mappings":"AAAA,MAAMA,mBAAmB,GAAG,wBAAwB;AACpD,MAAMC,mBAAmB,GAAG,wBAAwB;AAEpD,OAAO,MAAMC,YAAY,GAAIC,IAAa,IAAK;EAC3C,MAAMC,MAAM,GAAGC,OAAO,CAACC,GAAG,CAACC,WAAW,IAAIP,mBAAmB;EAC7D,OAAOG,IAAI,GAAGC,MAAM,GAAGD,IAAI,GAAGC,MAAM;AACxC,CAAC;AAED,OAAO,MAAMI,eAAe,GAAIL,IAAa,IAAK;EAC9C,MAAMM,UAAU,GAAGP,YAAY,CAAC,UAAU,CAAC;EAC3C,OAAOC,IAAI,GAAGM,UAAU,GAAGN,IAAI,GAAGM,UAAU;AAChD,CAAC;AAED,OAAO,MAAMC,YAAY,GAAIP,IAAa,IAAK;EAC3C,MAAMQ,MAAM,GAAGN,OAAO,CAACC,GAAG,CAACM,WAAW,IAAIX,mBAAmB;EAC7D,OAAOE,IAAI,GAAGQ,MAAM,GAAGR,IAAI,GAAGQ,MAAM;AACxC,CAAC","ignoreList":[]} | ||
| {"version":3,"file":"urls.js","sources":["../src/urls.ts"],"sourcesContent":["const DEFAULT_WCP_API_URL = \"https://api.webiny.com\";\nconst DEFAULT_WCP_APP_URL = \"https://app.webiny.com\";\n\nexport const getWcpApiUrl = (path?: string) => {\n const apiUrl = process.env.WCP_API_URL || DEFAULT_WCP_API_URL;\n return path ? apiUrl + path : apiUrl;\n};\n\nexport const getWcpGqlApiUrl = (path?: string) => {\n const graphqlApi = getWcpApiUrl(\"/graphql\");\n return path ? graphqlApi + path : graphqlApi;\n};\n\nexport const getWcpAppUrl = (path?: string) => {\n const appUrl = process.env.WCP_APP_URL || DEFAULT_WCP_APP_URL;\n return path ? appUrl + path : appUrl;\n};\n"],"names":["DEFAULT_WCP_API_URL","DEFAULT_WCP_APP_URL","getWcpApiUrl","path","apiUrl","process","getWcpGqlApiUrl","graphqlApi","getWcpAppUrl","appUrl"],"mappings":"AAAA,MAAMA,sBAAsB;AAC5B,MAAMC,sBAAsB;AAErB,MAAMC,eAAe,CAACC;IACzB,MAAMC,SAASC,QAAQ,GAAG,CAAC,WAAW,IAAIL;IAC1C,OAAOG,OAAOC,SAASD,OAAOC;AAClC;AAEO,MAAME,kBAAkB,CAACH;IAC5B,MAAMI,aAAaL,aAAa;IAChC,OAAOC,OAAOI,aAAaJ,OAAOI;AACtC;AAEO,MAAMC,eAAe,CAACL;IACzB,MAAMM,SAASJ,QAAQ,GAAG,CAAC,WAAW,IAAIJ;IAC1C,OAAOE,OAAOM,SAASN,OAAOM;AAClC"} |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 5 instances in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 5 instances in 1 package
42912
-7.39%498
-5.68%2
100%