@webiny/project 6.0.0-rc.3 → 6.0.0-rc.5
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/exports/infra/index.d.ts +1 -1
- package/exports/infra/index.js +1 -1
- package/exports/infra/index.js.map +1 -1
- package/extensions/AdminBuildParam.js +1 -1
- package/extensions/AdminBuildParam.js.map +1 -1
- package/extensions/ApiBuildParam.js +1 -1
- package/extensions/ApiBuildParam.js.map +1 -1
- package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js +1 -0
- package/extensions/Project/SetAdminAppEnvVarsBeforeBuild.js.map +1 -1
- package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js +1 -0
- package/extensions/Project/SetAdminAppEnvVarsBeforeWatch.js.map +1 -1
- package/package.json +12 -12
- package/services/GetProjectIdService/GetProjectIdService.js +1 -1
- package/services/GetProjectIdService/GetProjectIdService.js.map +1 -1
- package/services/InitProjectSdkService/applyWcpEnvVars.js +10 -8
- package/services/InitProjectSdkService/applyWcpEnvVars.js.map +1 -1
- package/services/ProjectInfoService/ProjectInfoService.js +2 -2
- package/services/ProjectInfoService/ProjectInfoService.js.map +1 -1
- package/exports/extensions.d.ts +0 -2
- package/exports/extensions.js +0 -4
- package/exports/extensions.js.map +0 -1
package/exports/infra/index.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export { BeforeBuild as BeforeBuildHook } from "../../abstractions/features/hook
|
|
|
5
5
|
export { AfterDeploy as AfterDeployHook } from "../../abstractions/features/hooks/AfterDeploy.js";
|
|
6
6
|
export { BeforeDeploy as BeforeDeployHook } from "../../abstractions/features/hooks/BeforeDeploy.js";
|
|
7
7
|
export { BeforeWatch as BeforeWatchHook } from "../../abstractions/features/hooks/BeforeWatch.js";
|
|
8
|
-
export {
|
|
8
|
+
export { EnvVar } from "../../extensions/EnvVar.js";
|
package/exports/infra/index.js
CHANGED
|
@@ -5,6 +5,6 @@ export { BeforeBuild as BeforeBuildHook } from "../../abstractions/features/hook
|
|
|
5
5
|
export { AfterDeploy as AfterDeployHook } from "../../abstractions/features/hooks/AfterDeploy.js";
|
|
6
6
|
export { BeforeDeploy as BeforeDeployHook } from "../../abstractions/features/hooks/BeforeDeploy.js";
|
|
7
7
|
export { BeforeWatch as BeforeWatchHook } from "../../abstractions/features/hooks/BeforeWatch.js";
|
|
8
|
-
export {
|
|
8
|
+
export { EnvVar } from "../../extensions/EnvVar.js";
|
|
9
9
|
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LoggerService","Logger","UiService","Ui","AfterBuild","AfterBuildHook","BeforeBuild","BeforeBuildHook","AfterDeploy","AfterDeployHook","BeforeDeploy","BeforeDeployHook","BeforeWatch","BeforeWatchHook","
|
|
1
|
+
{"version":3,"names":["LoggerService","Logger","UiService","Ui","AfterBuild","AfterBuildHook","BeforeBuild","BeforeBuildHook","AfterDeploy","AfterDeployHook","BeforeDeploy","BeforeDeployHook","BeforeWatch","BeforeWatchHook","EnvVar"],"sources":["index.ts"],"sourcesContent":["export { LoggerService as Logger } from \"~/abstractions/services/LoggerService.js\";\nexport { UiService as Ui } from \"~/abstractions/services/UiService.js\";\nexport { AfterBuild as AfterBuildHook } from \"~/abstractions/features/hooks/AfterBuild.js\";\nexport { BeforeBuild as BeforeBuildHook } from \"~/abstractions/features/hooks/BeforeBuild.js\";\nexport { AfterDeploy as AfterDeployHook } from \"~/abstractions/features/hooks/AfterDeploy.js\";\nexport { BeforeDeploy as BeforeDeployHook } from \"~/abstractions/features/hooks/BeforeDeploy.js\";\nexport { BeforeWatch as BeforeWatchHook } from \"~/abstractions/features/hooks/BeforeWatch.js\";\nexport { EnvVar } from \"~/extensions/EnvVar.js\";\n"],"mappings":"AAAA,SAASA,aAAa,IAAIC,MAAM;AAChC,SAASC,SAAS,IAAIC,EAAE;AACxB,SAASC,UAAU,IAAIC,cAAc;AACrC,SAASC,WAAW,IAAIC,eAAe;AACvC,SAASC,WAAW,IAAIC,eAAe;AACvC,SAASC,YAAY,IAAIC,gBAAgB;AACzC,SAASC,WAAW,IAAIC,eAAe;AACvC,SAASC,MAAM","ignoreList":[]}
|
|
@@ -161,7 +161,7 @@ export const AdminBuildParam = defineExtension({
|
|
|
161
161
|
// Check if file already exists.
|
|
162
162
|
if (!fs.existsSync(filePath)) {
|
|
163
163
|
// Create the BuildParam implementation file.
|
|
164
|
-
const fileContent = `import { BuildParam } from "webiny/admin/
|
|
164
|
+
const fileContent = `import { BuildParam } from "webiny/admin/build-params";
|
|
165
165
|
|
|
166
166
|
class ${className} implements BuildParam.Interface {
|
|
167
167
|
key = "${paramName}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","defineExtension","crypto","path","fs","Node","Project","generateBuildParamsFeature","buildParamsDir","ctx","featureFilePath","join","files","readdirSync","filter","f","startsWith","endsWith","imports","map","file","className","parse","name","registrations","featureContent","writeFileSync","updateExtensionsTsx","extensionsTsxFilePath","project","paths","workspaceFolder","toString","addSourceFileAtPath","source","getSourceFileOrThrow","buildParamsFeatureImport","existingFeatureImport","getImportDeclaration","index","importDeclarations","getImportDeclarations","length","last","getChildIndex","insertImportDeclaration","namedImports","moduleSpecifier","buildParamsFeatureImportPath","existingBuildParamsImport","getNamedImports","hasBuildParamsFeature","some","ni","getName","addNamedImport","registerFeatureImportPath","existingRegisterFeatureImport","hasRegisterFeature","extensionsIdentifier","getFirstDescendant","node","isIdentifier","getText","Error","extensionsArrowFn","getNextSibling","isArrowFunction","extensionsArrowFnFragment","isJsxFragment","currentContent","getFullText","replace","trim","includes","newContent","replaceWithText","save","AdminBuildParam","type","tags","runtimeContext","appName","description","multiple","paramsSchema","object","paramName","string","value","union","record","any","array","number","boolean","build","params","valueStr","JSON","stringify","hash","createHash","update","digest","slice","fileName","filePath","existsSync","mkdirSync","recursive","fileContent"],"sources":["AdminBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { Node, Project } from \"ts-morph\";\n\nasync function generateBuildParamsFeature(buildParamsDir: string, ctx: any) {\n const featureFilePath = path.join(buildParamsDir, \"feature.ts\");\n\n // Get all BuildParam_*.ts files.\n const files = fs\n .readdirSync(buildParamsDir)\n .filter(f => f.startsWith(\"BuildParam_\") && f.endsWith(\".ts\") && f !== \"feature.ts\");\n\n // Generate imports and registrations.\n const imports = files\n .map(file => {\n const className = path.parse(file).name;\n return `import ${className} from \"./${className}.js\";`;\n })\n .join(\"\\n\");\n\n const registrations = files\n .map(file => {\n const className = path.parse(file).name;\n return ` container.register(${className});`;\n })\n .join(\"\\n\");\n\n const featureContent = `import { createFeature } from \"@webiny/feature/admin\";\nimport { Container } from \"@webiny/di\";\n${imports}\n\nexport const BuildParamsInternalFeature = createFeature({\n name: \"BuildParamsInternal\",\n register(container: Container) {\n${registrations}\n }\n});\n`;\n\n fs.writeFileSync(featureFilePath, featureContent, \"utf8\");\n\n // Now we need to update Extensions.tsx to use RegisterFeature with this feature.\n await updateExtensionsTsx(ctx);\n}\n\nasync function updateExtensionsTsx(ctx: any) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n // Check if we already have the imports.\n const buildParamsFeatureImport = \"./buildParams/feature.js\";\n const existingFeatureImport = source.getImportDeclaration(buildParamsFeatureImport);\n\n if (!existingFeatureImport) {\n let index = 1;\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Add import for BuildParamsInternalFeature.\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsInternalFeature\"],\n moduleSpecifier: buildParamsFeatureImport\n });\n\n // Add import for BuildParamsFeature.\n const buildParamsFeatureImportPath = \"@webiny/app-admin\";\n const existingBuildParamsImport = source.getImportDeclaration(buildParamsFeatureImportPath);\n\n if (!existingBuildParamsImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsFeature\"],\n moduleSpecifier: buildParamsFeatureImportPath\n });\n } else {\n // Add to existing import if BuildParamsFeature not already there.\n const namedImports = existingBuildParamsImport.getNamedImports();\n const hasBuildParamsFeature = namedImports.some(\n ni => ni.getName() === \"BuildParamsFeature\"\n );\n if (!hasBuildParamsFeature) {\n existingBuildParamsImport.addNamedImport(\"BuildParamsFeature\");\n }\n }\n\n // Add import for RegisterFeature if not present.\n const registerFeatureImportPath = \"@webiny/app-admin\";\n const existingRegisterFeatureImport =\n source.getImportDeclaration(registerFeatureImportPath);\n\n if (existingRegisterFeatureImport) {\n const namedImports = existingRegisterFeatureImport.getNamedImports();\n const hasRegisterFeature = namedImports.some(ni => ni.getName() === \"RegisterFeature\");\n if (!hasRegisterFeature) {\n existingRegisterFeatureImport.addNamedImport(\"RegisterFeature\");\n }\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [\"RegisterFeature\"],\n moduleSpecifier: registerFeatureImportPath\n });\n }\n }\n\n // Now add <RegisterFeature> components to the Extensions component.\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\".`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n\n if (!extensionsArrowFn) {\n throw new Error(`Could not find the \"Extensions\" React component arrow function.`);\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n });\n\n if (!extensionsArrowFnFragment) {\n throw new Error(`Could not find JSX fragment in Extensions component.`);\n }\n\n const currentContent = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n // Check if we already have the RegisterFeature components.\n if (!currentContent.includes(\"BuildParamsFeature\")) {\n const newContent = `<><RegisterFeature feature={BuildParamsFeature} /><RegisterFeature feature={BuildParamsInternalFeature} />${currentContent}</>`;\n extensionsArrowFnFragment.replaceWithText(newContent);\n }\n\n await source.save();\n}\n\nexport const AdminBuildParam = defineExtension({\n type: \"Admin/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Add build-time parameter to Admin app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (!fs.existsSync(filePath)) {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/admin/buildParams\";\n\nclass ${className} implements BuildParam.Interface {\n key = \"${paramName}\";\n value = ${valueStr};\n}\n\nexport default BuildParam.createImplementation({\n implementation: ${className},\n dependencies: []\n});\n`;\n fs.writeFileSync(filePath, fileContent, \"utf8\");\n }\n\n // Now we need to generate/update the feature file that imports all BuildParams.\n await generateBuildParamsFeature(buildParamsDir, ctx);\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["z","defineExtension","crypto","path","fs","Node","Project","generateBuildParamsFeature","buildParamsDir","ctx","featureFilePath","join","files","readdirSync","filter","f","startsWith","endsWith","imports","map","file","className","parse","name","registrations","featureContent","writeFileSync","updateExtensionsTsx","extensionsTsxFilePath","project","paths","workspaceFolder","toString","addSourceFileAtPath","source","getSourceFileOrThrow","buildParamsFeatureImport","existingFeatureImport","getImportDeclaration","index","importDeclarations","getImportDeclarations","length","last","getChildIndex","insertImportDeclaration","namedImports","moduleSpecifier","buildParamsFeatureImportPath","existingBuildParamsImport","getNamedImports","hasBuildParamsFeature","some","ni","getName","addNamedImport","registerFeatureImportPath","existingRegisterFeatureImport","hasRegisterFeature","extensionsIdentifier","getFirstDescendant","node","isIdentifier","getText","Error","extensionsArrowFn","getNextSibling","isArrowFunction","extensionsArrowFnFragment","isJsxFragment","currentContent","getFullText","replace","trim","includes","newContent","replaceWithText","save","AdminBuildParam","type","tags","runtimeContext","appName","description","multiple","paramsSchema","object","paramName","string","value","union","record","any","array","number","boolean","build","params","valueStr","JSON","stringify","hash","createHash","update","digest","slice","fileName","filePath","existsSync","mkdirSync","recursive","fileContent"],"sources":["AdminBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { Node, Project } from \"ts-morph\";\n\nasync function generateBuildParamsFeature(buildParamsDir: string, ctx: any) {\n const featureFilePath = path.join(buildParamsDir, \"feature.ts\");\n\n // Get all BuildParam_*.ts files.\n const files = fs\n .readdirSync(buildParamsDir)\n .filter(f => f.startsWith(\"BuildParam_\") && f.endsWith(\".ts\") && f !== \"feature.ts\");\n\n // Generate imports and registrations.\n const imports = files\n .map(file => {\n const className = path.parse(file).name;\n return `import ${className} from \"./${className}.js\";`;\n })\n .join(\"\\n\");\n\n const registrations = files\n .map(file => {\n const className = path.parse(file).name;\n return ` container.register(${className});`;\n })\n .join(\"\\n\");\n\n const featureContent = `import { createFeature } from \"@webiny/feature/admin\";\nimport { Container } from \"@webiny/di\";\n${imports}\n\nexport const BuildParamsInternalFeature = createFeature({\n name: \"BuildParamsInternal\",\n register(container: Container) {\n${registrations}\n }\n});\n`;\n\n fs.writeFileSync(featureFilePath, featureContent, \"utf8\");\n\n // Now we need to update Extensions.tsx to use RegisterFeature with this feature.\n await updateExtensionsTsx(ctx);\n}\n\nasync function updateExtensionsTsx(ctx: any) {\n const extensionsTsxFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"Extensions.tsx\")\n .toString();\n\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsxFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsxFilePath);\n\n // Check if we already have the imports.\n const buildParamsFeatureImport = \"./buildParams/feature.js\";\n const existingFeatureImport = source.getImportDeclaration(buildParamsFeatureImport);\n\n if (!existingFeatureImport) {\n let index = 1;\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Add import for BuildParamsInternalFeature.\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsInternalFeature\"],\n moduleSpecifier: buildParamsFeatureImport\n });\n\n // Add import for BuildParamsFeature.\n const buildParamsFeatureImportPath = \"@webiny/app-admin\";\n const existingBuildParamsImport = source.getImportDeclaration(buildParamsFeatureImportPath);\n\n if (!existingBuildParamsImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"BuildParamsFeature\"],\n moduleSpecifier: buildParamsFeatureImportPath\n });\n } else {\n // Add to existing import if BuildParamsFeature not already there.\n const namedImports = existingBuildParamsImport.getNamedImports();\n const hasBuildParamsFeature = namedImports.some(\n ni => ni.getName() === \"BuildParamsFeature\"\n );\n if (!hasBuildParamsFeature) {\n existingBuildParamsImport.addNamedImport(\"BuildParamsFeature\");\n }\n }\n\n // Add import for RegisterFeature if not present.\n const registerFeatureImportPath = \"@webiny/app-admin\";\n const existingRegisterFeatureImport =\n source.getImportDeclaration(registerFeatureImportPath);\n\n if (existingRegisterFeatureImport) {\n const namedImports = existingRegisterFeatureImport.getNamedImports();\n const hasRegisterFeature = namedImports.some(ni => ni.getName() === \"RegisterFeature\");\n if (!hasRegisterFeature) {\n existingRegisterFeatureImport.addNamedImport(\"RegisterFeature\");\n }\n } else {\n source.insertImportDeclaration(index, {\n namedImports: [\"RegisterFeature\"],\n moduleSpecifier: registerFeatureImportPath\n });\n }\n }\n\n // Now add <RegisterFeature> components to the Extensions component.\n const extensionsIdentifier = source.getFirstDescendant(node => {\n if (!Node.isIdentifier(node)) {\n return false;\n }\n return node.getText() === \"Extensions\";\n });\n\n if (!extensionsIdentifier) {\n throw new Error(\n `Could not find the \"Extensions\" React component in \"${extensionsTsxFilePath}\".`\n );\n }\n\n const extensionsArrowFn = extensionsIdentifier.getNextSibling(node =>\n Node.isArrowFunction(node)\n );\n\n if (!extensionsArrowFn) {\n throw new Error(`Could not find the \"Extensions\" React component arrow function.`);\n }\n\n const extensionsArrowFnFragment = extensionsArrowFn.getFirstDescendant(node => {\n return Node.isJsxFragment(node);\n });\n\n if (!extensionsArrowFnFragment) {\n throw new Error(`Could not find JSX fragment in Extensions component.`);\n }\n\n const currentContent = extensionsArrowFnFragment\n .getFullText()\n .replace(\"<>\", \"\")\n .replace(\"</>\", \"\")\n .trim();\n\n // Check if we already have the RegisterFeature components.\n if (!currentContent.includes(\"BuildParamsFeature\")) {\n const newContent = `<><RegisterFeature feature={BuildParamsFeature} /><RegisterFeature feature={BuildParamsInternalFeature} />${currentContent}</>`;\n extensionsArrowFnFragment.replaceWithText(newContent);\n }\n\n await source.save();\n}\n\nexport const AdminBuildParam = defineExtension({\n type: \"Admin/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"admin\" },\n description: \"Add build-time parameter to Admin app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"admin\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (!fs.existsSync(filePath)) {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/admin/build-params\";\n\nclass ${className} implements BuildParam.Interface {\n key = \"${paramName}\";\n value = ${valueStr};\n}\n\nexport default BuildParam.createImplementation({\n implementation: ${className},\n dependencies: []\n});\n`;\n fs.writeFileSync(filePath, fileContent, \"utf8\");\n }\n\n // Now we need to generate/update the feature file that imports all BuildParams.\n await generateBuildParamsFeature(buildParamsDir, ctx);\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -47,7 +47,7 @@ export const BuildParam = defineExtension({
|
|
|
47
47
|
// File exists, just ensure it's imported in extensions.ts
|
|
48
48
|
} else {
|
|
49
49
|
// Create the BuildParam implementation file.
|
|
50
|
-
const fileContent = `import { BuildParam } from "webiny/api/
|
|
50
|
+
const fileContent = `import { BuildParam } from "webiny/api/build-params";
|
|
51
51
|
|
|
52
52
|
class ${className} implements BuildParam.Interface {
|
|
53
53
|
key = "${paramName}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","Node","Project","defineExtension","crypto","path","fs","BuildParam","type","tags","runtimeContext","appName","description","multiple","paramsSchema","object","paramName","string","value","union","record","any","array","number","boolean","build","params","ctx","extensionsTsFilePath","project","paths","workspaceFolder","join","toString","buildParamsDir","valueStr","JSON","stringify","hash","createHash","update","digest","className","slice","fileName","filePath","existsSync","mkdirSync","recursive","fileContent","writeFileSync","addSourceFileAtPath","source","getSourceFileOrThrow","importPath","relative","dirname","replace","startsWith","existingImportDeclaration","getImportDeclaration","index","importDeclarations","getImportDeclarations","length","last","getChildIndex","insertImportDeclaration","defaultImport","moduleSpecifier","pluginsArray","getFirstDescendant","node","isArrayLiteralExpression","addElement","contextPluginImportPath","existingContextPluginImport","namedImports","save"],"sources":["ApiBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Node, Project, ArrayLiteralExpression } from \"ts-morph\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nexport const BuildParam = defineExtension({\n type: \"Api/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"api\" },\n description: \"Add build-time parameter to API app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const extensionsTsFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"extensions.ts\")\n .toString();\n\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (fs.existsSync(filePath)) {\n // File exists, just ensure it's imported in extensions.ts\n } else {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/api/
|
|
1
|
+
{"version":3,"names":["z","Node","Project","defineExtension","crypto","path","fs","BuildParam","type","tags","runtimeContext","appName","description","multiple","paramsSchema","object","paramName","string","value","union","record","any","array","number","boolean","build","params","ctx","extensionsTsFilePath","project","paths","workspaceFolder","join","toString","buildParamsDir","valueStr","JSON","stringify","hash","createHash","update","digest","className","slice","fileName","filePath","existsSync","mkdirSync","recursive","fileContent","writeFileSync","addSourceFileAtPath","source","getSourceFileOrThrow","importPath","relative","dirname","replace","startsWith","existingImportDeclaration","getImportDeclaration","index","importDeclarations","getImportDeclarations","length","last","getChildIndex","insertImportDeclaration","defaultImport","moduleSpecifier","pluginsArray","getFirstDescendant","node","isArrayLiteralExpression","addElement","contextPluginImportPath","existingContextPluginImport","namedImports","save"],"sources":["ApiBuildParam.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Node, Project, ArrayLiteralExpression } from \"ts-morph\";\nimport { defineExtension } from \"~/defineExtension/index.js\";\nimport crypto from \"crypto\";\nimport path from \"path\";\nimport fs from \"fs\";\n\nexport const BuildParam = defineExtension({\n type: \"Api/BuildParam\",\n tags: { runtimeContext: \"app-build\", appName: \"api\" },\n description: \"Add build-time parameter to API app.\",\n multiple: true,\n paramsSchema: () => {\n return z.object({\n paramName: z.string(),\n value: z.union([\n z.string(),\n z.record(z.any()),\n z.array(z.any()),\n z.number(),\n z.boolean()\n ])\n });\n },\n async build(params, ctx) {\n const extensionsTsFilePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"extensions.ts\")\n .toString();\n\n const buildParamsDir = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", \"graphql\", \"src\", \"buildParams\")\n .toString();\n\n const { paramName, value } = params;\n\n // Serialize value to a TypeScript literal.\n const valueStr = JSON.stringify(value, null, 4);\n\n // Generate a unique class name based on the paramName.\n const hash = crypto.createHash(\"sha256\").update(paramName).digest(\"hex\");\n const className = `BuildParam_${hash.slice(-10)}`;\n const fileName = `${className}.ts`;\n const filePath = path.join(buildParamsDir, fileName);\n\n // Ensure buildParams directory exists.\n if (!fs.existsSync(buildParamsDir)) {\n fs.mkdirSync(buildParamsDir, { recursive: true });\n }\n\n // Check if file already exists.\n if (fs.existsSync(filePath)) {\n // File exists, just ensure it's imported in extensions.ts\n } else {\n // Create the BuildParam implementation file.\n const fileContent = `import { BuildParam } from \"webiny/api/build-params\";\n\nclass ${className} implements BuildParam.Interface {\n key = \"${paramName}\";\n value = ${valueStr};\n}\n\nexport default BuildParam.createImplementation({\n implementation: ${className},\n dependencies: []\n});\n`;\n fs.writeFileSync(filePath, fileContent, \"utf8\");\n }\n\n // Now update extensions.ts to import and register this BuildParam.\n const project = new Project();\n project.addSourceFileAtPath(extensionsTsFilePath);\n\n const source = project.getSourceFileOrThrow(extensionsTsFilePath);\n\n // Calculate import path relative to extensions.ts.\n let importPath = path\n .relative(path.dirname(extensionsTsFilePath), filePath)\n .replace(/\\.tsx?$/, \".js\");\n\n // Ensure the path starts with ./\n if (!importPath.startsWith(\".\")) {\n importPath = \"./\" + importPath;\n }\n\n // Check if import already exists.\n const existingImportDeclaration = source.getImportDeclaration(importPath);\n if (existingImportDeclaration) {\n return;\n }\n\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n // Add import for the BuildParam implementation.\n source.insertImportDeclaration(index, {\n defaultImport: className,\n moduleSpecifier: importPath\n });\n\n // Add the registration to the plugins array.\n const pluginsArray = source.getFirstDescendant(node =>\n Node.isArrayLiteralExpression(node)\n ) as ArrayLiteralExpression;\n\n pluginsArray.addElement(\n `\\ncreateContextPlugin(ctx => {\\n\\tregisterExtension(ctx.container, ${className});\\n})`\n );\n\n {\n let index = 1;\n\n const importDeclarations = source.getImportDeclarations();\n if (importDeclarations.length) {\n const last = importDeclarations[importDeclarations.length - 1];\n index = last.getChildIndex() + 1;\n }\n\n const contextPluginImportPath = \"@webiny/api/plugins/ContextPlugin\";\n const existingContextPluginImport =\n source.getImportDeclaration(contextPluginImportPath);\n if (!existingContextPluginImport) {\n source.insertImportDeclaration(index, {\n namedImports: [\"createContextPlugin\"],\n moduleSpecifier: contextPluginImportPath\n });\n }\n }\n\n await source.save();\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ class SetAdminAppEnvVarsBeforeBuildImpl {
|
|
|
12
12
|
const projectVersion = this.getProjectVersionService.execute();
|
|
13
13
|
const telemetry = await this.isTelemetryEnabled.execute();
|
|
14
14
|
if (projectId) {
|
|
15
|
+
process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;
|
|
15
16
|
process.env.REACT_APP_WCP_PROJECT_ID = projectId;
|
|
16
17
|
}
|
|
17
18
|
if (!("REACT_APP_WEBINY_TELEMETRY" in process.env)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdminBeforeBuild","GetProjectIdService","GetProjectVersionService","IsTelemetryEnabled","globalConfig","isCI","SetAdminAppEnvVarsBeforeBuildImpl","constructor","isTelemetryEnabled","getProjectIdService","getProjectVersionService","execute","projectId","projectVersion","telemetry","process","env","REACT_APP_WCP_PROJECT_ID","REACT_APP_WEBINY_TELEMETRY","String","REACT_APP_WEBINY_TELEMETRY_USER_ID","get","newUser","Boolean","toString","REACT_APP_WEBINY_TELEMETRY_NEW_USER","INLINE_RUNTIME_CHUNK","REACT_APP_IS_CI","REACT_APP_WEBINY_VERSION","SetAdminAppEnvVarsBeforeBuild","createImplementation","implementation","dependencies"],"sources":["SetAdminAppEnvVarsBeforeBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetProjectIdService,\n GetProjectVersionService,\n IsTelemetryEnabled\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeBuildImpl,\n dependencies: [IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService]\n});\n"],"mappings":"AAAA,SACIA,gBAAgB,EAChBC,mBAAmB,EACnBC,wBAAwB,EACxBC,kBAAkB;AAEtB,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,IAAI,QAAQ,SAAS;AAE9B,MAAMC,iCAAiC,CAAuC;EAC1EC,WAAWA,CACCC,kBAAgD,EAChDC,mBAAkD,EAClDC,wBAA4D,EACtE;IAAA,KAHUF,kBAAgD,GAAhDA,kBAAgD;IAAA,KAChDC,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,wBAA4D,GAA5DA,wBAA4D;EACrE;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACH,mBAAmB,CAACE,OAAO,CAAC,CAAC;IAC1D,MAAME,cAAc,GAAG,IAAI,CAACH,wBAAwB,CAACC,OAAO,CAAC,CAAC;IAE9D,MAAMG,SAAS,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAACG,OAAO,CAAC,CAAC;IAEzD,IAAIC,SAAS,EAAE;MACXG,OAAO,CAACC,GAAG,CAACC,
|
|
1
|
+
{"version":3,"names":["AdminBeforeBuild","GetProjectIdService","GetProjectVersionService","IsTelemetryEnabled","globalConfig","isCI","SetAdminAppEnvVarsBeforeBuildImpl","constructor","isTelemetryEnabled","getProjectIdService","getProjectVersionService","execute","projectId","projectVersion","telemetry","process","env","REACT_APP_WEBINY_PROJECT_ID","REACT_APP_WCP_PROJECT_ID","REACT_APP_WEBINY_TELEMETRY","String","REACT_APP_WEBINY_TELEMETRY_USER_ID","get","newUser","Boolean","toString","REACT_APP_WEBINY_TELEMETRY_NEW_USER","INLINE_RUNTIME_CHUNK","REACT_APP_IS_CI","REACT_APP_WEBINY_VERSION","SetAdminAppEnvVarsBeforeBuild","createImplementation","implementation","dependencies"],"sources":["SetAdminAppEnvVarsBeforeBuild.ts"],"sourcesContent":["import {\n AdminBeforeBuild,\n GetProjectIdService,\n GetProjectVersionService,\n IsTelemetryEnabled\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeBuildImpl implements AdminBeforeBuild.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeBuild = AdminBeforeBuild.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeBuildImpl,\n dependencies: [IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService]\n});\n"],"mappings":"AAAA,SACIA,gBAAgB,EAChBC,mBAAmB,EACnBC,wBAAwB,EACxBC,kBAAkB;AAEtB,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,IAAI,QAAQ,SAAS;AAE9B,MAAMC,iCAAiC,CAAuC;EAC1EC,WAAWA,CACCC,kBAAgD,EAChDC,mBAAkD,EAClDC,wBAA4D,EACtE;IAAA,KAHUF,kBAAgD,GAAhDA,kBAAgD;IAAA,KAChDC,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,wBAA4D,GAA5DA,wBAA4D;EACrE;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACH,mBAAmB,CAACE,OAAO,CAAC,CAAC;IAC1D,MAAME,cAAc,GAAG,IAAI,CAACH,wBAAwB,CAACC,OAAO,CAAC,CAAC;IAE9D,MAAMG,SAAS,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAACG,OAAO,CAAC,CAAC;IAEzD,IAAIC,SAAS,EAAE;MACXG,OAAO,CAACC,GAAG,CAACC,2BAA2B,GAAGL,SAAS;MACnDG,OAAO,CAACC,GAAG,CAACE,wBAAwB,GAAGN,SAAS;IACpD;IAEA,IAAI,EAAE,4BAA4B,IAAIG,OAAO,CAACC,GAAG,CAAC,EAAE;MAChDD,OAAO,CAACC,GAAG,CAACG,0BAA0B,GAAGC,MAAM,CAACN,SAAS,CAAC;IAC9D;IAEA,IAAI,EAAE,oCAAoC,IAAIC,OAAO,CAACC,GAAG,CAAC,EAAE;MACxDD,OAAO,CAACC,GAAG,CAACK,kCAAkC,GAAGjB,YAAY,CAACkB,GAAG,CAAC,IAAI,CAAC;IAC3E;IAEA,IAAI,EAAE,qCAAqC,IAAIP,OAAO,CAACC,GAAG,CAAC,EAAE;MACzD,MAAMO,OAAO,GAAGC,OAAO,CAACpB,YAAY,CAACkB,GAAG,CAAC,SAAS,CAAC,CAAC,CAACG,QAAQ,CAAC,CAAC;MAC/DV,OAAO,CAACC,GAAG,CAACU,mCAAmC,GAAGH,OAAO;IAC7D;IAEA,IAAI,EAAE,sBAAsB,IAAIR,OAAO,CAACC,GAAG,CAAC,EAAE;MAC1CD,OAAO,CAACC,GAAG,CAACW,oBAAoB,GAAG,MAAM;IAC7C;IAEA,IAAI,EAAE,iBAAiB,IAAIZ,OAAO,CAACC,GAAG,CAAC,EAAE;MACrCD,OAAO,CAACC,GAAG,CAACY,eAAe,GAAGJ,OAAO,CAACnB,IAAI,CAAC,CAACoB,QAAQ,CAAC,CAAC;IAC1D;IAEA,IAAI,EAAE,0BAA0B,IAAIV,OAAO,CAACC,GAAG,CAAC,EAAE;MAC9CD,OAAO,CAACC,GAAG,CAACa,wBAAwB,GAAGhB,cAAc;IACzD;EACJ;AACJ;AAEA,OAAO,MAAMiB,6BAA6B,GAAG9B,gBAAgB,CAAC+B,oBAAoB,CAAC;EAC/EC,cAAc,EAAE1B,iCAAiC;EACjD2B,YAAY,EAAE,CAAC9B,kBAAkB,EAAEF,mBAAmB,EAAEC,wBAAwB;AACpF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ class SetAdminAppEnvVarsBeforeWatchImpl {
|
|
|
12
12
|
const projectVersion = this.getProjectVersionService.execute();
|
|
13
13
|
const telemetry = await this.isTelemetryEnabled.execute();
|
|
14
14
|
if (projectId) {
|
|
15
|
+
process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;
|
|
15
16
|
process.env.REACT_APP_WCP_PROJECT_ID = projectId;
|
|
16
17
|
}
|
|
17
18
|
if (!("REACT_APP_WEBINY_TELEMETRY" in process.env)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdminBeforeWatch","IsTelemetryEnabled","GetProjectIdService","GetProjectVersionService","globalConfig","isCI","SetAdminAppEnvVarsBeforeWatchImpl","constructor","isTelemetryEnabled","getProjectIdService","getProjectVersionService","execute","projectId","projectVersion","telemetry","process","env","REACT_APP_WCP_PROJECT_ID","REACT_APP_WEBINY_TELEMETRY","String","REACT_APP_WEBINY_TELEMETRY_USER_ID","get","newUser","Boolean","toString","REACT_APP_WEBINY_TELEMETRY_NEW_USER","INLINE_RUNTIME_CHUNK","REACT_APP_IS_CI","REACT_APP_WEBINY_VERSION","SetAdminAppEnvVarsBeforeWatch","createImplementation","implementation","dependencies"],"sources":["SetAdminAppEnvVarsBeforeWatch.ts"],"sourcesContent":["import {\n AdminBeforeWatch,\n IsTelemetryEnabled,\n GetProjectIdService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeWatchImpl implements AdminBeforeWatch.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeWatch = AdminBeforeWatch.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeWatchImpl,\n dependencies: [IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService]\n});\n"],"mappings":"AAAA,SACIA,gBAAgB,EAChBC,kBAAkB,EAClBC,mBAAmB,EACnBC,wBAAwB;AAE5B,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,IAAI,QAAQ,SAAS;AAE9B,MAAMC,iCAAiC,CAAuC;EAC1EC,WAAWA,CACCC,kBAAgD,EAChDC,mBAAkD,EAClDC,wBAA4D,EACtE;IAAA,KAHUF,kBAAgD,GAAhDA,kBAAgD;IAAA,KAChDC,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,wBAA4D,GAA5DA,wBAA4D;EACrE;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACH,mBAAmB,CAACE,OAAO,CAAC,CAAC;IAC1D,MAAME,cAAc,GAAG,IAAI,CAACH,wBAAwB,CAACC,OAAO,CAAC,CAAC;IAE9D,MAAMG,SAAS,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAACG,OAAO,CAAC,CAAC;IAEzD,IAAIC,SAAS,EAAE;MACXG,OAAO,CAACC,GAAG,CAACC,
|
|
1
|
+
{"version":3,"names":["AdminBeforeWatch","IsTelemetryEnabled","GetProjectIdService","GetProjectVersionService","globalConfig","isCI","SetAdminAppEnvVarsBeforeWatchImpl","constructor","isTelemetryEnabled","getProjectIdService","getProjectVersionService","execute","projectId","projectVersion","telemetry","process","env","REACT_APP_WEBINY_PROJECT_ID","REACT_APP_WCP_PROJECT_ID","REACT_APP_WEBINY_TELEMETRY","String","REACT_APP_WEBINY_TELEMETRY_USER_ID","get","newUser","Boolean","toString","REACT_APP_WEBINY_TELEMETRY_NEW_USER","INLINE_RUNTIME_CHUNK","REACT_APP_IS_CI","REACT_APP_WEBINY_VERSION","SetAdminAppEnvVarsBeforeWatch","createImplementation","implementation","dependencies"],"sources":["SetAdminAppEnvVarsBeforeWatch.ts"],"sourcesContent":["import {\n AdminBeforeWatch,\n IsTelemetryEnabled,\n GetProjectIdService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { globalConfig } from \"@webiny/global-config\";\nimport { isCI } from \"ci-info\";\n\nclass SetAdminAppEnvVarsBeforeWatchImpl implements AdminBeforeWatch.Interface {\n constructor(\n private isTelemetryEnabled: IsTelemetryEnabled.Interface,\n private getProjectIdService: GetProjectIdService.Interface,\n private getProjectVersionService: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const projectId = await this.getProjectIdService.execute();\n const projectVersion = this.getProjectVersionService.execute();\n\n const telemetry = await this.isTelemetryEnabled.execute();\n\n if (projectId) {\n process.env.REACT_APP_WEBINY_PROJECT_ID = projectId;\n process.env.REACT_APP_WCP_PROJECT_ID = projectId;\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY = String(telemetry);\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_USER_ID\" in process.env)) {\n process.env.REACT_APP_WEBINY_TELEMETRY_USER_ID = globalConfig.get(\"id\");\n }\n\n if (!(\"REACT_APP_WEBINY_TELEMETRY_NEW_USER\" in process.env)) {\n const newUser = Boolean(globalConfig.get(\"newUser\")).toString();\n process.env.REACT_APP_WEBINY_TELEMETRY_NEW_USER = newUser;\n }\n\n if (!(\"INLINE_RUNTIME_CHUNK\" in process.env)) {\n process.env.INLINE_RUNTIME_CHUNK = \"true\";\n }\n\n if (!(\"REACT_APP_IS_CI\" in process.env)) {\n process.env.REACT_APP_IS_CI = Boolean(isCI).toString();\n }\n\n if (!(\"REACT_APP_WEBINY_VERSION\" in process.env)) {\n process.env.REACT_APP_WEBINY_VERSION = projectVersion;\n }\n }\n}\n\nexport const SetAdminAppEnvVarsBeforeWatch = AdminBeforeWatch.createImplementation({\n implementation: SetAdminAppEnvVarsBeforeWatchImpl,\n dependencies: [IsTelemetryEnabled, GetProjectIdService, GetProjectVersionService]\n});\n"],"mappings":"AAAA,SACIA,gBAAgB,EAChBC,kBAAkB,EAClBC,mBAAmB,EACnBC,wBAAwB;AAE5B,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,IAAI,QAAQ,SAAS;AAE9B,MAAMC,iCAAiC,CAAuC;EAC1EC,WAAWA,CACCC,kBAAgD,EAChDC,mBAAkD,EAClDC,wBAA4D,EACtE;IAAA,KAHUF,kBAAgD,GAAhDA,kBAAgD;IAAA,KAChDC,mBAAkD,GAAlDA,mBAAkD;IAAA,KAClDC,wBAA4D,GAA5DA,wBAA4D;EACrE;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACH,mBAAmB,CAACE,OAAO,CAAC,CAAC;IAC1D,MAAME,cAAc,GAAG,IAAI,CAACH,wBAAwB,CAACC,OAAO,CAAC,CAAC;IAE9D,MAAMG,SAAS,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAACG,OAAO,CAAC,CAAC;IAEzD,IAAIC,SAAS,EAAE;MACXG,OAAO,CAACC,GAAG,CAACC,2BAA2B,GAAGL,SAAS;MACnDG,OAAO,CAACC,GAAG,CAACE,wBAAwB,GAAGN,SAAS;IACpD;IAEA,IAAI,EAAE,4BAA4B,IAAIG,OAAO,CAACC,GAAG,CAAC,EAAE;MAChDD,OAAO,CAACC,GAAG,CAACG,0BAA0B,GAAGC,MAAM,CAACN,SAAS,CAAC;IAC9D;IAEA,IAAI,EAAE,oCAAoC,IAAIC,OAAO,CAACC,GAAG,CAAC,EAAE;MACxDD,OAAO,CAACC,GAAG,CAACK,kCAAkC,GAAGjB,YAAY,CAACkB,GAAG,CAAC,IAAI,CAAC;IAC3E;IAEA,IAAI,EAAE,qCAAqC,IAAIP,OAAO,CAACC,GAAG,CAAC,EAAE;MACzD,MAAMO,OAAO,GAAGC,OAAO,CAACpB,YAAY,CAACkB,GAAG,CAAC,SAAS,CAAC,CAAC,CAACG,QAAQ,CAAC,CAAC;MAC/DV,OAAO,CAACC,GAAG,CAACU,mCAAmC,GAAGH,OAAO;IAC7D;IAEA,IAAI,EAAE,sBAAsB,IAAIR,OAAO,CAACC,GAAG,CAAC,EAAE;MAC1CD,OAAO,CAACC,GAAG,CAACW,oBAAoB,GAAG,MAAM;IAC7C;IAEA,IAAI,EAAE,iBAAiB,IAAIZ,OAAO,CAACC,GAAG,CAAC,EAAE;MACrCD,OAAO,CAACC,GAAG,CAACY,eAAe,GAAGJ,OAAO,CAACnB,IAAI,CAAC,CAACoB,QAAQ,CAAC,CAAC;IAC1D;IAEA,IAAI,EAAE,0BAA0B,IAAIV,OAAO,CAACC,GAAG,CAAC,EAAE;MAC9CD,OAAO,CAACC,GAAG,CAACa,wBAAwB,GAAGhB,cAAc;IACzD;EACJ;AACJ;AAEA,OAAO,MAAMiB,6BAA6B,GAAG9B,gBAAgB,CAAC+B,oBAAoB,CAAC;EAC/EC,cAAc,EAAE1B,iCAAiC;EACjD2B,YAAY,EAAE,CAAChC,kBAAkB,EAAEC,mBAAmB,EAAEC,wBAAwB;AACpF,CAAC,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/project",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
"description": "An SDK for managing Webiny projects.",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@webiny/aws-sdk": "6.0.0-rc.
|
|
14
|
-
"@webiny/build-tools": "6.0.0-rc.
|
|
13
|
+
"@webiny/aws-sdk": "6.0.0-rc.5",
|
|
14
|
+
"@webiny/build-tools": "6.0.0-rc.5",
|
|
15
15
|
"@webiny/di": "0.2.3",
|
|
16
|
-
"@webiny/feature-flags": "6.0.0-rc.
|
|
17
|
-
"@webiny/global-config": "6.0.0-rc.
|
|
18
|
-
"@webiny/pulumi-sdk": "6.0.0-rc.
|
|
19
|
-
"@webiny/react-properties": "6.0.0-rc.
|
|
20
|
-
"@webiny/system-requirements": "6.0.0-rc.
|
|
21
|
-
"@webiny/telemetry": "6.0.0-rc.
|
|
22
|
-
"@webiny/utils": "6.0.0-rc.
|
|
23
|
-
"@webiny/wcp": "6.0.0-rc.
|
|
16
|
+
"@webiny/feature-flags": "6.0.0-rc.5",
|
|
17
|
+
"@webiny/global-config": "6.0.0-rc.5",
|
|
18
|
+
"@webiny/pulumi-sdk": "6.0.0-rc.5",
|
|
19
|
+
"@webiny/react-properties": "6.0.0-rc.5",
|
|
20
|
+
"@webiny/system-requirements": "6.0.0-rc.5",
|
|
21
|
+
"@webiny/telemetry": "6.0.0-rc.5",
|
|
22
|
+
"@webiny/utils": "6.0.0-rc.5",
|
|
23
|
+
"@webiny/wcp": "6.0.0-rc.5",
|
|
24
24
|
"chalk": "4.1.2",
|
|
25
25
|
"chokidar": "4.0.3",
|
|
26
26
|
"ci-info": "4.4.0",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"access": "public",
|
|
77
77
|
"directory": "dist"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "8f9b60f1193682a21e037e6f771b19f1dfd65045"
|
|
80
80
|
}
|
|
@@ -10,7 +10,7 @@ class DefaultGetProjectIdService {
|
|
|
10
10
|
if (this.cachedProjectId) {
|
|
11
11
|
return this.cachedProjectId;
|
|
12
12
|
}
|
|
13
|
-
const envProjectId = process.env.WCP_PROJECT_ID;
|
|
13
|
+
const envProjectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID;
|
|
14
14
|
if (envProjectId) {
|
|
15
15
|
this.cachedProjectId = envProjectId;
|
|
16
16
|
return this.cachedProjectId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImplementation","GetProjectConfigService","GetProjectIdService","ProjectId","ProjectIdExt","DefaultGetProjectIdService","cachedProjectId","constructor","getProjectConfigService","execute","envProjectId","process","env","WCP_PROJECT_ID","projectConfig","projectIdExtension","extensionsByType","params","id","getProjectIdService","abstraction","implementation","dependencies"],"sources":["GetProjectIdService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { GetProjectConfigService, GetProjectIdService } from \"~/abstractions/index.js\";\nimport { ProjectId as ProjectIdExt } from \"~/extensions/ProjectId.js\";\n\nclass DefaultGetProjectIdService implements GetProjectIdService.Interface {\n cachedProjectId: string | null = null;\n\n constructor(private getProjectConfigService: GetProjectConfigService.Interface) {}\n\n async execute() {\n if (this.cachedProjectId) {\n return this.cachedProjectId;\n }\n\n const envProjectId = process.env.WCP_PROJECT_ID;\n if (envProjectId) {\n this.cachedProjectId = envProjectId;\n return this.cachedProjectId;\n }\n\n const projectConfig = await this.getProjectConfigService.execute();\n const [projectIdExtension] = projectConfig.extensionsByType(ProjectIdExt);\n\n if (projectIdExtension) {\n this.cachedProjectId = projectIdExtension.params.id;\n }\n\n return this.cachedProjectId;\n }\n}\n\nexport const getProjectIdService = createImplementation({\n abstraction: GetProjectIdService,\n implementation: DefaultGetProjectIdService,\n dependencies: [GetProjectConfigService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,uBAAuB,EAAEC,mBAAmB;AACrD,SAASC,SAAS,IAAIC,YAAY;AAElC,MAAMC,0BAA0B,CAA0C;EACtEC,eAAe,GAAkB,IAAI;EAErCC,WAAWA,CAASC,uBAA0D,EAAE;IAAA,KAA5DA,uBAA0D,GAA1DA,uBAA0D;EAAG;EAEjF,MAAMC,OAAOA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACH,eAAe,EAAE;MACtB,OAAO,IAAI,CAACA,eAAe;IAC/B;IAEA,MAAMI,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,cAAc;
|
|
1
|
+
{"version":3,"names":["createImplementation","GetProjectConfigService","GetProjectIdService","ProjectId","ProjectIdExt","DefaultGetProjectIdService","cachedProjectId","constructor","getProjectConfigService","execute","envProjectId","process","env","WEBINY_PROJECT_ID","WCP_PROJECT_ID","projectConfig","projectIdExtension","extensionsByType","params","id","getProjectIdService","abstraction","implementation","dependencies"],"sources":["GetProjectIdService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { GetProjectConfigService, GetProjectIdService } from \"~/abstractions/index.js\";\nimport { ProjectId as ProjectIdExt } from \"~/extensions/ProjectId.js\";\n\nclass DefaultGetProjectIdService implements GetProjectIdService.Interface {\n cachedProjectId: string | null = null;\n\n constructor(private getProjectConfigService: GetProjectConfigService.Interface) {}\n\n async execute() {\n if (this.cachedProjectId) {\n return this.cachedProjectId;\n }\n\n const envProjectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID;\n if (envProjectId) {\n this.cachedProjectId = envProjectId;\n return this.cachedProjectId;\n }\n\n const projectConfig = await this.getProjectConfigService.execute();\n const [projectIdExtension] = projectConfig.extensionsByType(ProjectIdExt);\n\n if (projectIdExtension) {\n this.cachedProjectId = projectIdExtension.params.id;\n }\n\n return this.cachedProjectId;\n }\n}\n\nexport const getProjectIdService = createImplementation({\n abstraction: GetProjectIdService,\n implementation: DefaultGetProjectIdService,\n dependencies: [GetProjectConfigService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,uBAAuB,EAAEC,mBAAmB;AACrD,SAASC,SAAS,IAAIC,YAAY;AAElC,MAAMC,0BAA0B,CAA0C;EACtEC,eAAe,GAAkB,IAAI;EAErCC,WAAWA,CAASC,uBAA0D,EAAE;IAAA,KAA5DA,uBAA0D,GAA1DA,uBAA0D;EAAG;EAEjF,MAAMC,OAAOA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACH,eAAe,EAAE;MACtB,OAAO,IAAI,CAACA,eAAe;IAC/B;IAEA,MAAMI,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAIF,OAAO,CAACC,GAAG,CAACE,cAAc;IAChF,IAAIJ,YAAY,EAAE;MACd,IAAI,CAACJ,eAAe,GAAGI,YAAY;MACnC,OAAO,IAAI,CAACJ,eAAe;IAC/B;IAEA,MAAMS,aAAa,GAAG,MAAM,IAAI,CAACP,uBAAuB,CAACC,OAAO,CAAC,CAAC;IAClE,MAAM,CAACO,kBAAkB,CAAC,GAAGD,aAAa,CAACE,gBAAgB,CAACb,YAAY,CAAC;IAEzE,IAAIY,kBAAkB,EAAE;MACpB,IAAI,CAACV,eAAe,GAAGU,kBAAkB,CAACE,MAAM,CAACC,EAAE;IACvD;IAEA,OAAO,IAAI,CAACb,eAAe;EAC/B;AACJ;AAEA,OAAO,MAAMc,mBAAmB,GAAGpB,oBAAoB,CAAC;EACpDqB,WAAW,EAAEnB,mBAAmB;EAChCoB,cAAc,EAAEjB,0BAA0B;EAC1CkB,YAAY,EAAE,CAACtB,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,19 +4,19 @@ export const applyWcpEnvVars = async container => {
|
|
|
4
4
|
/**
|
|
5
5
|
* The environment variables we set via these hooks are the following:
|
|
6
6
|
* - WCP_PROJECT_ENVIRONMENT - contains encrypted data about the deployed project environment
|
|
7
|
-
* - WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key
|
|
7
|
+
* - WEBINY_PROJECT_API_KEY / WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key
|
|
8
8
|
* - WCP_PROJECT_LICENSE - contains encrypted license data
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* There are multiple ways the hooks below prepare the WCP-enabled project for deployment.
|
|
13
13
|
* 1. If `WCP_PROJECT_ENVIRONMENT` metadata env var is defined, we decrypt it, retrieve the
|
|
14
|
-
* API key from it, and assign it as the `WCP_PROJECT_ENVIRONMENT_API_KEY` env
|
|
15
|
-
* 2. If `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the
|
|
14
|
+
* API key from it, and assign it as the `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.
|
|
15
|
+
* 2. If `WEBINY_PROJECT_API_KEY` or `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the
|
|
16
16
|
* project environment API key. We use that to load the project environment data
|
|
17
17
|
* and to also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.
|
|
18
18
|
* 3. If none of the above is defined, we retrieve (or create) the project environment,
|
|
19
|
-
* retrieve its API key and again assign it as `WCP_PROJECT_ENVIRONMENT_API_KEY` env
|
|
19
|
+
* retrieve its API key and again assign it as `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.
|
|
20
20
|
* As in 2), we also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.
|
|
21
21
|
*/
|
|
22
22
|
|
|
@@ -35,8 +35,9 @@ export const applyWcpEnvVars = async container => {
|
|
|
35
35
|
// Case 1: For development purposes, we allow setting the WCP_PROJECT_ENVIRONMENT env var directly.
|
|
36
36
|
if (process.env.WCP_PROJECT_ENVIRONMENT) {
|
|
37
37
|
loggerService.info('The "WCP_PROJECT_ENVIRONMENT" env var is already set. Using that value and skipping the rest of the process.');
|
|
38
|
-
// If we have WCP_PROJECT_ENVIRONMENT env var, we set the WCP_PROJECT_ENVIRONMENT_API_KEY too.
|
|
38
|
+
// If we have WCP_PROJECT_ENVIRONMENT env var, we set the WEBINY_PROJECT_API_KEY and WCP_PROJECT_ENVIRONMENT_API_KEY too.
|
|
39
39
|
const decryptedProjectEnvironment = decrypt(process.env.WCP_PROJECT_ENVIRONMENT);
|
|
40
|
+
process.env.WEBINY_PROJECT_API_KEY = decryptedProjectEnvironment.apiKey;
|
|
40
41
|
process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = decryptedProjectEnvironment.apiKey;
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
@@ -44,8 +45,8 @@ export const applyWcpEnvVars = async container => {
|
|
|
44
45
|
// The `id` has the orgId/projectId structure, for example `my-org-x/my-project-y`.
|
|
45
46
|
const [orgId, projectId] = wcpProjectId.split("/");
|
|
46
47
|
|
|
47
|
-
// Check if API key is already set
|
|
48
|
-
const apiKey = process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;
|
|
48
|
+
// Check if API key is already set (prefer WEBINY_PROJECT_API_KEY over WCP_PROJECT_ENVIRONMENT_API_KEY).
|
|
49
|
+
const apiKey = process.env.WEBINY_PROJECT_API_KEY || process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;
|
|
49
50
|
const sdkParams = projectSdkParamsService.get();
|
|
50
51
|
const env = sdkParams.env;
|
|
51
52
|
let projectEnvironment;
|
|
@@ -109,7 +110,7 @@ export const applyWcpEnvVars = async container => {
|
|
|
109
110
|
});
|
|
110
111
|
}
|
|
111
112
|
|
|
112
|
-
// Assign `WCP_PROJECT_ENVIRONMENT`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE
|
|
113
|
+
// Assign `WCP_PROJECT_ENVIRONMENT`, `WEBINY_PROJECT_API_KEY`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE`.
|
|
113
114
|
const wcpProjectEnvironment = {
|
|
114
115
|
id: projectEnvironment.id,
|
|
115
116
|
apiKey: projectEnvironment.apiKey,
|
|
@@ -121,6 +122,7 @@ export const applyWcpEnvVars = async container => {
|
|
|
121
122
|
}
|
|
122
123
|
};
|
|
123
124
|
process.env.WCP_PROJECT_ENVIRONMENT = encrypt(wcpProjectEnvironment);
|
|
125
|
+
process.env.WEBINY_PROJECT_API_KEY = projectEnvironment.apiKey;
|
|
124
126
|
process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = projectEnvironment.apiKey;
|
|
125
127
|
if (license) {
|
|
126
128
|
const licenseDto = license.toDto();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["encrypt","decrypt","GetProjectIdService","LoggerService","ProjectSdkParamsService","WcpService","applyWcpEnvVars","container","getProjectIdService","resolve","wcpService","loggerService","projectSdkParamsService","wcpProjectId","execute","debug","process","env","WCP_PROJECT_ENVIRONMENT","info","decryptedProjectEnvironment","WCP_PROJECT_ENVIRONMENT_API_KEY","apiKey","orgId","projectId","split","sdkParams","get","projectEnvironment","getProjectEnvironment","isValidId","error","Error","user","getUser","project","projects","find","item","id","name","userId","environmentId","org","status","license","getProjectLicense","wcpProjectEnvironment","licenseDto","toDto","WCP_PROJECT_LICENSE","JSON","stringify","replace"],"sources":["applyWcpEnvVars.ts"],"sourcesContent":["import { encrypt, decrypt } from \"@webiny/wcp\";\nimport type { ILicense } from \"@webiny/wcp/types\";\nimport { Container } from \"@webiny/di\";\nimport {\n GetProjectIdService,\n LoggerService,\n ProjectSdkParamsService,\n WcpService\n} from \"~/abstractions/index.js\";\n\nexport const applyWcpEnvVars = async (container: Container) => {\n /**\n * The environment variables we set via these hooks are the following:\n * - WCP_PROJECT_ENVIRONMENT - contains encrypted data about the deployed project environment\n * - WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key\n * - WCP_PROJECT_LICENSE - contains encrypted license data\n */\n\n /**\n * There are multiple ways the hooks below prepare the WCP-enabled project for deployment.\n * 1. If `WCP_PROJECT_ENVIRONMENT` metadata env var is defined, we decrypt it, retrieve the\n * API key from it, and assign it as the `WCP_PROJECT_ENVIRONMENT_API_KEY` env var.\n * 2. If `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the\n * project environment API key. We use that to load the project environment data\n * and to also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n * 3. If none of the above is defined, we retrieve (or create) the project environment,\n * retrieve its API key and again assign it as `WCP_PROJECT_ENVIRONMENT_API_KEY` env var.\n * As in 2), we also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n */\n\n const getProjectIdService = container.resolve(GetProjectIdService);\n const wcpService = container.resolve(WcpService);\n const loggerService = container.resolve(LoggerService);\n const projectSdkParamsService = container.resolve(ProjectSdkParamsService);\n\n const wcpProjectId = await getProjectIdService.execute();\n\n // If the project isn't linked with WCP, do nothing.\n if (!wcpProjectId) {\n loggerService.debug(\n 'Was not able to determine the WCP project ID. Skipping the setting of \"WCP_PROJECT_ENVIRONMENT\" and \"WCP_PROJECT_ENVIRONMENT_API_KEY\" env vars.'\n );\n return;\n }\n\n // Case 1: For development purposes, we allow setting the WCP_PROJECT_ENVIRONMENT env var directly.\n if (process.env.WCP_PROJECT_ENVIRONMENT) {\n loggerService.info(\n 'The \"WCP_PROJECT_ENVIRONMENT\" env var is already set. Using that value and skipping the rest of the process.'\n );\n // If we have WCP_PROJECT_ENVIRONMENT env var, we set the WCP_PROJECT_ENVIRONMENT_API_KEY too.\n const decryptedProjectEnvironment = decrypt(process.env.WCP_PROJECT_ENVIRONMENT);\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = decryptedProjectEnvironment.apiKey;\n return;\n }\n\n // The `id` has the orgId/projectId structure, for example `my-org-x/my-project-y`.\n const [orgId, projectId] = wcpProjectId.split(\"/\");\n\n // Check if API key is already set\n const apiKey = process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;\n\n const sdkParams = projectSdkParamsService.get();\n const env = sdkParams.env;\n\n let projectEnvironment;\n if (apiKey) {\n projectEnvironment = await wcpService.getProjectEnvironment({ apiKey });\n } else {\n const isValidId = orgId && projectId;\n if (!isValidId) {\n loggerService.error(\n { orgId, projectId, wcpProjectId },\n `The project ID, specified in \"webiny.config.tsx\" file, seems to be invalid.`\n );\n throw new Error(\n `It seems the project ID, specified in \"webiny.config.tsx\" file, is invalid.`\n );\n }\n\n // If there is no API key, that means we need to retrieve the currently logged-in user.\n const user = await wcpService.getUser();\n if (!user) {\n throw new Error(\n `It seems you are not logged into your WCP project. Please log in using the \"yarn webiny login\" command.`\n );\n }\n\n const project = user.projects.find(item => item.id === projectId);\n if (!project) {\n loggerService.error(\n { projects: user.projects },\n `The \"${projectId}\" project doesn't exist or you don't belong to it.`\n );\n throw new Error(\n `It seems you don't belong to the current project or the current project has been deleted.`\n );\n }\n\n loggerService.debug(\n `Retrieving the \"${env}\" project environment for the \"${project.name}\" project.`\n );\n\n projectEnvironment = await wcpService.getProjectEnvironment({\n orgId,\n projectId,\n userId: user.id,\n environmentId: env\n });\n }\n\n // Validate the project environment belongs to the correct org and project\n if (projectEnvironment.org.id !== orgId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment.project.id !== projectId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${projectId}\" project.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${wcpProjectId}\" project. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment && projectEnvironment.status !== \"enabled\") {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n }\n\n // Fetch license\n let license: ILicense | null = null;\n if (projectEnvironment.apiKey) {\n license = await wcpService.getProjectLicense({\n apiKey: projectEnvironment.apiKey,\n orgId,\n projectId\n });\n }\n\n // Assign `WCP_PROJECT_ENVIRONMENT`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE`\n const wcpProjectEnvironment = {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey,\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id }\n };\n\n process.env.WCP_PROJECT_ENVIRONMENT = encrypt(wcpProjectEnvironment);\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = projectEnvironment.apiKey;\n if (license) {\n const licenseDto = license.toDto();\n if (licenseDto) {\n process.env.WCP_PROJECT_LICENSE = JSON.stringify(licenseDto);\n }\n }\n\n loggerService.debug(\n {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey.replace(/./g, \"#\"),\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id },\n license: license ? \"present\" : \"not fetched\"\n },\n `WCP project environment \"${projectEnvironment.name}\" (ID: ${projectEnvironment.id}) has been set.`\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["encrypt","decrypt","GetProjectIdService","LoggerService","ProjectSdkParamsService","WcpService","applyWcpEnvVars","container","getProjectIdService","resolve","wcpService","loggerService","projectSdkParamsService","wcpProjectId","execute","debug","process","env","WCP_PROJECT_ENVIRONMENT","info","decryptedProjectEnvironment","WEBINY_PROJECT_API_KEY","apiKey","WCP_PROJECT_ENVIRONMENT_API_KEY","orgId","projectId","split","sdkParams","get","projectEnvironment","getProjectEnvironment","isValidId","error","Error","user","getUser","project","projects","find","item","id","name","userId","environmentId","org","status","license","getProjectLicense","wcpProjectEnvironment","licenseDto","toDto","WCP_PROJECT_LICENSE","JSON","stringify","replace"],"sources":["applyWcpEnvVars.ts"],"sourcesContent":["import { encrypt, decrypt } from \"@webiny/wcp\";\nimport type { ILicense } from \"@webiny/wcp/types\";\nimport { Container } from \"@webiny/di\";\nimport {\n GetProjectIdService,\n LoggerService,\n ProjectSdkParamsService,\n WcpService\n} from \"~/abstractions/index.js\";\n\nexport const applyWcpEnvVars = async (container: Container) => {\n /**\n * The environment variables we set via these hooks are the following:\n * - WCP_PROJECT_ENVIRONMENT - contains encrypted data about the deployed project environment\n * - WEBINY_PROJECT_API_KEY / WCP_PROJECT_ENVIRONMENT_API_KEY - for easier access, we also set the API key\n * - WCP_PROJECT_LICENSE - contains encrypted license data\n */\n\n /**\n * There are multiple ways the hooks below prepare the WCP-enabled project for deployment.\n * 1. If `WCP_PROJECT_ENVIRONMENT` metadata env var is defined, we decrypt it, retrieve the\n * API key from it, and assign it as the `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.\n * 2. If `WEBINY_PROJECT_API_KEY` or `WCP_PROJECT_ENVIRONMENT_API_KEY` env var is defined, then we use that as the\n * project environment API key. We use that to load the project environment data\n * and to also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n * 3. If none of the above is defined, we retrieve (or create) the project environment,\n * retrieve its API key and again assign it as `WEBINY_PROJECT_API_KEY` and `WCP_PROJECT_ENVIRONMENT_API_KEY` env vars.\n * As in 2), we also assign the `WCP_PROJECT_ENVIRONMENT` metadata env var.\n */\n\n const getProjectIdService = container.resolve(GetProjectIdService);\n const wcpService = container.resolve(WcpService);\n const loggerService = container.resolve(LoggerService);\n const projectSdkParamsService = container.resolve(ProjectSdkParamsService);\n\n const wcpProjectId = await getProjectIdService.execute();\n\n // If the project isn't linked with WCP, do nothing.\n if (!wcpProjectId) {\n loggerService.debug(\n 'Was not able to determine the WCP project ID. Skipping the setting of \"WCP_PROJECT_ENVIRONMENT\" and \"WCP_PROJECT_ENVIRONMENT_API_KEY\" env vars.'\n );\n return;\n }\n\n // Case 1: For development purposes, we allow setting the WCP_PROJECT_ENVIRONMENT env var directly.\n if (process.env.WCP_PROJECT_ENVIRONMENT) {\n loggerService.info(\n 'The \"WCP_PROJECT_ENVIRONMENT\" env var is already set. Using that value and skipping the rest of the process.'\n );\n // If we have WCP_PROJECT_ENVIRONMENT env var, we set the WEBINY_PROJECT_API_KEY and WCP_PROJECT_ENVIRONMENT_API_KEY too.\n const decryptedProjectEnvironment = decrypt(process.env.WCP_PROJECT_ENVIRONMENT);\n process.env.WEBINY_PROJECT_API_KEY = decryptedProjectEnvironment.apiKey;\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = decryptedProjectEnvironment.apiKey;\n return;\n }\n\n // The `id` has the orgId/projectId structure, for example `my-org-x/my-project-y`.\n const [orgId, projectId] = wcpProjectId.split(\"/\");\n\n // Check if API key is already set (prefer WEBINY_PROJECT_API_KEY over WCP_PROJECT_ENVIRONMENT_API_KEY).\n const apiKey =\n process.env.WEBINY_PROJECT_API_KEY || process.env.WCP_PROJECT_ENVIRONMENT_API_KEY;\n\n const sdkParams = projectSdkParamsService.get();\n const env = sdkParams.env;\n\n let projectEnvironment;\n if (apiKey) {\n projectEnvironment = await wcpService.getProjectEnvironment({ apiKey });\n } else {\n const isValidId = orgId && projectId;\n if (!isValidId) {\n loggerService.error(\n { orgId, projectId, wcpProjectId },\n `The project ID, specified in \"webiny.config.tsx\" file, seems to be invalid.`\n );\n throw new Error(\n `It seems the project ID, specified in \"webiny.config.tsx\" file, is invalid.`\n );\n }\n\n // If there is no API key, that means we need to retrieve the currently logged-in user.\n const user = await wcpService.getUser();\n if (!user) {\n throw new Error(\n `It seems you are not logged into your WCP project. Please log in using the \"yarn webiny login\" command.`\n );\n }\n\n const project = user.projects.find(item => item.id === projectId);\n if (!project) {\n loggerService.error(\n { projects: user.projects },\n `The \"${projectId}\" project doesn't exist or you don't belong to it.`\n );\n throw new Error(\n `It seems you don't belong to the current project or the current project has been deleted.`\n );\n }\n\n loggerService.debug(\n `Retrieving the \"${env}\" project environment for the \"${project.name}\" project.`\n );\n\n projectEnvironment = await wcpService.getProjectEnvironment({\n orgId,\n projectId,\n userId: user.id,\n environmentId: env\n });\n }\n\n // Validate the project environment belongs to the correct org and project\n if (projectEnvironment.org.id !== orgId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${orgId}\" organization. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment.project.id !== projectId) {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment doesn't belong to the \"${projectId}\" project.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment doesn't belong to the \"${wcpProjectId}\" project. Please check your WCP project ID (currently set to \"${wcpProjectId}\").`\n );\n }\n\n if (projectEnvironment && projectEnvironment.status !== \"enabled\") {\n loggerService.error(\n `The \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n throw new Error(\n `Cannot retrieve project environment because the \"${projectEnvironment.name}\" project environment has been disabled.`\n );\n }\n\n // Fetch license\n let license: ILicense | null = null;\n if (projectEnvironment.apiKey) {\n license = await wcpService.getProjectLicense({\n apiKey: projectEnvironment.apiKey,\n orgId,\n projectId\n });\n }\n\n // Assign `WCP_PROJECT_ENVIRONMENT`, `WEBINY_PROJECT_API_KEY`, `WCP_PROJECT_ENVIRONMENT_API_KEY`, and `WCP_PROJECT_LICENSE`.\n const wcpProjectEnvironment = {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey,\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id }\n };\n\n process.env.WCP_PROJECT_ENVIRONMENT = encrypt(wcpProjectEnvironment);\n process.env.WEBINY_PROJECT_API_KEY = projectEnvironment.apiKey;\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY = projectEnvironment.apiKey;\n if (license) {\n const licenseDto = license.toDto();\n if (licenseDto) {\n process.env.WCP_PROJECT_LICENSE = JSON.stringify(licenseDto);\n }\n }\n\n loggerService.debug(\n {\n id: projectEnvironment.id,\n apiKey: projectEnvironment.apiKey.replace(/./g, \"#\"),\n org: { id: projectEnvironment.org.id },\n project: { id: projectEnvironment.project.id },\n license: license ? \"present\" : \"not fetched\"\n },\n `WCP project environment \"${projectEnvironment.name}\" (ID: ${projectEnvironment.id}) has been set.`\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,10 +10,10 @@ export class DefaultProjectInfoService {
|
|
|
10
10
|
this.getProjectVersion = getProjectVersion;
|
|
11
11
|
}
|
|
12
12
|
async execute() {
|
|
13
|
-
const wcpProjectId = process.env.WCP_PROJECT_ID || "";
|
|
13
|
+
const wcpProjectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID || "";
|
|
14
14
|
// const wcpUser = await getUser().catch(() => null);
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
|
-
const wcpUsingProjectEnvironmentApiKey = Boolean(process.env.WCP_ENVIRONMENT_API_KEY);
|
|
16
|
+
const wcpUsingProjectEnvironmentApiKey = Boolean(process.env.WEBINY_PROJECT_API_KEY || process.env.WCP_PROJECT_ENVIRONMENT_API_KEY || process.env.WCP_ENVIRONMENT_API_KEY);
|
|
17
17
|
const isCI = this.getIsCi.execute();
|
|
18
18
|
const npmVersion = this.getNpmVersion.execute();
|
|
19
19
|
const npxVersion = this.getNpxVersion.execute();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImplementation","ProjectInfoService","GetIsCiService","GetNpmVersionService","GetNpxVersionService","GetPulumiVersionService","GetYarnVersionService","GetProjectVersionService","DefaultProjectInfoService","constructor","getIsCi","getNpmVersion","getNpxVersion","getPulumiVersion","getYarnVersion","getProjectVersion","execute","wcpProjectId","process","env","WCP_PROJECT_ID","wcpUsingProjectEnvironmentApiKey","Boolean","WCP_ENVIRONMENT_API_KEY","isCI","npmVersion","npxVersion","yarnVersion","pulumiVersion","pulumiAwsVersion","webiny","version","debugEnabled","DEBUG","featureFlags","WEBINY_FEATURE_FLAGS","wcp","projectId","usingProjectEnvironmentApiKey","host","os","platform","arch","nodeJs","npm","npx","yarn","pulumi","secretsProvider","PULUMI_SECRETS_PROVIDER","usingPassword","PULUMI_CONFIG_PASSPHRASE","projectInfoService","abstraction","implementation","dependencies"],"sources":["ProjectInfoService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n ProjectInfoService,\n GetIsCiService,\n GetNpmVersionService,\n GetNpxVersionService,\n GetPulumiVersionService,\n GetYarnVersionService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { IProjectInfoServiceResult } from \"~/abstractions/services/ProjectInfoService/ProjectInfoService.js\";\n\nexport class DefaultProjectInfoService implements ProjectInfoService.Interface {\n constructor(\n private getIsCi: GetIsCiService.Interface,\n private getNpmVersion: GetNpmVersionService.Interface,\n private getNpxVersion: GetNpxVersionService.Interface,\n private getPulumiVersion: GetPulumiVersionService.Interface,\n private getYarnVersion: GetYarnVersionService.Interface,\n private getProjectVersion: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const wcpProjectId = process.env.WCP_PROJECT_ID || \"\";\n // const wcpUser = await getUser().catch(() => null);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const wcpUsingProjectEnvironmentApiKey = Boolean(process.env.WCP_ENVIRONMENT_API_KEY);\n\n const isCI = this.getIsCi.execute();\n const npmVersion = this.getNpmVersion.execute();\n const npxVersion = this.getNpxVersion.execute();\n const yarnVersion = this.getYarnVersion.execute();\n const [pulumiVersion, pulumiAwsVersion] = this.getPulumiVersion.execute();\n\n return {\n webiny: {\n version: this.getProjectVersion.execute(),\n debugEnabled: process.env.DEBUG === \"true\",\n featureFlags: process.env.WEBINY_FEATURE_FLAGS || {}\n },\n wcp: {\n projectId: wcpProjectId,\n // user: wcpUser?.email || \"N/A\",\n usingProjectEnvironmentApiKey: false // wcpUsingProject\n },\n host: {\n os: `${process.platform} (${process.arch})`,\n nodeJs: process.version,\n npm: npmVersion,\n npx: npxVersion,\n yarn: yarnVersion,\n isCI: isCI\n },\n pulumi: {\n \"@pulumi/pulumi\": pulumiVersion,\n \"@pulumi/aws\": pulumiAwsVersion,\n secretsProvider: process.env.PULUMI_SECRETS_PROVIDER || \"\",\n usingPassword: !!process.env.PULUMI_CONFIG_PASSPHRASE\n }\n } as IProjectInfoServiceResult;\n }\n}\n\nexport const projectInfoService = createImplementation({\n abstraction: ProjectInfoService,\n implementation: DefaultProjectInfoService,\n dependencies: [\n GetIsCiService,\n GetNpmVersionService,\n GetNpxVersionService,\n GetPulumiVersionService,\n GetYarnVersionService,\n GetProjectVersionService\n ]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SACIC,kBAAkB,EAClBC,cAAc,EACdC,oBAAoB,EACpBC,oBAAoB,EACpBC,uBAAuB,EACvBC,qBAAqB,EACrBC,wBAAwB;AAI5B,OAAO,MAAMC,yBAAyB,CAAyC;EAC3EC,WAAWA,CACCC,OAAiC,EACjCC,aAA6C,EAC7CC,aAA6C,EAC7CC,gBAAmD,EACnDC,cAA+C,EAC/CC,iBAAqD,EAC/D;IAAA,KANUL,OAAiC,GAAjCA,OAAiC;IAAA,KACjCC,aAA6C,GAA7CA,aAA6C;IAAA,KAC7CC,aAA6C,GAA7CA,aAA6C;IAAA,KAC7CC,gBAAmD,GAAnDA,gBAAmD;IAAA,KACnDC,cAA+C,GAA/CA,cAA+C;IAAA,KAC/CC,iBAAqD,GAArDA,iBAAqD;EAC9D;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,EAAE;
|
|
1
|
+
{"version":3,"names":["createImplementation","ProjectInfoService","GetIsCiService","GetNpmVersionService","GetNpxVersionService","GetPulumiVersionService","GetYarnVersionService","GetProjectVersionService","DefaultProjectInfoService","constructor","getIsCi","getNpmVersion","getNpxVersion","getPulumiVersion","getYarnVersion","getProjectVersion","execute","wcpProjectId","process","env","WEBINY_PROJECT_ID","WCP_PROJECT_ID","wcpUsingProjectEnvironmentApiKey","Boolean","WEBINY_PROJECT_API_KEY","WCP_PROJECT_ENVIRONMENT_API_KEY","WCP_ENVIRONMENT_API_KEY","isCI","npmVersion","npxVersion","yarnVersion","pulumiVersion","pulumiAwsVersion","webiny","version","debugEnabled","DEBUG","featureFlags","WEBINY_FEATURE_FLAGS","wcp","projectId","usingProjectEnvironmentApiKey","host","os","platform","arch","nodeJs","npm","npx","yarn","pulumi","secretsProvider","PULUMI_SECRETS_PROVIDER","usingPassword","PULUMI_CONFIG_PASSPHRASE","projectInfoService","abstraction","implementation","dependencies"],"sources":["ProjectInfoService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n ProjectInfoService,\n GetIsCiService,\n GetNpmVersionService,\n GetNpxVersionService,\n GetPulumiVersionService,\n GetYarnVersionService,\n GetProjectVersionService\n} from \"~/abstractions/index.js\";\nimport { IProjectInfoServiceResult } from \"~/abstractions/services/ProjectInfoService/ProjectInfoService.js\";\n\nexport class DefaultProjectInfoService implements ProjectInfoService.Interface {\n constructor(\n private getIsCi: GetIsCiService.Interface,\n private getNpmVersion: GetNpmVersionService.Interface,\n private getNpxVersion: GetNpxVersionService.Interface,\n private getPulumiVersion: GetPulumiVersionService.Interface,\n private getYarnVersion: GetYarnVersionService.Interface,\n private getProjectVersion: GetProjectVersionService.Interface\n ) {}\n\n async execute() {\n const wcpProjectId = process.env.WEBINY_PROJECT_ID || process.env.WCP_PROJECT_ID || \"\";\n // const wcpUser = await getUser().catch(() => null);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const wcpUsingProjectEnvironmentApiKey = Boolean(\n process.env.WEBINY_PROJECT_API_KEY ||\n process.env.WCP_PROJECT_ENVIRONMENT_API_KEY ||\n process.env.WCP_ENVIRONMENT_API_KEY\n );\n\n const isCI = this.getIsCi.execute();\n const npmVersion = this.getNpmVersion.execute();\n const npxVersion = this.getNpxVersion.execute();\n const yarnVersion = this.getYarnVersion.execute();\n const [pulumiVersion, pulumiAwsVersion] = this.getPulumiVersion.execute();\n\n return {\n webiny: {\n version: this.getProjectVersion.execute(),\n debugEnabled: process.env.DEBUG === \"true\",\n featureFlags: process.env.WEBINY_FEATURE_FLAGS || {}\n },\n wcp: {\n projectId: wcpProjectId,\n // user: wcpUser?.email || \"N/A\",\n usingProjectEnvironmentApiKey: false // wcpUsingProject\n },\n host: {\n os: `${process.platform} (${process.arch})`,\n nodeJs: process.version,\n npm: npmVersion,\n npx: npxVersion,\n yarn: yarnVersion,\n isCI: isCI\n },\n pulumi: {\n \"@pulumi/pulumi\": pulumiVersion,\n \"@pulumi/aws\": pulumiAwsVersion,\n secretsProvider: process.env.PULUMI_SECRETS_PROVIDER || \"\",\n usingPassword: !!process.env.PULUMI_CONFIG_PASSPHRASE\n }\n } as IProjectInfoServiceResult;\n }\n}\n\nexport const projectInfoService = createImplementation({\n abstraction: ProjectInfoService,\n implementation: DefaultProjectInfoService,\n dependencies: [\n GetIsCiService,\n GetNpmVersionService,\n GetNpxVersionService,\n GetPulumiVersionService,\n GetYarnVersionService,\n GetProjectVersionService\n ]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SACIC,kBAAkB,EAClBC,cAAc,EACdC,oBAAoB,EACpBC,oBAAoB,EACpBC,uBAAuB,EACvBC,qBAAqB,EACrBC,wBAAwB;AAI5B,OAAO,MAAMC,yBAAyB,CAAyC;EAC3EC,WAAWA,CACCC,OAAiC,EACjCC,aAA6C,EAC7CC,aAA6C,EAC7CC,gBAAmD,EACnDC,cAA+C,EAC/CC,iBAAqD,EAC/D;IAAA,KANUL,OAAiC,GAAjCA,OAAiC;IAAA,KACjCC,aAA6C,GAA7CA,aAA6C;IAAA,KAC7CC,aAA6C,GAA7CA,aAA6C;IAAA,KAC7CC,gBAAmD,GAAnDA,gBAAmD;IAAA,KACnDC,cAA+C,GAA/CA,cAA+C;IAAA,KAC/CC,iBAAqD,GAArDA,iBAAqD;EAC9D;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAIF,OAAO,CAACC,GAAG,CAACE,cAAc,IAAI,EAAE;IACtF;IACA;IACA,MAAMC,gCAAgC,GAAGC,OAAO,CAC5CL,OAAO,CAACC,GAAG,CAACK,sBAAsB,IAC9BN,OAAO,CAACC,GAAG,CAACM,+BAA+B,IAC3CP,OAAO,CAACC,GAAG,CAACO,uBACpB,CAAC;IAED,MAAMC,IAAI,GAAG,IAAI,CAACjB,OAAO,CAACM,OAAO,CAAC,CAAC;IACnC,MAAMY,UAAU,GAAG,IAAI,CAACjB,aAAa,CAACK,OAAO,CAAC,CAAC;IAC/C,MAAMa,UAAU,GAAG,IAAI,CAACjB,aAAa,CAACI,OAAO,CAAC,CAAC;IAC/C,MAAMc,WAAW,GAAG,IAAI,CAAChB,cAAc,CAACE,OAAO,CAAC,CAAC;IACjD,MAAM,CAACe,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAI,CAACnB,gBAAgB,CAACG,OAAO,CAAC,CAAC;IAEzE,OAAO;MACHiB,MAAM,EAAE;QACJC,OAAO,EAAE,IAAI,CAACnB,iBAAiB,CAACC,OAAO,CAAC,CAAC;QACzCmB,YAAY,EAAEjB,OAAO,CAACC,GAAG,CAACiB,KAAK,KAAK,MAAM;QAC1CC,YAAY,EAAEnB,OAAO,CAACC,GAAG,CAACmB,oBAAoB,IAAI,CAAC;MACvD,CAAC;MACDC,GAAG,EAAE;QACDC,SAAS,EAAEvB,YAAY;QACvB;QACAwB,6BAA6B,EAAE,KAAK,CAAC;MACzC,CAAC;MACDC,IAAI,EAAE;QACFC,EAAE,EAAE,GAAGzB,OAAO,CAAC0B,QAAQ,KAAK1B,OAAO,CAAC2B,IAAI,GAAG;QAC3CC,MAAM,EAAE5B,OAAO,CAACgB,OAAO;QACvBa,GAAG,EAAEnB,UAAU;QACfoB,GAAG,EAAEnB,UAAU;QACfoB,IAAI,EAAEnB,WAAW;QACjBH,IAAI,EAAEA;MACV,CAAC;MACDuB,MAAM,EAAE;QACJ,gBAAgB,EAAEnB,aAAa;QAC/B,aAAa,EAAEC,gBAAgB;QAC/BmB,eAAe,EAAEjC,OAAO,CAACC,GAAG,CAACiC,uBAAuB,IAAI,EAAE;QAC1DC,aAAa,EAAE,CAAC,CAACnC,OAAO,CAACC,GAAG,CAACmC;MACjC;IACJ,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,kBAAkB,GAAGvD,oBAAoB,CAAC;EACnDwD,WAAW,EAAEvD,kBAAkB;EAC/BwD,cAAc,EAAEjD,yBAAyB;EACzCkD,YAAY,EAAE,CACVxD,cAAc,EACdC,oBAAoB,EACpBC,oBAAoB,EACpBC,uBAAuB,EACvBC,qBAAqB,EACrBC,wBAAwB;AAEhC,CAAC,CAAC","ignoreList":[]}
|
package/exports/extensions.d.ts
DELETED
package/exports/extensions.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["EnvVar","FeatureFlags"],"sources":["extensions.ts"],"sourcesContent":["export { EnvVar } from \"~/extensions/EnvVar.js\";\nexport { FeatureFlags } from \"~/extensions/FeatureFlags.js\";\n"],"mappings":"AAAA,SAASA,MAAM;AACf,SAASC,YAAY","ignoreList":[]}
|