@webiny/project 0.0.0-unstable.df7a8bb475 → 0.0.0-unstable.e2758ee1cf
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/ProjectSdk.d.ts +1 -0
- package/ProjectSdk.js +4 -1
- package/ProjectSdk.js.map +1 -1
- package/abstractions/features/GetFeatureFlags.d.ts +8 -0
- package/abstractions/features/GetFeatureFlags.js +4 -0
- package/abstractions/features/GetFeatureFlags.js.map +1 -0
- package/abstractions/features/index.d.ts +1 -0
- package/abstractions/features/index.js +1 -0
- package/abstractions/features/index.js.map +1 -1
- package/abstractions/services/WatchedLambdaFunctionsService.d.ts +12 -7
- package/abstractions/services/WatchedLambdaFunctionsService.js.map +1 -1
- package/components/Wcp.d.ts +2 -0
- package/components/Wcp.js +8 -1
- package/components/Wcp.js.map +1 -1
- package/createProjectSdkContainer.js +4 -1
- package/createProjectSdkContainer.js.map +1 -1
- package/decorators/DeployAppClearWatchedLambdaFunctions.d.ts +3 -2
- package/decorators/DeployAppClearWatchedLambdaFunctions.js +11 -5
- package/decorators/DeployAppClearWatchedLambdaFunctions.js.map +1 -1
- package/decorators/DeployAppWithWatchedLambdaReplacement.d.ts +3 -2
- package/decorators/DeployAppWithWatchedLambdaReplacement.js +16 -7
- package/decorators/DeployAppWithWatchedLambdaReplacement.js.map +1 -1
- package/decorators/GetFeatureFlagsWithLicense.d.ts +13 -0
- package/decorators/GetFeatureFlagsWithLicense.js +71 -0
- package/decorators/GetFeatureFlagsWithLicense.js.map +1 -0
- package/decorators/index.d.ts +1 -0
- package/decorators/index.js +1 -0
- package/decorators/index.js.map +1 -1
- package/defineExtension/createExtensionReactComponent.js +2 -6
- package/defineExtension/createExtensionReactComponent.js.map +1 -1
- package/defineExtension/index.d.ts +0 -1
- package/defineExtension/index.js +0 -1
- package/defineExtension/index.js.map +1 -1
- package/defineExtension/zodTypes/zodSrcPath.d.ts +1 -0
- package/defineExtension/zodTypes/zodSrcPath.js +7 -14
- package/defineExtension/zodTypes/zodSrcPath.js.map +1 -1
- 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.d.ts +11 -0
- package/extensions/AdminBuildParam.js +184 -0
- package/extensions/AdminBuildParam.js.map +1 -0
- package/extensions/AdminExtension.d.ts +11 -0
- package/extensions/AdminExtension.js +99 -0
- package/extensions/AdminExtension.js.map +1 -0
- package/extensions/ApiBuildParam.d.ts +11 -0
- package/extensions/ApiBuildParam.js +119 -0
- package/extensions/ApiBuildParam.js.map +1 -0
- package/extensions/ApiExtension.d.ts +11 -0
- package/{defineExtension/defineApiExtension.js → extensions/ApiExtension.js} +14 -22
- package/extensions/ApiExtension.js.map +1 -0
- package/extensions/FeatureFlags.d.ts +92 -0
- package/extensions/FeatureFlags.js +43 -0
- package/extensions/FeatureFlags.js.map +1 -0
- package/extensions/index.d.ts +109 -0
- package/extensions/index.js +12 -2
- package/extensions/index.js.map +1 -1
- package/features/GetFeatureFlags/GetFeatureFlags.d.ts +10 -0
- package/features/GetFeatureFlags/GetFeatureFlags.js +29 -0
- package/features/GetFeatureFlags/GetFeatureFlags.js.map +1 -0
- package/features/GetFeatureFlags/index.d.ts +1 -0
- package/features/GetFeatureFlags/index.js +3 -0
- package/features/GetFeatureFlags/index.js.map +1 -0
- package/features/Watch/Watch.js +1 -0
- package/features/Watch/Watch.js.map +1 -1
- package/features/Watch/replaceLambdaFunctions.d.ts +2 -1
- package/features/Watch/replaceLambdaFunctions.js +5 -1
- package/features/Watch/replaceLambdaFunctions.js.map +1 -1
- package/features/index.d.ts +1 -0
- package/features/index.js +1 -0
- package/features/index.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +17 -16
- package/services/GetProjectConfigService/WcpProjectLicenseContext.d.ts +1 -0
- package/services/GetProjectConfigService/WcpProjectLicenseContext.js +2 -1
- package/services/GetProjectConfigService/WcpProjectLicenseContext.js.map +1 -1
- package/services/InitProjectSdkService/registerDecorators.js +2 -2
- package/services/InitProjectSdkService/registerDecorators.js.map +1 -1
- package/services/InitProjectSdkService/registerHooks.js +2 -2
- package/services/InitProjectSdkService/registerHooks.js.map +1 -1
- package/services/InitProjectSdkService/registerImplementations.js +2 -2
- package/services/InitProjectSdkService/registerImplementations.js.map +1 -1
- package/services/InitProjectSdkService/registerPulumiExtensions.js +2 -2
- package/services/InitProjectSdkService/registerPulumiExtensions.js.map +1 -1
- package/services/InstallExtensionService/InstallExtensionService.d.ts +1 -1
- package/services/InstallExtensionService/InstallExtensionService.js +3 -3
- package/services/InstallExtensionService/InstallExtensionService.js.map +1 -1
- package/services/InstallExtensionService/mergePackageJson.js +4 -4
- package/services/InstallExtensionService/mergePackageJson.js.map +1 -1
- package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js +1 -1
- package/services/ListAppLambdaFunctionsService/ListAppLambdaFunctionsService.js.map +1 -1
- package/services/SetProjectIdService/SetProjectIdService.js +28 -18
- package/services/SetProjectIdService/SetProjectIdService.js.map +1 -1
- package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.d.ts +4 -4
- package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js +26 -20
- package/services/WatchedLambdaFunctionsService/WatchedLambdaFunctionsService.js.map +1 -1
- package/utils/ExtensionSrcResolver.d.ts +33 -0
- package/utils/ExtensionSrcResolver.js +119 -0
- package/utils/ExtensionSrcResolver.js.map +1 -0
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -1
- package/utils/index.js.map +1 -1
- package/defineExtension/defineApiExtension.d.ts +0 -17
- package/defineExtension/defineApiExtension.js.map +0 -1
- package/exports/extensions.d.ts +0 -1
- package/exports/extensions.js +0 -3
- package/exports/extensions.js.map +0 -1
- package/utils/ImplPathResolver.d.ts +0 -10
- package/utils/ImplPathResolver.js +0 -27
- package/utils/ImplPathResolver.js.map +0 -1
package/extensions/index.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ import { ProjectId } from "./ProjectId.js";
|
|
|
5
5
|
import { Telemetry } from "./Telemetry.js";
|
|
6
6
|
import { EnvVar } from "./EnvVar.js";
|
|
7
7
|
import { DatabaseSetup } from "./DatabaseSetup.js";
|
|
8
|
+
import { FeatureFlags } from "./FeatureFlags.js";
|
|
9
|
+
import { BuildParam } from "./ApiBuildParam.js";
|
|
10
|
+
import { AdminBuildParam } from "./AdminBuildParam.js";
|
|
11
|
+
import { AdminExtension } from "./AdminExtension.js";
|
|
12
|
+
import { ApiExtension } from "./ApiExtension.js";
|
|
8
13
|
import { AdminAfterBuild, AdminAfterDeploy, AdminBeforeBuild, AdminBeforeDeploy, AdminBeforeWatch, AfterBuild, AfterDeploy, BeforeDeploy, BeforeWatch, ApiAfterBuild, ApiAfterDeploy, ApiBeforeBuild, ApiBeforeDeploy, ApiBeforeWatch, BeforeBuild, CoreAfterBuild, CoreAfterDeploy, CoreBeforeBuild, CoreBeforeDeploy, CoreBeforeWatch } from "./hooks/index.js";
|
|
9
14
|
import { AdminPulumi, ApiPulumi, CorePulumi, ProductionEnvironments, PulumiResourceNamePrefix, CoreStackOutputValue, ApiStackOutputValue, AdminStackOutputValue } from "./pulumi/index.js";
|
|
10
15
|
export { Telemetry };
|
|
@@ -13,7 +18,12 @@ export { ProjectDecorator };
|
|
|
13
18
|
export { ProjectImplementation };
|
|
14
19
|
export { ExtensionDefinitions };
|
|
15
20
|
export { EnvVar };
|
|
21
|
+
export { FeatureFlags };
|
|
16
22
|
export { DatabaseSetup };
|
|
23
|
+
export { BuildParam };
|
|
24
|
+
export { AdminBuildParam };
|
|
25
|
+
export { AdminExtension };
|
|
26
|
+
export { ApiExtension };
|
|
17
27
|
export { BeforeBuild };
|
|
18
28
|
export { BeforeDeploy };
|
|
19
29
|
export { BeforeWatch };
|
|
@@ -75,6 +85,96 @@ export declare const definitions: (import("../defineExtension/index.js").Extensi
|
|
|
75
85
|
}, {
|
|
76
86
|
value: string;
|
|
77
87
|
varName: string;
|
|
88
|
+
}>> | import("../defineExtension/index.js").ExtensionDefinitionModel<import("zod").ZodObject<{
|
|
89
|
+
features: import("zod").ZodObject<{
|
|
90
|
+
multiTenancy: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
91
|
+
advancedPublishingWorkflow: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
92
|
+
advancedAccessControlLayer: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodBoolean, import("zod").ZodObject<{
|
|
93
|
+
teams: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
94
|
+
privateFiles: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
95
|
+
folderLevelPermissions: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
96
|
+
hcmsFieldPermissions: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
97
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
98
|
+
teams?: boolean | undefined;
|
|
99
|
+
privateFiles?: boolean | undefined;
|
|
100
|
+
folderLevelPermissions?: boolean | undefined;
|
|
101
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
102
|
+
}, {
|
|
103
|
+
teams?: boolean | undefined;
|
|
104
|
+
privateFiles?: boolean | undefined;
|
|
105
|
+
folderLevelPermissions?: boolean | undefined;
|
|
106
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
107
|
+
}>]>>;
|
|
108
|
+
auditLogs: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
109
|
+
recordLocking: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
110
|
+
fileManager: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
111
|
+
threatDetection: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
112
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
113
|
+
threatDetection?: boolean | undefined;
|
|
114
|
+
}, {
|
|
115
|
+
threatDetection?: boolean | undefined;
|
|
116
|
+
}>>;
|
|
117
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
118
|
+
multiTenancy?: boolean | undefined;
|
|
119
|
+
advancedPublishingWorkflow?: boolean | undefined;
|
|
120
|
+
advancedAccessControlLayer?: boolean | {
|
|
121
|
+
teams?: boolean | undefined;
|
|
122
|
+
privateFiles?: boolean | undefined;
|
|
123
|
+
folderLevelPermissions?: boolean | undefined;
|
|
124
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
125
|
+
} | undefined;
|
|
126
|
+
auditLogs?: boolean | undefined;
|
|
127
|
+
recordLocking?: boolean | undefined;
|
|
128
|
+
fileManager?: {
|
|
129
|
+
threatDetection?: boolean | undefined;
|
|
130
|
+
} | undefined;
|
|
131
|
+
}, {
|
|
132
|
+
multiTenancy?: boolean | undefined;
|
|
133
|
+
advancedPublishingWorkflow?: boolean | undefined;
|
|
134
|
+
advancedAccessControlLayer?: boolean | {
|
|
135
|
+
teams?: boolean | undefined;
|
|
136
|
+
privateFiles?: boolean | undefined;
|
|
137
|
+
folderLevelPermissions?: boolean | undefined;
|
|
138
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
139
|
+
} | undefined;
|
|
140
|
+
auditLogs?: boolean | undefined;
|
|
141
|
+
recordLocking?: boolean | undefined;
|
|
142
|
+
fileManager?: {
|
|
143
|
+
threatDetection?: boolean | undefined;
|
|
144
|
+
} | undefined;
|
|
145
|
+
}>;
|
|
146
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
147
|
+
features: {
|
|
148
|
+
multiTenancy?: boolean | undefined;
|
|
149
|
+
advancedPublishingWorkflow?: boolean | undefined;
|
|
150
|
+
advancedAccessControlLayer?: boolean | {
|
|
151
|
+
teams?: boolean | undefined;
|
|
152
|
+
privateFiles?: boolean | undefined;
|
|
153
|
+
folderLevelPermissions?: boolean | undefined;
|
|
154
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
155
|
+
} | undefined;
|
|
156
|
+
auditLogs?: boolean | undefined;
|
|
157
|
+
recordLocking?: boolean | undefined;
|
|
158
|
+
fileManager?: {
|
|
159
|
+
threatDetection?: boolean | undefined;
|
|
160
|
+
} | undefined;
|
|
161
|
+
};
|
|
162
|
+
}, {
|
|
163
|
+
features: {
|
|
164
|
+
multiTenancy?: boolean | undefined;
|
|
165
|
+
advancedPublishingWorkflow?: boolean | undefined;
|
|
166
|
+
advancedAccessControlLayer?: boolean | {
|
|
167
|
+
teams?: boolean | undefined;
|
|
168
|
+
privateFiles?: boolean | undefined;
|
|
169
|
+
folderLevelPermissions?: boolean | undefined;
|
|
170
|
+
hcmsFieldPermissions?: boolean | undefined;
|
|
171
|
+
} | undefined;
|
|
172
|
+
auditLogs?: boolean | undefined;
|
|
173
|
+
recordLocking?: boolean | undefined;
|
|
174
|
+
fileManager?: {
|
|
175
|
+
threatDetection?: boolean | undefined;
|
|
176
|
+
} | undefined;
|
|
177
|
+
};
|
|
78
178
|
}>> | import("../defineExtension/index.js").ExtensionDefinitionModel<import("zod").ZodObject<{
|
|
79
179
|
prefix: import("zod").ZodString;
|
|
80
180
|
}, "strip", import("zod").ZodTypeAny, {
|
|
@@ -102,6 +202,15 @@ export declare const definitions: (import("../defineExtension/index.js").Extensi
|
|
|
102
202
|
setupName: "ddb" | "ddb+es" | "ddb+os";
|
|
103
203
|
}, {
|
|
104
204
|
setupName: "ddb" | "ddb+es" | "ddb+os";
|
|
205
|
+
}>> | import("../defineExtension/index.js").ExtensionDefinitionModel<import("zod").ZodObject<{
|
|
206
|
+
paramName: import("zod").ZodString;
|
|
207
|
+
value: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>, import("zod").ZodArray<import("zod").ZodAny, "many">, import("zod").ZodNumber, import("zod").ZodBoolean]>;
|
|
208
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
209
|
+
value: string | number | boolean | any[] | Record<string, any>;
|
|
210
|
+
paramName: string;
|
|
211
|
+
}, {
|
|
212
|
+
value: string | number | boolean | any[] | Record<string, any>;
|
|
213
|
+
paramName: string;
|
|
105
214
|
}>>)[];
|
|
106
215
|
export { Project } from "./Project.js";
|
|
107
216
|
export * from "../defineExtension/index.js";
|
package/extensions/index.js
CHANGED
|
@@ -5,6 +5,11 @@ import { ProjectId } from "./ProjectId.js";
|
|
|
5
5
|
import { Telemetry } from "./Telemetry.js";
|
|
6
6
|
import { EnvVar } from "./EnvVar.js";
|
|
7
7
|
import { DatabaseSetup } from "./DatabaseSetup.js";
|
|
8
|
+
import { FeatureFlags } from "./FeatureFlags.js";
|
|
9
|
+
import { BuildParam } from "./ApiBuildParam.js";
|
|
10
|
+
import { AdminBuildParam } from "./AdminBuildParam.js";
|
|
11
|
+
import { AdminExtension } from "./AdminExtension.js";
|
|
12
|
+
import { ApiExtension } from "./ApiExtension.js";
|
|
8
13
|
|
|
9
14
|
// Hooks.
|
|
10
15
|
import { AdminAfterBuild, AdminAfterDeploy, AdminBeforeBuild, AdminBeforeDeploy, AdminBeforeWatch, AfterBuild, AfterDeploy, BeforeDeploy, BeforeWatch, ApiAfterBuild, ApiAfterDeploy, ApiBeforeBuild, ApiBeforeDeploy, ApiBeforeWatch, BeforeBuild, CoreAfterBuild, CoreAfterDeploy, CoreBeforeBuild, CoreBeforeDeploy, CoreBeforeWatch } from "./hooks/index.js";
|
|
@@ -19,7 +24,12 @@ export { ProjectDecorator };
|
|
|
19
24
|
export { ProjectImplementation };
|
|
20
25
|
export { ExtensionDefinitions };
|
|
21
26
|
export { EnvVar };
|
|
27
|
+
export { FeatureFlags };
|
|
22
28
|
export { DatabaseSetup };
|
|
29
|
+
export { BuildParam };
|
|
30
|
+
export { AdminBuildParam };
|
|
31
|
+
export { AdminExtension };
|
|
32
|
+
export { ApiExtension };
|
|
23
33
|
|
|
24
34
|
// Hooks.
|
|
25
35
|
export { BeforeBuild };
|
|
@@ -54,11 +64,11 @@ export { ApiStackOutputValue };
|
|
|
54
64
|
export { AdminStackOutputValue };
|
|
55
65
|
|
|
56
66
|
// Definitions (used internally). 👇
|
|
57
|
-
export const definitions = [Telemetry.def, ProjectId.def, ProjectDecorator.def, ProjectImplementation.def, ExtensionDefinitions.def, EnvVar.def,
|
|
67
|
+
export const definitions = [Telemetry.def, ProjectId.def, ProjectDecorator.def, ProjectImplementation.def, ExtensionDefinitions.def, EnvVar.def, FeatureFlags.def,
|
|
58
68
|
// Hooks.
|
|
59
69
|
AdminAfterBuild.def, AdminAfterDeploy.def, BeforeBuild.def, BeforeDeploy.def, BeforeWatch.def, AfterBuild.def, AfterDeploy.def, AdminBeforeBuild.def, AdminBeforeDeploy.def, AdminBeforeWatch.def, ApiAfterBuild.def, ApiAfterDeploy.def, ApiBeforeBuild.def, ApiBeforeDeploy.def, ApiBeforeWatch.def, CoreAfterBuild.def, CoreAfterDeploy.def, CoreBeforeBuild.def, CoreBeforeDeploy.def, CoreBeforeWatch.def,
|
|
60
70
|
// Pulumi.
|
|
61
|
-
CorePulumi.def, PulumiResourceNamePrefix.def, ProductionEnvironments.def, CoreStackOutputValue.def, ApiStackOutputValue.def, AdminStackOutputValue.def, DatabaseSetup.def];
|
|
71
|
+
AdminPulumi.def, ApiPulumi.def, CorePulumi.def, PulumiResourceNamePrefix.def, ProductionEnvironments.def, CoreStackOutputValue.def, ApiStackOutputValue.def, AdminStackOutputValue.def, DatabaseSetup.def, BuildParam.def, AdminBuildParam.def, AdminExtension.def, ApiExtension.def];
|
|
62
72
|
export { Project } from "./Project.js";
|
|
63
73
|
export * from "../defineExtension/index.js";
|
|
64
74
|
|
package/extensions/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ExtensionDefinitions","ProjectDecorator","ProjectImplementation","ProjectId","Telemetry","EnvVar","DatabaseSetup","AdminAfterBuild","AdminAfterDeploy","AdminBeforeBuild","AdminBeforeDeploy","AdminBeforeWatch","AfterBuild","AfterDeploy","BeforeDeploy","BeforeWatch","ApiAfterBuild","ApiAfterDeploy","ApiBeforeBuild","ApiBeforeDeploy","ApiBeforeWatch","BeforeBuild","CoreAfterBuild","CoreAfterDeploy","CoreBeforeBuild","CoreBeforeDeploy","CoreBeforeWatch","AdminPulumi","ApiPulumi","CorePulumi","ProductionEnvironments","PulumiResourceNamePrefix","CoreStackOutputValue","ApiStackOutputValue","AdminStackOutputValue","definitions","def","Project"],"sources":["index.ts"],"sourcesContent":["import { ExtensionDefinitions } from \"./ExtensionDefinitions.js\";\nimport { ProjectDecorator } from \"./ProjectDecorator.js\";\nimport { ProjectImplementation } from \"./ProjectImplementation.js\";\nimport { ProjectId } from \"./ProjectId.js\";\nimport { Telemetry } from \"./Telemetry.js\";\nimport { EnvVar } from \"./EnvVar.js\";\nimport { DatabaseSetup } from \"./DatabaseSetup.js\";\n\n// Hooks.\nimport {\n AdminAfterBuild,\n AdminAfterDeploy,\n AdminBeforeBuild,\n AdminBeforeDeploy,\n AdminBeforeWatch,\n AfterBuild,\n AfterDeploy,\n BeforeDeploy,\n BeforeWatch,\n ApiAfterBuild,\n ApiAfterDeploy,\n ApiBeforeBuild,\n ApiBeforeDeploy,\n ApiBeforeWatch,\n BeforeBuild,\n CoreAfterBuild,\n CoreAfterDeploy,\n CoreBeforeBuild,\n CoreBeforeDeploy,\n CoreBeforeWatch\n} from \"./hooks/index.js\";\n\n// Pulumi.\nimport {\n AdminPulumi,\n ApiPulumi,\n CorePulumi,\n ProductionEnvironments,\n PulumiResourceNamePrefix,\n CoreStackOutputValue,\n ApiStackOutputValue,\n AdminStackOutputValue\n} from \"./pulumi/index.js\";\n\n// Exports.\nexport { Telemetry };\nexport { ProjectId };\nexport { ProjectDecorator };\nexport { ProjectImplementation };\nexport { ExtensionDefinitions };\nexport { EnvVar };\nexport { DatabaseSetup };\n\n// Hooks.\nexport { BeforeBuild };\nexport { BeforeDeploy };\nexport { BeforeWatch };\nexport { AfterBuild };\nexport { AfterDeploy };\nexport { AdminBeforeBuild };\nexport { AdminBeforeDeploy };\nexport { AdminBeforeWatch };\nexport { AdminAfterBuild };\nexport { AdminAfterDeploy };\nexport { ApiBeforeBuild };\nexport { ApiBeforeDeploy };\nexport { ApiBeforeWatch };\nexport { ApiAfterBuild };\nexport { ApiAfterDeploy };\nexport { CoreBeforeBuild };\nexport { CoreBeforeDeploy };\nexport { CoreBeforeWatch };\nexport { CoreAfterBuild };\nexport { CoreAfterDeploy };\n\n// Pulumi.\nexport { CorePulumi };\nexport { AdminPulumi };\nexport { ApiPulumi };\nexport { PulumiResourceNamePrefix };\nexport { ProductionEnvironments };\nexport { CoreStackOutputValue };\nexport { ApiStackOutputValue };\nexport { AdminStackOutputValue };\n\n// Definitions (used internally). 👇\nexport const definitions = [\n Telemetry.def,\n ProjectId.def,\n ProjectDecorator.def,\n ProjectImplementation.def,\n ExtensionDefinitions.def,\n EnvVar.def,\n\n // Hooks.\n AdminAfterBuild.def,\n AdminAfterDeploy.def,\n BeforeBuild.def,\n BeforeDeploy.def,\n BeforeWatch.def,\n AfterBuild.def,\n AfterDeploy.def,\n AdminBeforeBuild.def,\n AdminBeforeDeploy.def,\n AdminBeforeWatch.def,\n ApiAfterBuild.def,\n ApiAfterDeploy.def,\n ApiBeforeBuild.def,\n ApiBeforeDeploy.def,\n ApiBeforeWatch.def,\n CoreAfterBuild.def,\n CoreAfterDeploy.def,\n CoreBeforeBuild.def,\n CoreBeforeDeploy.def,\n CoreBeforeWatch.def,\n\n // Pulumi.\n CorePulumi.def,\n PulumiResourceNamePrefix.def,\n ProductionEnvironments.def,\n CoreStackOutputValue.def,\n ApiStackOutputValue.def,\n AdminStackOutputValue.def,\n DatabaseSetup.def\n];\n\nexport { Project } from \"./Project.js\";\n\nexport * from \"../defineExtension/index.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SAASC,gBAAgB;AACzB,SAASC,qBAAqB;AAC9B,SAASC,SAAS;AAClB,SAASC,SAAS;AAClB,SAASC,MAAM;AACf,SAASC,aAAa;;
|
|
1
|
+
{"version":3,"names":["ExtensionDefinitions","ProjectDecorator","ProjectImplementation","ProjectId","Telemetry","EnvVar","DatabaseSetup","FeatureFlags","BuildParam","AdminBuildParam","AdminExtension","ApiExtension","AdminAfterBuild","AdminAfterDeploy","AdminBeforeBuild","AdminBeforeDeploy","AdminBeforeWatch","AfterBuild","AfterDeploy","BeforeDeploy","BeforeWatch","ApiAfterBuild","ApiAfterDeploy","ApiBeforeBuild","ApiBeforeDeploy","ApiBeforeWatch","BeforeBuild","CoreAfterBuild","CoreAfterDeploy","CoreBeforeBuild","CoreBeforeDeploy","CoreBeforeWatch","AdminPulumi","ApiPulumi","CorePulumi","ProductionEnvironments","PulumiResourceNamePrefix","CoreStackOutputValue","ApiStackOutputValue","AdminStackOutputValue","definitions","def","Project"],"sources":["index.ts"],"sourcesContent":["import { ExtensionDefinitions } from \"./ExtensionDefinitions.js\";\nimport { ProjectDecorator } from \"./ProjectDecorator.js\";\nimport { ProjectImplementation } from \"./ProjectImplementation.js\";\nimport { ProjectId } from \"./ProjectId.js\";\nimport { Telemetry } from \"./Telemetry.js\";\nimport { EnvVar } from \"./EnvVar.js\";\nimport { DatabaseSetup } from \"./DatabaseSetup.js\";\nimport { FeatureFlags } from \"./FeatureFlags.js\";\nimport { BuildParam } from \"./ApiBuildParam.js\";\nimport { AdminBuildParam } from \"./AdminBuildParam.js\";\nimport { AdminExtension } from \"./AdminExtension.js\";\nimport { ApiExtension } from \"./ApiExtension.js\";\n\n// Hooks.\nimport {\n AdminAfterBuild,\n AdminAfterDeploy,\n AdminBeforeBuild,\n AdminBeforeDeploy,\n AdminBeforeWatch,\n AfterBuild,\n AfterDeploy,\n BeforeDeploy,\n BeforeWatch,\n ApiAfterBuild,\n ApiAfterDeploy,\n ApiBeforeBuild,\n ApiBeforeDeploy,\n ApiBeforeWatch,\n BeforeBuild,\n CoreAfterBuild,\n CoreAfterDeploy,\n CoreBeforeBuild,\n CoreBeforeDeploy,\n CoreBeforeWatch\n} from \"./hooks/index.js\";\n\n// Pulumi.\nimport {\n AdminPulumi,\n ApiPulumi,\n CorePulumi,\n ProductionEnvironments,\n PulumiResourceNamePrefix,\n CoreStackOutputValue,\n ApiStackOutputValue,\n AdminStackOutputValue\n} from \"./pulumi/index.js\";\n\n// Exports.\nexport { Telemetry };\nexport { ProjectId };\nexport { ProjectDecorator };\nexport { ProjectImplementation };\nexport { ExtensionDefinitions };\nexport { EnvVar };\nexport { FeatureFlags };\nexport { DatabaseSetup };\nexport { BuildParam };\nexport { AdminBuildParam };\nexport { AdminExtension };\nexport { ApiExtension };\n\n// Hooks.\nexport { BeforeBuild };\nexport { BeforeDeploy };\nexport { BeforeWatch };\nexport { AfterBuild };\nexport { AfterDeploy };\nexport { AdminBeforeBuild };\nexport { AdminBeforeDeploy };\nexport { AdminBeforeWatch };\nexport { AdminAfterBuild };\nexport { AdminAfterDeploy };\nexport { ApiBeforeBuild };\nexport { ApiBeforeDeploy };\nexport { ApiBeforeWatch };\nexport { ApiAfterBuild };\nexport { ApiAfterDeploy };\nexport { CoreBeforeBuild };\nexport { CoreBeforeDeploy };\nexport { CoreBeforeWatch };\nexport { CoreAfterBuild };\nexport { CoreAfterDeploy };\n\n// Pulumi.\nexport { CorePulumi };\nexport { AdminPulumi };\nexport { ApiPulumi };\nexport { PulumiResourceNamePrefix };\nexport { ProductionEnvironments };\nexport { CoreStackOutputValue };\nexport { ApiStackOutputValue };\nexport { AdminStackOutputValue };\n\n// Definitions (used internally). 👇\nexport const definitions = [\n Telemetry.def,\n ProjectId.def,\n ProjectDecorator.def,\n ProjectImplementation.def,\n ExtensionDefinitions.def,\n EnvVar.def,\n FeatureFlags.def,\n\n // Hooks.\n AdminAfterBuild.def,\n AdminAfterDeploy.def,\n BeforeBuild.def,\n BeforeDeploy.def,\n BeforeWatch.def,\n AfterBuild.def,\n AfterDeploy.def,\n AdminBeforeBuild.def,\n AdminBeforeDeploy.def,\n AdminBeforeWatch.def,\n ApiAfterBuild.def,\n ApiAfterDeploy.def,\n ApiBeforeBuild.def,\n ApiBeforeDeploy.def,\n ApiBeforeWatch.def,\n CoreAfterBuild.def,\n CoreAfterDeploy.def,\n CoreBeforeBuild.def,\n CoreBeforeDeploy.def,\n CoreBeforeWatch.def,\n\n // Pulumi.\n AdminPulumi.def,\n ApiPulumi.def,\n CorePulumi.def,\n PulumiResourceNamePrefix.def,\n ProductionEnvironments.def,\n CoreStackOutputValue.def,\n ApiStackOutputValue.def,\n AdminStackOutputValue.def,\n DatabaseSetup.def,\n BuildParam.def,\n AdminBuildParam.def,\n AdminExtension.def,\n ApiExtension.def\n];\n\nexport { Project } from \"./Project.js\";\n\nexport * from \"../defineExtension/index.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB;AAC7B,SAASC,gBAAgB;AACzB,SAASC,qBAAqB;AAC9B,SAASC,SAAS;AAClB,SAASC,SAAS;AAClB,SAASC,MAAM;AACf,SAASC,aAAa;AACtB,SAASC,YAAY;AACrB,SAASC,UAAU;AACnB,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,YAAY;;AAErB;AACA,SACIC,eAAe,EACfC,gBAAgB,EAChBC,gBAAgB,EAChBC,iBAAiB,EACjBC,gBAAgB,EAChBC,UAAU,EACVC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe;;AAGnB;AACA,SACIC,WAAW,EACXC,SAAS,EACTC,UAAU,EACVC,sBAAsB,EACtBC,wBAAwB,EACxBC,oBAAoB,EACpBC,mBAAmB,EACnBC,qBAAqB;;AAGzB;AACA,SAASnC,SAAS;AAClB,SAASD,SAAS;AAClB,SAASF,gBAAgB;AACzB,SAASC,qBAAqB;AAC9B,SAASF,oBAAoB;AAC7B,SAASK,MAAM;AACf,SAASE,YAAY;AACrB,SAASD,aAAa;AACtB,SAASE,UAAU;AACnB,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,YAAY;;AAErB;AACA,SAASe,WAAW;AACpB,SAASP,YAAY;AACrB,SAASC,WAAW;AACpB,SAASH,UAAU;AACnB,SAASC,WAAW;AACpB,SAASJ,gBAAgB;AACzB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASJ,eAAe;AACxB,SAASC,gBAAgB;AACzB,SAASU,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASJ,aAAa;AACtB,SAASC,cAAc;AACvB,SAASO,eAAe;AACxB,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASJ,cAAc;AACvB,SAASC,eAAe;;AAExB;AACA,SAASM,UAAU;AACnB,SAASF,WAAW;AACpB,SAASC,SAAS;AAClB,SAASG,wBAAwB;AACjC,SAASD,sBAAsB;AAC/B,SAASE,oBAAoB;AAC7B,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;;AAE9B;AACA,OAAO,MAAMC,WAAW,GAAG,CACvBpC,SAAS,CAACqC,GAAG,EACbtC,SAAS,CAACsC,GAAG,EACbxC,gBAAgB,CAACwC,GAAG,EACpBvC,qBAAqB,CAACuC,GAAG,EACzBzC,oBAAoB,CAACyC,GAAG,EACxBpC,MAAM,CAACoC,GAAG,EACVlC,YAAY,CAACkC,GAAG;AAEhB;AACA7B,eAAe,CAAC6B,GAAG,EACnB5B,gBAAgB,CAAC4B,GAAG,EACpBf,WAAW,CAACe,GAAG,EACftB,YAAY,CAACsB,GAAG,EAChBrB,WAAW,CAACqB,GAAG,EACfxB,UAAU,CAACwB,GAAG,EACdvB,WAAW,CAACuB,GAAG,EACf3B,gBAAgB,CAAC2B,GAAG,EACpB1B,iBAAiB,CAAC0B,GAAG,EACrBzB,gBAAgB,CAACyB,GAAG,EACpBpB,aAAa,CAACoB,GAAG,EACjBnB,cAAc,CAACmB,GAAG,EAClBlB,cAAc,CAACkB,GAAG,EAClBjB,eAAe,CAACiB,GAAG,EACnBhB,cAAc,CAACgB,GAAG,EAClBd,cAAc,CAACc,GAAG,EAClBb,eAAe,CAACa,GAAG,EACnBZ,eAAe,CAACY,GAAG,EACnBX,gBAAgB,CAACW,GAAG,EACpBV,eAAe,CAACU,GAAG;AAEnB;AACAT,WAAW,CAACS,GAAG,EACfR,SAAS,CAACQ,GAAG,EACbP,UAAU,CAACO,GAAG,EACdL,wBAAwB,CAACK,GAAG,EAC5BN,sBAAsB,CAACM,GAAG,EAC1BJ,oBAAoB,CAACI,GAAG,EACxBH,mBAAmB,CAACG,GAAG,EACvBF,qBAAqB,CAACE,GAAG,EACzBnC,aAAa,CAACmC,GAAG,EACjBjC,UAAU,CAACiC,GAAG,EACdhC,eAAe,CAACgC,GAAG,EACnB/B,cAAc,CAAC+B,GAAG,EAClB9B,YAAY,CAAC8B,GAAG,CACnB;AAED,SAASC,OAAO;AAEhB","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FeatureFlags } from "@webiny/feature-flags";
|
|
2
|
+
import { GetFeatureFlags } from "../../abstractions/index.js";
|
|
3
|
+
import { GetProjectConfig } from "../../abstractions/index.js";
|
|
4
|
+
declare class DefaultGetFeatureFlags implements GetFeatureFlags.Interface {
|
|
5
|
+
private getProjectConfig;
|
|
6
|
+
constructor(getProjectConfig: GetProjectConfig.Interface);
|
|
7
|
+
execute(): Promise<FeatureFlags>;
|
|
8
|
+
}
|
|
9
|
+
export declare const getFeatureFlags: import("@webiny/di").Implementation<typeof DefaultGetFeatureFlags>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createImplementation } from "@webiny/di";
|
|
2
|
+
import { FeatureFlags } from "@webiny/feature-flags";
|
|
3
|
+
import { GetFeatureFlags } from "../../abstractions/index.js";
|
|
4
|
+
import { GetProjectConfig } from "../../abstractions/index.js";
|
|
5
|
+
import { FeatureFlags as FeatureFlagsExtension } from "../../extensions/FeatureFlags.js";
|
|
6
|
+
class DefaultGetFeatureFlags {
|
|
7
|
+
constructor(getProjectConfig) {
|
|
8
|
+
this.getProjectConfig = getProjectConfig;
|
|
9
|
+
}
|
|
10
|
+
async execute() {
|
|
11
|
+
const projectConfig = await this.getProjectConfig.execute({
|
|
12
|
+
tags: {
|
|
13
|
+
runtimeContext: "project"
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const extensions = projectConfig.extensionsByType(FeatureFlagsExtension);
|
|
17
|
+
if (extensions.length === 0) {
|
|
18
|
+
return new FeatureFlags({});
|
|
19
|
+
}
|
|
20
|
+
return FeatureFlags.fromDto(extensions[0].params.features);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const getFeatureFlags = createImplementation({
|
|
24
|
+
abstraction: GetFeatureFlags,
|
|
25
|
+
implementation: DefaultGetFeatureFlags,
|
|
26
|
+
dependencies: [GetProjectConfig]
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=GetFeatureFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createImplementation","FeatureFlags","GetFeatureFlags","GetProjectConfig","FeatureFlagsExtension","DefaultGetFeatureFlags","constructor","getProjectConfig","execute","projectConfig","tags","runtimeContext","extensions","extensionsByType","length","fromDto","params","features","getFeatureFlags","abstraction","implementation","dependencies"],"sources":["GetFeatureFlags.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { FeatureFlags } from \"@webiny/feature-flags\";\nimport { GetFeatureFlags } from \"~/abstractions/index.js\";\nimport { GetProjectConfig } from \"~/abstractions/index.js\";\nimport { FeatureFlags as FeatureFlagsExtension } from \"~/extensions/FeatureFlags.js\";\n\nclass DefaultGetFeatureFlags implements GetFeatureFlags.Interface {\n constructor(private getProjectConfig: GetProjectConfig.Interface) {}\n\n async execute(): Promise<FeatureFlags> {\n const projectConfig = await this.getProjectConfig.execute({\n tags: { runtimeContext: \"project\" }\n });\n\n const extensions = projectConfig.extensionsByType(FeatureFlagsExtension);\n\n if (extensions.length === 0) {\n return new FeatureFlags({});\n }\n\n return FeatureFlags.fromDto(extensions[0].params.features);\n }\n}\n\nexport const getFeatureFlags = createImplementation({\n abstraction: GetFeatureFlags,\n implementation: DefaultGetFeatureFlags,\n dependencies: [GetProjectConfig]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,eAAe;AACxB,SAASC,gBAAgB;AACzB,SAASF,YAAY,IAAIG,qBAAqB;AAE9C,MAAMC,sBAAsB,CAAsC;EAC9DC,WAAWA,CAASC,gBAA4C,EAAE;IAAA,KAA9CA,gBAA4C,GAA5CA,gBAA4C;EAAG;EAEnE,MAAMC,OAAOA,CAAA,EAA0B;IACnC,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACF,gBAAgB,CAACC,OAAO,CAAC;MACtDE,IAAI,EAAE;QAAEC,cAAc,EAAE;MAAU;IACtC,CAAC,CAAC;IAEF,MAAMC,UAAU,GAAGH,aAAa,CAACI,gBAAgB,CAACT,qBAAqB,CAAC;IAExE,IAAIQ,UAAU,CAACE,MAAM,KAAK,CAAC,EAAE;MACzB,OAAO,IAAIb,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B;IAEA,OAAOA,YAAY,CAACc,OAAO,CAACH,UAAU,CAAC,CAAC,CAAC,CAACI,MAAM,CAACC,QAAQ,CAAC;EAC9D;AACJ;AAEA,OAAO,MAAMC,eAAe,GAAGlB,oBAAoB,CAAC;EAChDmB,WAAW,EAAEjB,eAAe;EAC5BkB,cAAc,EAAEf,sBAAsB;EACtCgB,YAAY,EAAE,CAAClB,gBAAgB;AACnC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./GetFeatureFlags.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./GetFeatureFlags.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
package/features/Watch/Watch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImplementation","BuildAppWorkspaceService","WatchedLambdaFunctionsService","GetApp","GetProductionEnvironments","GetProject","GetProjectConfigService","ListAppLambdaFunctionsService","ListPackagesService","LoggerService","ProjectSdkParamsService","PulumiExportService","PulumiGetStackOutputService","UiService","ValidateProjectConfigService","Watch","chalk","PackagesWatcher","WebinyConfigWatcher","getIotEndpoint","replaceLambdaFunctions","initInvocationForwarding","DefaultWatch","constructor","getApp","logger","listAppLambdaFunctionsService","listPackagesService","getProject","getProjectConfigService","validateProjectConfigService","getProductionEnvironments","ui","pulumiGetStackOutputService","pulumiExportService","watchedLambdaFunctionsService","buildAppWorkspaceService","projectSdkParamsService","execute","params","hasAppOrPackage","Error","whitelistArray","Array","isArray","package","filter","Boolean","packages","packageWhitelist","packagesWatcher","app","sdkParams","get","env","productionEnvironments","includes","allowProduction","red","increaseTimeout","forceRebuild","project","projectConfig","tags","appName","runtimeContext","renderArgs","extensionType","config","oneOrMoreExtensions","extensionsArray","extensionInstance","build","webinyConfigWatcher","webinyConfigPath","paths","webinyConfigFile","toString","packagesWhitelist","functionsWhitelist","function","packagesList","name","functionsList","whitelist","deployCommand","learnMoreLink","troubleshootingLink","meta","count","totalCount","info","join","warning","getDisplayName","debug","list","map","fn","emptyLine","default","exitHook","console","log","coreApp","coreStackOutput","bold","deploymentId","iotEndpointTopic","iotEndpoint","sessionId","Date","getTime","localExecutionHandshakeTimeout","increaseHandshakeTimeout","dependencies","uiService","loggerService","inspector","undefined","inspect","open","close","watch","abstraction","implementation"],"sources":["Watch.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n BuildAppWorkspaceService,\n WatchedLambdaFunctionsService,\n GetApp,\n GetProductionEnvironments,\n GetProject,\n GetProjectConfigService,\n ListAppLambdaFunctionsService,\n ListPackagesService,\n LoggerService,\n ProjectSdkParamsService,\n PulumiExportService,\n PulumiGetStackOutputService,\n UiService,\n ValidateProjectConfigService,\n Watch\n} from \"~/abstractions/index.js\";\nimport chalk from \"chalk\";\nimport type inspectorType from \"inspector\";\nimport { PackagesWatcher } from \"./watchers/PackagesWatcher.js\";\nimport { WebinyConfigWatcher } from \"~/features/Watch/watchers/WebinyConfigWatcher.js\";\nimport { type ICoreStackOutput } from \"~/abstractions/features/GetAppStackOutput.js\";\nimport { getIotEndpoint } from \"./getIotEndpoint.js\";\nimport { replaceLambdaFunctions } from \"~/features/Watch/replaceLambdaFunctions.js\";\nimport { initInvocationForwarding } from \"./initInvocationForwarding.js\";\n\nexport class DefaultWatch implements Watch.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private listAppLambdaFunctionsService: ListAppLambdaFunctionsService.Interface,\n private listPackagesService: ListPackagesService.Interface,\n private getProject: GetProject.Interface,\n private getProjectConfigService: GetProjectConfigService.Interface,\n private validateProjectConfigService: ValidateProjectConfigService.Interface,\n private getProductionEnvironments: GetProductionEnvironments.Interface,\n private ui: UiService.Interface,\n private pulumiGetStackOutputService: PulumiGetStackOutputService.Interface,\n private pulumiExportService: PulumiExportService.Interface,\n private watchedLambdaFunctionsService: WatchedLambdaFunctionsService.Interface,\n private buildAppWorkspaceService: BuildAppWorkspaceService.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: Watch.Params) {\n const hasAppOrPackage = \"app\" in params || \"package\" in params;\n if (!hasAppOrPackage) {\n throw new Error(\n `Either \"app\" or \"package\" arguments must be passed. Cannot have both undefined.`\n );\n }\n\n // If we're not watching a specific app, we can only watch packages.\n if (!(\"app\" in params)) {\n const whitelistArray = Array.isArray(params.package)\n ? params.package\n : ([params.package].filter(Boolean) as string[]);\n\n const packages = await this.listPackagesService.execute({\n packageWhitelist: whitelistArray\n });\n\n const packagesWatcher = new PackagesWatcher({ packages, params, logger: this.logger });\n\n return { packagesWatcher };\n }\n\n // Get project application metadata. Will throw an error if an invalid folder is specified.\n const app = this.getApp.execute(params.app);\n\n if (!app) {\n throw new Error(\n `Invalid app name \"${params.app}\". Please specify a valid app name (core, api, or admin).`\n );\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n\n if (!sdkParams.env) {\n throw new Error(`Please specify environment, for example \"dev\".`);\n }\n\n const productionEnvironments = await this.getProductionEnvironments.execute();\n\n if (productionEnvironments.includes(sdkParams.env)) {\n if (!params.allowProduction) {\n throw new Error(\n `${chalk.red(\n \"webiny watch\"\n )} command cannot be used with production environments.`\n );\n }\n }\n\n // A maximum of 15 minutes in seconds can be passed.\n if (params.increaseTimeout && params.increaseTimeout > 900) {\n throw new Error(\n `When increasing the timeout, the maximum value that can be passed is 900 seconds (15 minutes).`\n );\n }\n\n await this.buildAppWorkspaceService.execute(params.app, { forceRebuild: true });\n\n const ui = this.ui;\n const logger = this.logger;\n const project = this.getProject.execute();\n const getProjectConfigService = this.getProjectConfigService;\n const validateProjectConfigService = this.validateProjectConfigService;\n\n const projectConfig = await getProjectConfigService.execute({\n tags: { appName: params.app, runtimeContext: \"app-build\" },\n renderArgs: params\n });\n\n await validateProjectConfigService.execute(projectConfig);\n\n for (const extensionType in projectConfig.config) {\n const oneOrMoreExtensions = projectConfig.config[extensionType];\n const extensionsArray = Array.isArray(oneOrMoreExtensions)\n ? [...oneOrMoreExtensions]\n : [oneOrMoreExtensions];\n\n for (const extensionInstance of extensionsArray) {\n await extensionInstance.build();\n }\n }\n\n const webinyConfigWatcher = new WebinyConfigWatcher({\n webinyConfigPath: project.paths.webinyConfigFile.toString(),\n appName: params.app,\n getProjectConfigService,\n validateProjectConfigService\n });\n\n const packagesWhitelist = Array.isArray(params.package)\n ? params.package\n : ([params.package].filter(Boolean) as string[]);\n\n const functionsWhitelist = Array.isArray(params.function)\n ? params.function\n : ([params.function].filter(Boolean) as string[]);\n\n const packagesList = await this.listPackagesService.execute({\n appName: app.name,\n packageWhitelist: packagesWhitelist\n });\n\n const packagesWatcher = new PackagesWatcher({\n packages: packagesList,\n params,\n logger\n });\n\n const functionsList = await this.listAppLambdaFunctionsService.execute(app, {\n whitelist: functionsWhitelist\n });\n\n const deployCommand = `yarn webiny deploy ${app.name} --env ${sdkParams.env}`;\n const learnMoreLink = \"https://webiny.link/local-aws-lambda-development\";\n const troubleshootingLink = learnMoreLink + \"#troubleshooting\";\n\n if (functionsList.meta.count === 0) {\n // If functions exist, but none are selected for watching, show a warning.\n if (functionsList.meta.totalCount > 0) {\n ui.info(\n [\n \"No AWS Lambda functions will be invoked locally. If this is unexpected, you can try the following:\",\n \" ‣ stop the current development session\",\n \" ‣ redeploy the %s application by running %s command\",\n \" ‣ start a new %s session by rerunning %s command\",\n \"\",\n \"Learn more: %s\"\n ].join(\"\\n\"),\n app.name,\n deployCommand,\n \"webiny watch\",\n \"webiny watch\",\n troubleshootingLink\n );\n }\n return { packagesWatcher, webinyConfigWatcher };\n }\n\n ui.info(`Local AWS Lambda development session started.`);\n ui.warning(\n `Note that once the session is terminated, the %s application will no longer work. To fix this, you %s redeploy it via the %s command. Learn more: %s.`,\n app.getDisplayName(),\n \"MUST\",\n deployCommand,\n learnMoreLink\n );\n\n logger.debug(\n \"The events for following AWS Lambda functions will be forwarded locally: \",\n functionsList.list.map(fn => fn.name)\n );\n\n ui.emptyLine();\n const { default: exitHook } = await import(/* webpackChunkName: \"exit-hook\" */ \"exit-hook\");\n\n exitHook(() => {\n console.log();\n console.log();\n\n ui.info(`Terminating local AWS Lambda development session.`);\n ui.warning(\n `Note that once the session is terminated, the %s application will no longer work. To fix this, you %s redeploy it via the %s command. Learn more: %s.`,\n app?.getDisplayName(),\n \"MUST\",\n deployCommand,\n learnMoreLink\n );\n });\n\n const coreApp = this.getApp.execute(\"core\");\n const coreStackOutput =\n await this.pulumiGetStackOutputService.execute<ICoreStackOutput>(coreApp);\n\n if (!coreStackOutput) {\n throw new Error(\n `You must deploy the ${chalk.bold(\n \"core\"\n )} app before you can start a watch session. To do that, run: ${chalk.bold(\n `yarn webiny deploy core --env ${sdkParams.env}`\n )}`\n );\n }\n\n const deploymentId = coreStackOutput?.deploymentId;\n\n const iotEndpointTopic = `webiny-watch-${deploymentId}`;\n const iotEndpoint = await getIotEndpoint(coreStackOutput);\n\n const sessionId = new Date().getTime();\n const increaseTimeout = params.increaseTimeout;\n const localExecutionHandshakeTimeout = params.increaseHandshakeTimeout || 5; // Default to 5 seconds.\n\n // Ignore promise, we don't need to wait for this to finish.\n replaceLambdaFunctions({\n app,\n dependencies: {\n uiService: ui,\n loggerService: logger,\n pulumiExportService: this.pulumiExportService,\n watchedLambdaFunctionsService: this.watchedLambdaFunctionsService\n },\n iotEndpoint,\n iotEndpointTopic,\n sessionId,\n functionsList,\n increaseTimeout,\n localExecutionHandshakeTimeout\n });\n\n let inspector: typeof inspectorType | undefined = undefined;\n if (params.inspect) {\n inspector = await import(\"inspector\");\n inspector!.open(9229, \"127.0.0.1\");\n ui.emptyLine();\n\n exitHook(() => {\n inspector!.close();\n });\n }\n\n // Ignore promise, we don't need to wait for this to finish.\n initInvocationForwarding({\n iotEndpoint,\n iotEndpointTopic,\n functionsList,\n sessionId\n });\n\n return { packagesWatcher };\n }\n}\n\nexport const watch = createImplementation({\n abstraction: Watch,\n implementation: DefaultWatch,\n dependencies: [\n GetApp,\n LoggerService,\n ListAppLambdaFunctionsService,\n ListPackagesService,\n GetProject,\n GetProjectConfigService,\n ValidateProjectConfigService,\n GetProductionEnvironments,\n UiService,\n PulumiGetStackOutputService,\n PulumiExportService,\n WatchedLambdaFunctionsService,\n BuildAppWorkspaceService,\n ProjectSdkParamsService\n ]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createImplementation","BuildAppWorkspaceService","WatchedLambdaFunctionsService","GetApp","GetProductionEnvironments","GetProject","GetProjectConfigService","ListAppLambdaFunctionsService","ListPackagesService","LoggerService","ProjectSdkParamsService","PulumiExportService","PulumiGetStackOutputService","UiService","ValidateProjectConfigService","Watch","chalk","PackagesWatcher","WebinyConfigWatcher","getIotEndpoint","replaceLambdaFunctions","initInvocationForwarding","DefaultWatch","constructor","getApp","logger","listAppLambdaFunctionsService","listPackagesService","getProject","getProjectConfigService","validateProjectConfigService","getProductionEnvironments","ui","pulumiGetStackOutputService","pulumiExportService","watchedLambdaFunctionsService","buildAppWorkspaceService","projectSdkParamsService","execute","params","hasAppOrPackage","Error","whitelistArray","Array","isArray","package","filter","Boolean","packages","packageWhitelist","packagesWatcher","app","sdkParams","get","env","productionEnvironments","includes","allowProduction","red","increaseTimeout","forceRebuild","project","projectConfig","tags","appName","runtimeContext","renderArgs","extensionType","config","oneOrMoreExtensions","extensionsArray","extensionInstance","build","webinyConfigWatcher","webinyConfigPath","paths","webinyConfigFile","toString","packagesWhitelist","functionsWhitelist","function","packagesList","name","functionsList","whitelist","deployCommand","learnMoreLink","troubleshootingLink","meta","count","totalCount","info","join","warning","getDisplayName","debug","list","map","fn","emptyLine","default","exitHook","console","log","coreApp","coreStackOutput","bold","deploymentId","iotEndpointTopic","iotEndpoint","sessionId","Date","getTime","localExecutionHandshakeTimeout","increaseHandshakeTimeout","dependencies","uiService","loggerService","inspector","undefined","inspect","open","close","watch","abstraction","implementation"],"sources":["Watch.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n BuildAppWorkspaceService,\n WatchedLambdaFunctionsService,\n GetApp,\n GetProductionEnvironments,\n GetProject,\n GetProjectConfigService,\n ListAppLambdaFunctionsService,\n ListPackagesService,\n LoggerService,\n ProjectSdkParamsService,\n PulumiExportService,\n PulumiGetStackOutputService,\n UiService,\n ValidateProjectConfigService,\n Watch\n} from \"~/abstractions/index.js\";\nimport chalk from \"chalk\";\nimport type inspectorType from \"inspector\";\nimport { PackagesWatcher } from \"./watchers/PackagesWatcher.js\";\nimport { WebinyConfigWatcher } from \"~/features/Watch/watchers/WebinyConfigWatcher.js\";\nimport { type ICoreStackOutput } from \"~/abstractions/features/GetAppStackOutput.js\";\nimport { getIotEndpoint } from \"./getIotEndpoint.js\";\nimport { replaceLambdaFunctions } from \"~/features/Watch/replaceLambdaFunctions.js\";\nimport { initInvocationForwarding } from \"./initInvocationForwarding.js\";\n\nexport class DefaultWatch implements Watch.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private listAppLambdaFunctionsService: ListAppLambdaFunctionsService.Interface,\n private listPackagesService: ListPackagesService.Interface,\n private getProject: GetProject.Interface,\n private getProjectConfigService: GetProjectConfigService.Interface,\n private validateProjectConfigService: ValidateProjectConfigService.Interface,\n private getProductionEnvironments: GetProductionEnvironments.Interface,\n private ui: UiService.Interface,\n private pulumiGetStackOutputService: PulumiGetStackOutputService.Interface,\n private pulumiExportService: PulumiExportService.Interface,\n private watchedLambdaFunctionsService: WatchedLambdaFunctionsService.Interface,\n private buildAppWorkspaceService: BuildAppWorkspaceService.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: Watch.Params) {\n const hasAppOrPackage = \"app\" in params || \"package\" in params;\n if (!hasAppOrPackage) {\n throw new Error(\n `Either \"app\" or \"package\" arguments must be passed. Cannot have both undefined.`\n );\n }\n\n // If we're not watching a specific app, we can only watch packages.\n if (!(\"app\" in params)) {\n const whitelistArray = Array.isArray(params.package)\n ? params.package\n : ([params.package].filter(Boolean) as string[]);\n\n const packages = await this.listPackagesService.execute({\n packageWhitelist: whitelistArray\n });\n\n const packagesWatcher = new PackagesWatcher({ packages, params, logger: this.logger });\n\n return { packagesWatcher };\n }\n\n // Get project application metadata. Will throw an error if an invalid folder is specified.\n const app = this.getApp.execute(params.app);\n\n if (!app) {\n throw new Error(\n `Invalid app name \"${params.app}\". Please specify a valid app name (core, api, or admin).`\n );\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n\n if (!sdkParams.env) {\n throw new Error(`Please specify environment, for example \"dev\".`);\n }\n\n const productionEnvironments = await this.getProductionEnvironments.execute();\n\n if (productionEnvironments.includes(sdkParams.env)) {\n if (!params.allowProduction) {\n throw new Error(\n `${chalk.red(\n \"webiny watch\"\n )} command cannot be used with production environments.`\n );\n }\n }\n\n // A maximum of 15 minutes in seconds can be passed.\n if (params.increaseTimeout && params.increaseTimeout > 900) {\n throw new Error(\n `When increasing the timeout, the maximum value that can be passed is 900 seconds (15 minutes).`\n );\n }\n\n await this.buildAppWorkspaceService.execute(params.app, { forceRebuild: true });\n\n const ui = this.ui;\n const logger = this.logger;\n const project = this.getProject.execute();\n const getProjectConfigService = this.getProjectConfigService;\n const validateProjectConfigService = this.validateProjectConfigService;\n\n const projectConfig = await getProjectConfigService.execute({\n tags: { appName: params.app, runtimeContext: \"app-build\" },\n renderArgs: params\n });\n\n await validateProjectConfigService.execute(projectConfig);\n\n for (const extensionType in projectConfig.config) {\n const oneOrMoreExtensions = projectConfig.config[extensionType];\n const extensionsArray = Array.isArray(oneOrMoreExtensions)\n ? [...oneOrMoreExtensions]\n : [oneOrMoreExtensions];\n\n for (const extensionInstance of extensionsArray) {\n await extensionInstance.build();\n }\n }\n\n const webinyConfigWatcher = new WebinyConfigWatcher({\n webinyConfigPath: project.paths.webinyConfigFile.toString(),\n appName: params.app,\n getProjectConfigService,\n validateProjectConfigService\n });\n\n const packagesWhitelist = Array.isArray(params.package)\n ? params.package\n : ([params.package].filter(Boolean) as string[]);\n\n const functionsWhitelist = Array.isArray(params.function)\n ? params.function\n : ([params.function].filter(Boolean) as string[]);\n\n const packagesList = await this.listPackagesService.execute({\n appName: app.name,\n packageWhitelist: packagesWhitelist\n });\n\n const packagesWatcher = new PackagesWatcher({\n packages: packagesList,\n params,\n logger\n });\n\n const functionsList = await this.listAppLambdaFunctionsService.execute(app, {\n whitelist: functionsWhitelist\n });\n\n const deployCommand = `yarn webiny deploy ${app.name} --env ${sdkParams.env}`;\n const learnMoreLink = \"https://webiny.link/local-aws-lambda-development\";\n const troubleshootingLink = learnMoreLink + \"#troubleshooting\";\n\n if (functionsList.meta.count === 0) {\n // If functions exist, but none are selected for watching, show a warning.\n if (functionsList.meta.totalCount > 0) {\n ui.info(\n [\n \"No AWS Lambda functions will be invoked locally. If this is unexpected, you can try the following:\",\n \" ‣ stop the current development session\",\n \" ‣ redeploy the %s application by running %s command\",\n \" ‣ start a new %s session by rerunning %s command\",\n \"\",\n \"Learn more: %s\"\n ].join(\"\\n\"),\n app.name,\n deployCommand,\n \"webiny watch\",\n \"webiny watch\",\n troubleshootingLink\n );\n }\n return { packagesWatcher, webinyConfigWatcher };\n }\n\n ui.info(`Local AWS Lambda development session started.`);\n ui.warning(\n `Note that once the session is terminated, the %s application will no longer work. To fix this, you %s redeploy it via the %s command. Learn more: %s.`,\n app.getDisplayName(),\n \"MUST\",\n deployCommand,\n learnMoreLink\n );\n\n logger.debug(\n \"The events for following AWS Lambda functions will be forwarded locally: \",\n functionsList.list.map(fn => fn.name)\n );\n\n ui.emptyLine();\n const { default: exitHook } = await import(/* webpackChunkName: \"exit-hook\" */ \"exit-hook\");\n\n exitHook(() => {\n console.log();\n console.log();\n\n ui.info(`Terminating local AWS Lambda development session.`);\n ui.warning(\n `Note that once the session is terminated, the %s application will no longer work. To fix this, you %s redeploy it via the %s command. Learn more: %s.`,\n app?.getDisplayName(),\n \"MUST\",\n deployCommand,\n learnMoreLink\n );\n });\n\n const coreApp = this.getApp.execute(\"core\");\n const coreStackOutput =\n await this.pulumiGetStackOutputService.execute<ICoreStackOutput>(coreApp);\n\n if (!coreStackOutput) {\n throw new Error(\n `You must deploy the ${chalk.bold(\n \"core\"\n )} app before you can start a watch session. To do that, run: ${chalk.bold(\n `yarn webiny deploy core --env ${sdkParams.env}`\n )}`\n );\n }\n\n const deploymentId = coreStackOutput?.deploymentId;\n\n const iotEndpointTopic = `webiny-watch-${deploymentId}`;\n const iotEndpoint = await getIotEndpoint(coreStackOutput);\n\n const sessionId = new Date().getTime();\n const increaseTimeout = params.increaseTimeout;\n const localExecutionHandshakeTimeout = params.increaseHandshakeTimeout || 5; // Default to 5 seconds.\n\n // Ignore promise, we don't need to wait for this to finish.\n replaceLambdaFunctions({\n app,\n deploymentId,\n dependencies: {\n uiService: ui,\n loggerService: logger,\n pulumiExportService: this.pulumiExportService,\n watchedLambdaFunctionsService: this.watchedLambdaFunctionsService\n },\n iotEndpoint,\n iotEndpointTopic,\n sessionId,\n functionsList,\n increaseTimeout,\n localExecutionHandshakeTimeout\n });\n\n let inspector: typeof inspectorType | undefined = undefined;\n if (params.inspect) {\n inspector = await import(\"inspector\");\n inspector!.open(9229, \"127.0.0.1\");\n ui.emptyLine();\n\n exitHook(() => {\n inspector!.close();\n });\n }\n\n // Ignore promise, we don't need to wait for this to finish.\n initInvocationForwarding({\n iotEndpoint,\n iotEndpointTopic,\n functionsList,\n sessionId\n });\n\n return { packagesWatcher };\n }\n}\n\nexport const watch = createImplementation({\n abstraction: Watch,\n implementation: DefaultWatch,\n dependencies: [\n GetApp,\n LoggerService,\n ListAppLambdaFunctionsService,\n ListPackagesService,\n GetProject,\n GetProjectConfigService,\n ValidateProjectConfigService,\n GetProductionEnvironments,\n UiService,\n PulumiGetStackOutputService,\n PulumiExportService,\n WatchedLambdaFunctionsService,\n BuildAppWorkspaceService,\n ProjectSdkParamsService\n ]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import { type ListAppLambdaFunctionsService, type LoggerService, type PulumiExpo
|
|
|
2
2
|
import { type AppModel } from "../../models/index.js";
|
|
3
3
|
export interface IReplaceLambdaFunctionsParams {
|
|
4
4
|
app: AppModel;
|
|
5
|
+
deploymentId: string | undefined;
|
|
5
6
|
iotEndpoint: string;
|
|
6
7
|
iotEndpointTopic: string;
|
|
7
8
|
sessionId: number;
|
|
@@ -15,4 +16,4 @@ export interface IReplaceLambdaFunctionsParams {
|
|
|
15
16
|
watchedLambdaFunctionsService: WatchedLambdaFunctionsService.Interface;
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
export declare const replaceLambdaFunctions: ({ app, iotEndpoint, iotEndpointTopic, sessionId, functionsList, increaseTimeout, localExecutionHandshakeTimeout, dependencies }: IReplaceLambdaFunctionsParams) => Promise<void[]>;
|
|
19
|
+
export declare const replaceLambdaFunctions: ({ app, deploymentId, iotEndpoint, iotEndpointTopic, sessionId, functionsList, increaseTimeout, localExecutionHandshakeTimeout, dependencies }: IReplaceLambdaFunctionsParams) => Promise<void[]>;
|
|
@@ -5,6 +5,7 @@ const WATCH_MODE_NOTE_IN_DESCRIPTION = " (💡 local development mode, redeploy
|
|
|
5
5
|
const DEFAULT_INCREASE_TIMEOUT = 120;
|
|
6
6
|
export const replaceLambdaFunctions = async ({
|
|
7
7
|
app,
|
|
8
|
+
deploymentId,
|
|
8
9
|
iotEndpoint,
|
|
9
10
|
iotEndpointTopic,
|
|
10
11
|
sessionId,
|
|
@@ -43,7 +44,10 @@ export const replaceLambdaFunctions = async ({
|
|
|
43
44
|
|
|
44
45
|
// Mark these functions as needing replacement on next deployment
|
|
45
46
|
if (replacedFunctionUrns.length > 0) {
|
|
46
|
-
watchedLambdaFunctionsService.markDirty(
|
|
47
|
+
watchedLambdaFunctionsService.markDirty({
|
|
48
|
+
name: app.name,
|
|
49
|
+
deploymentId
|
|
50
|
+
}, replacedFunctionUrns);
|
|
47
51
|
logger.info(`Marked ${replacedFunctionUrns.length} Lambda function(s) for replacement on next deployment.`);
|
|
48
52
|
}
|
|
49
53
|
logger.info("replacing %s AWS Lambda function(s).", functionsList.meta.count);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fs","pRetry","GetFunctionConfigurationCommand","LambdaClient","UpdateFunctionCodeCommand","UpdateFunctionConfigurationCommand","WATCH_MODE_NOTE_IN_DESCRIPTION","DEFAULT_INCREASE_TIMEOUT","replaceLambdaFunctions","app","iotEndpoint","iotEndpointTopic","sessionId","functionsList","increaseTimeout","localExecutionHandshakeTimeout","dependencies","loggerService","logger","pulumiExportService","exportStackState","watchedLambdaFunctionsService","stackExport","execute","info","functionNamesToUpdate","list","map","fn","name","replacedFunctionUrns","deployment","resources","resource","type","functionName","inputs","includes","push","urn","debug","length","markDirty","meta","count","lambdaClient","replacementsPromises","getFnConfigCmd","FunctionName","lambdaFnConfiguration","send","updateFnCodeCmd","ZipFile","readFileSync","import","dirname","Description","endsWith","Timeout","Environment","Variables","WEBINY_WATCH","JSON","stringify","enabled","Promise","all","then","res"],"sources":["replaceLambdaFunctions.ts"],"sourcesContent":["import fs from \"fs\";\nimport pRetry from \"p-retry\";\nimport {\n GetFunctionConfigurationCommand,\n LambdaClient,\n UpdateFunctionCodeCommand,\n UpdateFunctionConfigurationCommand\n} from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport {\n type ListAppLambdaFunctionsService,\n type LoggerService,\n type PulumiExportService,\n type WatchedLambdaFunctionsService,\n type UiService\n} from \"~/abstractions/index.js\";\nimport { type AppModel } from \"~/models/index.js\";\n\nconst WATCH_MODE_NOTE_IN_DESCRIPTION = \" (💡 local development mode, redeploy to remove)\";\nconst DEFAULT_INCREASE_TIMEOUT = 120;\n\nexport interface IReplaceLambdaFunctionsParams {\n app: AppModel;\n iotEndpoint: string;\n iotEndpointTopic: string;\n sessionId: number;\n functionsList: ListAppLambdaFunctionsService.Result;\n increaseTimeout?: number;\n localExecutionHandshakeTimeout?: number;\n dependencies: {\n uiService: UiService.Interface;\n loggerService: LoggerService.Interface;\n pulumiExportService: PulumiExportService.Interface;\n watchedLambdaFunctionsService: WatchedLambdaFunctionsService.Interface;\n };\n}\n\nexport const replaceLambdaFunctions = async ({\n app,\n iotEndpoint,\n iotEndpointTopic,\n sessionId,\n functionsList,\n increaseTimeout,\n localExecutionHandshakeTimeout,\n dependencies\n}: IReplaceLambdaFunctionsParams) => {\n const {\n loggerService: logger,\n pulumiExportService: exportStackState,\n watchedLambdaFunctionsService\n } = dependencies;\n\n const stackExport = await exportStackState.execute(app);\n if (!stackExport) {\n // If no stack export is found, return an empty array. This is a valid scenario.\n // For example, watching the Admin app locally, but not deploying it.\n logger.info(\"No AWS Lambda functions to replace.\");\n return [];\n }\n\n // Find the URNs of Lambda functions that will be replaced\n const functionNamesToUpdate = functionsList.list.map(fn => fn.name);\n const replacedFunctionUrns: string[] = [];\n\n if (stackExport.deployment?.resources) {\n for (const resource of stackExport.deployment.resources) {\n if (resource.type === \"aws:lambda/function:Function\") {\n const functionName = resource.inputs?.name;\n if (functionName && functionNamesToUpdate.includes(functionName)) {\n replacedFunctionUrns.push(resource.urn);\n logger.debug(`Will replace Lambda function: ${functionName} (${resource.urn})`);\n }\n }\n }\n }\n\n // Mark these functions as needing replacement on next deployment\n if (replacedFunctionUrns.length > 0) {\n watchedLambdaFunctionsService.markDirty(app.name, replacedFunctionUrns);\n logger.info(\n `Marked ${replacedFunctionUrns.length} Lambda function(s) for replacement on next deployment.`\n );\n }\n\n logger.info(\"replacing %s AWS Lambda function(s).\", functionsList.meta.count);\n const lambdaClient = new LambdaClient();\n\n const replacementsPromises = functionsList.list.map(async fn => {\n const getFnConfigCmd = new GetFunctionConfigurationCommand({ FunctionName: fn.name });\n const lambdaFnConfiguration = await lambdaClient.send(getFnConfigCmd);\n\n const updateFnCodeCmd = new UpdateFunctionCodeCommand({\n FunctionName: fn.name,\n ZipFile: fs.readFileSync(import.meta.dirname + \"/handler/handler.zip\")\n });\n\n await lambdaClient.send(updateFnCodeCmd);\n\n let Description = lambdaFnConfiguration.Description || \"\";\n if (!Description.endsWith(WATCH_MODE_NOTE_IN_DESCRIPTION)) {\n Description += WATCH_MODE_NOTE_IN_DESCRIPTION;\n }\n\n const Timeout = increaseTimeout || DEFAULT_INCREASE_TIMEOUT;\n\n await pRetry(() =>\n lambdaClient.send(\n new UpdateFunctionConfigurationCommand({\n FunctionName: fn.name,\n Timeout,\n Description,\n Environment: {\n Variables: {\n ...lambdaFnConfiguration.Environment?.Variables,\n WEBINY_WATCH: JSON.stringify({\n enabled: true,\n localExecutionHandshakeTimeout,\n sessionId,\n iotEndpoint,\n iotEndpointTopic,\n functionName: fn.name\n })\n }\n }\n })\n )\n );\n });\n\n return Promise.all(replacementsPromises).then(res => {\n logger.info(\"%s AWS Lambda function(s) replaced.\", functionsList.meta.count);\n return res;\n });\n};\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,IAAI;AACnB,OAAOC,MAAM,MAAM,SAAS;AAC5B,SACIC,+BAA+B,EAC/BC,YAAY,EACZC,yBAAyB,EACzBC,kCAAkC,QAC/B,wCAAwC;AAU/C,MAAMC,8BAA8B,GAAG,kDAAkD;AACzF,MAAMC,wBAAwB,GAAG,GAAG;
|
|
1
|
+
{"version":3,"names":["fs","pRetry","GetFunctionConfigurationCommand","LambdaClient","UpdateFunctionCodeCommand","UpdateFunctionConfigurationCommand","WATCH_MODE_NOTE_IN_DESCRIPTION","DEFAULT_INCREASE_TIMEOUT","replaceLambdaFunctions","app","deploymentId","iotEndpoint","iotEndpointTopic","sessionId","functionsList","increaseTimeout","localExecutionHandshakeTimeout","dependencies","loggerService","logger","pulumiExportService","exportStackState","watchedLambdaFunctionsService","stackExport","execute","info","functionNamesToUpdate","list","map","fn","name","replacedFunctionUrns","deployment","resources","resource","type","functionName","inputs","includes","push","urn","debug","length","markDirty","meta","count","lambdaClient","replacementsPromises","getFnConfigCmd","FunctionName","lambdaFnConfiguration","send","updateFnCodeCmd","ZipFile","readFileSync","import","dirname","Description","endsWith","Timeout","Environment","Variables","WEBINY_WATCH","JSON","stringify","enabled","Promise","all","then","res"],"sources":["replaceLambdaFunctions.ts"],"sourcesContent":["import fs from \"fs\";\nimport pRetry from \"p-retry\";\nimport {\n GetFunctionConfigurationCommand,\n LambdaClient,\n UpdateFunctionCodeCommand,\n UpdateFunctionConfigurationCommand\n} from \"@webiny/aws-sdk/client-lambda/index.js\";\nimport {\n type ListAppLambdaFunctionsService,\n type LoggerService,\n type PulumiExportService,\n type WatchedLambdaFunctionsService,\n type UiService\n} from \"~/abstractions/index.js\";\nimport { type AppModel } from \"~/models/index.js\";\n\nconst WATCH_MODE_NOTE_IN_DESCRIPTION = \" (💡 local development mode, redeploy to remove)\";\nconst DEFAULT_INCREASE_TIMEOUT = 120;\n\nexport interface IReplaceLambdaFunctionsParams {\n app: AppModel;\n deploymentId: string | undefined;\n iotEndpoint: string;\n iotEndpointTopic: string;\n sessionId: number;\n functionsList: ListAppLambdaFunctionsService.Result;\n increaseTimeout?: number;\n localExecutionHandshakeTimeout?: number;\n dependencies: {\n uiService: UiService.Interface;\n loggerService: LoggerService.Interface;\n pulumiExportService: PulumiExportService.Interface;\n watchedLambdaFunctionsService: WatchedLambdaFunctionsService.Interface;\n };\n}\n\nexport const replaceLambdaFunctions = async ({\n app,\n deploymentId,\n iotEndpoint,\n iotEndpointTopic,\n sessionId,\n functionsList,\n increaseTimeout,\n localExecutionHandshakeTimeout,\n dependencies\n}: IReplaceLambdaFunctionsParams) => {\n const {\n loggerService: logger,\n pulumiExportService: exportStackState,\n watchedLambdaFunctionsService\n } = dependencies;\n\n const stackExport = await exportStackState.execute(app);\n if (!stackExport) {\n // If no stack export is found, return an empty array. This is a valid scenario.\n // For example, watching the Admin app locally, but not deploying it.\n logger.info(\"No AWS Lambda functions to replace.\");\n return [];\n }\n\n // Find the URNs of Lambda functions that will be replaced\n const functionNamesToUpdate = functionsList.list.map(fn => fn.name);\n const replacedFunctionUrns: string[] = [];\n\n if (stackExport.deployment?.resources) {\n for (const resource of stackExport.deployment.resources) {\n if (resource.type === \"aws:lambda/function:Function\") {\n const functionName = resource.inputs?.name;\n if (functionName && functionNamesToUpdate.includes(functionName)) {\n replacedFunctionUrns.push(resource.urn);\n logger.debug(`Will replace Lambda function: ${functionName} (${resource.urn})`);\n }\n }\n }\n }\n\n // Mark these functions as needing replacement on next deployment\n if (replacedFunctionUrns.length > 0) {\n watchedLambdaFunctionsService.markDirty(\n { name: app.name, deploymentId },\n replacedFunctionUrns\n );\n logger.info(\n `Marked ${replacedFunctionUrns.length} Lambda function(s) for replacement on next deployment.`\n );\n }\n\n logger.info(\"replacing %s AWS Lambda function(s).\", functionsList.meta.count);\n const lambdaClient = new LambdaClient();\n\n const replacementsPromises = functionsList.list.map(async fn => {\n const getFnConfigCmd = new GetFunctionConfigurationCommand({ FunctionName: fn.name });\n const lambdaFnConfiguration = await lambdaClient.send(getFnConfigCmd);\n\n const updateFnCodeCmd = new UpdateFunctionCodeCommand({\n FunctionName: fn.name,\n ZipFile: fs.readFileSync(import.meta.dirname + \"/handler/handler.zip\")\n });\n\n await lambdaClient.send(updateFnCodeCmd);\n\n let Description = lambdaFnConfiguration.Description || \"\";\n if (!Description.endsWith(WATCH_MODE_NOTE_IN_DESCRIPTION)) {\n Description += WATCH_MODE_NOTE_IN_DESCRIPTION;\n }\n\n const Timeout = increaseTimeout || DEFAULT_INCREASE_TIMEOUT;\n\n await pRetry(() =>\n lambdaClient.send(\n new UpdateFunctionConfigurationCommand({\n FunctionName: fn.name,\n Timeout,\n Description,\n Environment: {\n Variables: {\n ...lambdaFnConfiguration.Environment?.Variables,\n WEBINY_WATCH: JSON.stringify({\n enabled: true,\n localExecutionHandshakeTimeout,\n sessionId,\n iotEndpoint,\n iotEndpointTopic,\n functionName: fn.name\n })\n }\n }\n })\n )\n );\n });\n\n return Promise.all(replacementsPromises).then(res => {\n logger.info(\"%s AWS Lambda function(s) replaced.\", functionsList.meta.count);\n return res;\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
package/features/index.d.ts
CHANGED
package/features/index.js
CHANGED
package/features/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./hooks/index.js\";\nexport * from \"./pulumi/index.js\";\nexport * from \"./BuildApp/index.js\";\nexport * from \"./DeployApp/index.js\";\nexport * from \"./DestroyApp/index.js\";\nexport * from \"./ExportStack/index.js\";\nexport * from \"./GetApp/index.js\";\nexport * from \"./GetAppOutput/index.js\";\nexport * from \"./GetAppStackOutput/index.js\";\nexport * from \"./GetLogger/index.js\";\nexport * from \"./GetProductionEnvironments/index.js\";\nexport * from \"./GetProject/index.js\";\nexport * from \"./GetProjectConfig/index.js\";\nexport * from \"./GetProjectInfo/index.js\";\nexport * from \"./GetPulumiResourceNamePrefix/index.js\";\nexport * from \"./InstallExtension/index.js\";\nexport * from \"./IsCi/index.js\";\nexport * from \"./IsTelemetryEnabled/index.js\";\nexport * from \"./IsWcpEnabled/index.js\";\nexport * from \"./IsWebinyJsRepo/index.js\";\nexport * from \"./RefreshApp/index.js\";\nexport * from \"./RunPulumiCommand/index.js\";\nexport * from \"./ValidateProjectConfig/index.js\";\nexport * from \"./Watch/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./hooks/index.js\";\nexport * from \"./pulumi/index.js\";\nexport * from \"./BuildApp/index.js\";\nexport * from \"./DeployApp/index.js\";\nexport * from \"./DestroyApp/index.js\";\nexport * from \"./ExportStack/index.js\";\nexport * from \"./GetApp/index.js\";\nexport * from \"./GetAppOutput/index.js\";\nexport * from \"./GetAppStackOutput/index.js\";\nexport * from \"./GetLogger/index.js\";\nexport * from \"./GetProductionEnvironments/index.js\";\nexport * from \"./GetProject/index.js\";\nexport * from \"./GetProjectConfig/index.js\";\nexport * from \"./GetProjectInfo/index.js\";\nexport * from \"./GetPulumiResourceNamePrefix/index.js\";\nexport * from \"./InstallExtension/index.js\";\nexport * from \"./IsCi/index.js\";\nexport * from \"./IsTelemetryEnabled/index.js\";\nexport * from \"./IsWcpEnabled/index.js\";\nexport * from \"./IsWebinyJsRepo/index.js\";\nexport * from \"./RefreshApp/index.js\";\nexport * from \"./RunPulumiCommand/index.js\";\nexport * from \"./ValidateProjectConfig/index.js\";\nexport * from \"./Watch/index.js\";\nexport * from \"./GetFeatureFlags/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
package/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type * from "./abstractions/models/index.js";
|
|
|
9
9
|
export type { IStackOutput } from "./abstractions/features/GetAppStackOutput.js";
|
|
10
10
|
export { PackageJson } from "@webiny/build-tools/utils/PackageJson.js";
|
|
11
11
|
export { createPathResolver } from "./utils/createPathResolver.js";
|
|
12
|
+
export { ExtensionSrcResolver } from "./utils/ExtensionSrcResolver.js";
|
|
12
13
|
export { GracefulError } from "./GracefulError.js";
|
|
13
14
|
export { Wcp } from "./components/Wcp.js";
|
|
14
15
|
export { WcpProjectLicenseProvider, useWcpProjectLicense } from "./services/GetProjectConfigService/WcpProjectLicenseContext.js";
|
package/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export const getStackOutput = async appName => {
|
|
|
12
12
|
export { ProjectSdk };
|
|
13
13
|
export { PackageJson } from "@webiny/build-tools/utils/PackageJson.js";
|
|
14
14
|
export { createPathResolver } from "./utils/createPathResolver.js";
|
|
15
|
+
export { ExtensionSrcResolver } from "./utils/ExtensionSrcResolver.js";
|
|
15
16
|
export { GracefulError } from "./GracefulError.js";
|
|
16
17
|
export { Wcp } from "./components/Wcp.js";
|
|
17
18
|
export { WcpProjectLicenseProvider, useWcpProjectLicense } from "./services/GetProjectConfigService/WcpProjectLicenseContext.js";
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ProjectSdk","getProjectSdk","params","init","getStackOutput","appName","sdk","getAppStackOutput","PackageJson","createPathResolver","GracefulError","Wcp","WcpProjectLicenseProvider","useWcpProjectLicense"],"sources":["index.ts"],"sourcesContent":["import { ProjectSdk } from \"./ProjectSdk.js\";\nimport { type GetAppStackOutput } from \"~/abstractions/index.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\n\nexport const getProjectSdk = (...params: Parameters<(typeof ProjectSdk)[\"init\"]>) => {\n return ProjectSdk.init(...params);\n};\n\n// A temporary convenience function to get the stack output for a specific app. We might revisit this in the\n// future and double check if there's a better way to expose this functionality.\nexport const getStackOutput = async <\n TOutput extends GetAppStackOutput.StackOutput = GetAppStackOutput.StackOutput\n>(\n appName: AppName\n) => {\n const sdk = await getProjectSdk();\n return sdk.getAppStackOutput<TOutput>(appName);\n};\n\nexport { ProjectSdk };\n\nexport type { AppName } from \"./abstractions/types.js\";\nexport type * from \"./abstractions/models/index.js\";\n\nexport type { IStackOutput } from \"~/abstractions/features/GetAppStackOutput.js\";\n\nexport { PackageJson } from \"@webiny/build-tools/utils/PackageJson.js\";\n\nexport { createPathResolver } from \"./utils/createPathResolver.js\";\n\nexport { GracefulError } from \"./GracefulError.js\";\n\nexport { Wcp } from \"./components/Wcp.js\";\nexport {\n WcpProjectLicenseProvider,\n useWcpProjectLicense\n} from \"./services/GetProjectConfigService/WcpProjectLicenseContext.js\";\n"],"mappings":"AAAA,SAASA,UAAU;AAInB,OAAO,MAAMC,aAAa,GAAGA,CAAC,GAAGC,MAA+C,KAAK;EACjF,OAAOF,UAAU,CAACG,IAAI,CAAC,GAAGD,MAAM,CAAC;AACrC,CAAC;;AAED;AACA;AACA,OAAO,MAAME,cAAc,GAAG,MAG1BC,OAAgB,IACf;EACD,MAAMC,GAAG,GAAG,MAAML,aAAa,CAAC,CAAC;EACjC,OAAOK,GAAG,CAACC,iBAAiB,CAAUF,OAAO,CAAC;AAClD,CAAC;AAED,SAASL,UAAU;AAOnB,SAASQ,WAAW,QAAQ,0CAA0C;AAEtE,SAASC,kBAAkB;AAE3B,SAASC,aAAa;AAEtB,SAASC,GAAG;AACZ,SACIC,yBAAyB,EACzBC,oBAAoB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ProjectSdk","getProjectSdk","params","init","getStackOutput","appName","sdk","getAppStackOutput","PackageJson","createPathResolver","ExtensionSrcResolver","GracefulError","Wcp","WcpProjectLicenseProvider","useWcpProjectLicense"],"sources":["index.ts"],"sourcesContent":["import { ProjectSdk } from \"./ProjectSdk.js\";\nimport { type GetAppStackOutput } from \"~/abstractions/index.js\";\nimport { type AppName } from \"~/abstractions/types.js\";\n\nexport const getProjectSdk = (...params: Parameters<(typeof ProjectSdk)[\"init\"]>) => {\n return ProjectSdk.init(...params);\n};\n\n// A temporary convenience function to get the stack output for a specific app. We might revisit this in the\n// future and double check if there's a better way to expose this functionality.\nexport const getStackOutput = async <\n TOutput extends GetAppStackOutput.StackOutput = GetAppStackOutput.StackOutput\n>(\n appName: AppName\n) => {\n const sdk = await getProjectSdk();\n return sdk.getAppStackOutput<TOutput>(appName);\n};\n\nexport { ProjectSdk };\n\nexport type { AppName } from \"./abstractions/types.js\";\nexport type * from \"./abstractions/models/index.js\";\n\nexport type { IStackOutput } from \"~/abstractions/features/GetAppStackOutput.js\";\n\nexport { PackageJson } from \"@webiny/build-tools/utils/PackageJson.js\";\n\nexport { createPathResolver } from \"./utils/createPathResolver.js\";\n\nexport { ExtensionSrcResolver } from \"./utils/ExtensionSrcResolver.js\";\n\nexport { GracefulError } from \"./GracefulError.js\";\n\nexport { Wcp } from \"./components/Wcp.js\";\nexport {\n WcpProjectLicenseProvider,\n useWcpProjectLicense\n} from \"./services/GetProjectConfigService/WcpProjectLicenseContext.js\";\n"],"mappings":"AAAA,SAASA,UAAU;AAInB,OAAO,MAAMC,aAAa,GAAGA,CAAC,GAAGC,MAA+C,KAAK;EACjF,OAAOF,UAAU,CAACG,IAAI,CAAC,GAAGD,MAAM,CAAC;AACrC,CAAC;;AAED;AACA;AACA,OAAO,MAAME,cAAc,GAAG,MAG1BC,OAAgB,IACf;EACD,MAAMC,GAAG,GAAG,MAAML,aAAa,CAAC,CAAC;EACjC,OAAOK,GAAG,CAACC,iBAAiB,CAAUF,OAAO,CAAC;AAClD,CAAC;AAED,SAASL,UAAU;AAOnB,SAASQ,WAAW,QAAQ,0CAA0C;AAEtE,SAASC,kBAAkB;AAE3B,SAASC,oBAAoB;AAE7B,SAASC,aAAa;AAEtB,SAASC,GAAG;AACZ,SACIC,yBAAyB,EACzBC,oBAAoB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/project",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.e2758ee1cf",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -10,16 +10,17 @@
|
|
|
10
10
|
"description": "An SDK for managing Webiny projects.",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@webiny/aws-sdk": "0.0.0-unstable.
|
|
14
|
-
"@webiny/build-tools": "0.0.0-unstable.
|
|
13
|
+
"@webiny/aws-sdk": "0.0.0-unstable.e2758ee1cf",
|
|
14
|
+
"@webiny/build-tools": "0.0.0-unstable.e2758ee1cf",
|
|
15
15
|
"@webiny/di": "0.2.3",
|
|
16
|
-
"@webiny/
|
|
17
|
-
"@webiny/
|
|
18
|
-
"@webiny/
|
|
19
|
-
"@webiny/
|
|
20
|
-
"@webiny/
|
|
21
|
-
"@webiny/
|
|
22
|
-
"@webiny/
|
|
16
|
+
"@webiny/feature-flags": "0.0.0-unstable.e2758ee1cf",
|
|
17
|
+
"@webiny/global-config": "0.0.0-unstable.e2758ee1cf",
|
|
18
|
+
"@webiny/pulumi-sdk": "0.0.0-unstable.e2758ee1cf",
|
|
19
|
+
"@webiny/react-properties": "0.0.0-unstable.e2758ee1cf",
|
|
20
|
+
"@webiny/system-requirements": "0.0.0-unstable.e2758ee1cf",
|
|
21
|
+
"@webiny/telemetry": "0.0.0-unstable.e2758ee1cf",
|
|
22
|
+
"@webiny/utils": "0.0.0-unstable.e2758ee1cf",
|
|
23
|
+
"@webiny/wcp": "0.0.0-unstable.e2758ee1cf",
|
|
23
24
|
"chalk": "4.1.2",
|
|
24
25
|
"chokidar": "4.0.3",
|
|
25
26
|
"ci-info": "4.4.0",
|
|
@@ -30,11 +31,12 @@
|
|
|
30
31
|
"exit-hook": "4.0.0",
|
|
31
32
|
"fast-glob": "3.3.3",
|
|
32
33
|
"find-up": "5.0.0",
|
|
34
|
+
"get-tsconfig": "4.13.6",
|
|
33
35
|
"graphql-request": "7.4.0",
|
|
34
36
|
"humanize-duration": "3.33.2",
|
|
35
|
-
"load-json-file": "
|
|
37
|
+
"load-json-file": "7.0.1",
|
|
36
38
|
"lodash": "4.17.23",
|
|
37
|
-
"minimatch": "
|
|
39
|
+
"minimatch": "10.2.4",
|
|
38
40
|
"mqtt": "5.15.0",
|
|
39
41
|
"neverthrow": "8.2.0",
|
|
40
42
|
"p-retry": "7.1.1",
|
|
@@ -47,14 +49,13 @@
|
|
|
47
49
|
"serialize-error": "12.0.0",
|
|
48
50
|
"ts-morph": "27.0.2",
|
|
49
51
|
"tsx": "4.21.0",
|
|
50
|
-
"write-json-file": "
|
|
52
|
+
"write-json-file": "7.0.0",
|
|
51
53
|
"zod": "3.25.76"
|
|
52
54
|
},
|
|
53
55
|
"devDependencies": {
|
|
54
56
|
"@types/debounce": "1.2.4",
|
|
55
57
|
"@types/humanize-duration": "3.27.4",
|
|
56
|
-
"@types/
|
|
57
|
-
"@types/lodash": "4.17.23",
|
|
58
|
+
"@types/lodash": "4.17.24",
|
|
58
59
|
"@types/react-test-renderer": "18.3.1",
|
|
59
60
|
"@types/read-json-sync": "2.0.3",
|
|
60
61
|
"rimraf": "6.1.3",
|
|
@@ -75,5 +76,5 @@
|
|
|
75
76
|
"access": "public",
|
|
76
77
|
"directory": "dist"
|
|
77
78
|
},
|
|
78
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "e2758ee1cfa3b9a7152e9bb995a90ccabd33266f"
|
|
79
80
|
}
|
|
@@ -6,6 +6,7 @@ export interface WcpProjectLicenseContextValue {
|
|
|
6
6
|
canUsePrivateFiles: () => boolean;
|
|
7
7
|
canUseFileManagerThreatDetection: () => boolean;
|
|
8
8
|
canUseWorkflows: () => boolean;
|
|
9
|
+
canUseHcmsFieldPermissions: () => boolean;
|
|
9
10
|
}
|
|
10
11
|
export declare const WcpProjectLicenseProvider: React.FC<{
|
|
11
12
|
children: React.ReactNode;
|