@webiny/project-aws 0.0.0-unstable.ac6ebf63c6 → 0.0.0-unstable.c27f4d8a31
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/_templates/appTemplates/admin/tsconfig.json +0 -1
- package/_templates/appTemplates/api/graphql/package.json +16 -4
- package/_templates/appTemplates/api/graphql/tsconfig.json +0 -1
- package/_templates/appTemplates/api/migration/tsconfig.json +0 -1
- package/_templates/extensions/ApiLambdaFunction/package.json +9 -0
- package/_templates/extensions/ApiLambdaFunction/tsconfig.json +6 -0
- package/_templates/extensions/ApiLambdaFunction/webiny.config.ts +8 -0
- package/_templates/extensions/OpenSearch/api/graphql/src/index.ts +11 -5
- package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/tsconfig.json +0 -1
- package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/webiny.config.ts +2 -2
- package/admin.d.ts +6 -18
- package/admin.js +1 -1
- package/admin.js.map +1 -1
- package/api.d.ts +6 -18
- package/api.js +2 -2
- package/api.js.map +1 -1
- package/apps/createAdminApp.d.ts +2 -0
- package/apps/createCoreApp.d.ts +0 -1
- package/cli.d.ts +2 -6
- package/exports/extensions.d.ts +0 -2
- package/exports/extensions.js +0 -2
- package/exports/extensions.js.map +1 -1
- package/exports/infra/index.d.ts +1 -0
- package/exports/infra/index.js +3 -0
- package/exports/infra/index.js.map +1 -0
- package/extensions/ApiLambdaFunction.d.ts +5 -0
- package/extensions/ApiLambdaFunction.js +68 -0
- package/extensions/ApiLambdaFunction.js.map +1 -0
- package/extensions/AwsDefaultRegion.d.ts +4 -5
- package/extensions/AwsDefaultRegion.js +18 -6
- package/extensions/AwsDefaultRegion.js.map +1 -1
- package/extensions/OpenSearch.d.ts +1 -11
- package/extensions/OpenSearch.js +3 -4
- package/extensions/OpenSearch.js.map +1 -1
- package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js +4 -0
- package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js.map +1 -1
- package/extensions/ProjectAws/AutoInstall.d.ts +2 -26
- package/extensions/ProjectAws/BuildAppWorkspace.js +1 -1
- package/extensions/ProjectAws/BuildAppWorkspace.js.map +1 -1
- package/extensions/ProjectAws/definitions.js +1 -3
- package/extensions/ProjectAws/definitions.js.map +1 -1
- package/extensions/ProjectAws.js +6 -4
- package/extensions/ProjectAws.js.map +1 -1
- package/extensions/definitions.d.ts +3 -0
- package/extensions/definitions.js +6 -0
- package/extensions/definitions.js.map +1 -0
- package/extensions/index.d.ts +1 -0
- package/extensions/index.js +1 -0
- package/extensions/index.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/infra.d.ts +82 -328
- package/infra.js +7 -2
- package/infra.js.map +1 -1
- package/package.json +17 -19
- package/project.d.ts +22 -37
- package/project.js +4 -3
- package/project.js.map +1 -1
- package/pulumi/apps/admin/createAdminPulumiApp.d.ts +2 -0
- package/pulumi/apps/api/ApiCloudfront.js +1 -1
- package/pulumi/apps/api/ApiCloudfront.js.map +1 -1
- package/pulumi/apps/api/ApiGraphql.js +1 -1
- package/pulumi/apps/api/ApiGraphql.js.map +1 -1
- package/pulumi/apps/api/ApiMigration.js +0 -1
- package/pulumi/apps/api/ApiMigration.js.map +1 -1
- package/pulumi/apps/api/createApiPulumiApp.js +2 -5
- package/pulumi/apps/api/createApiPulumiApp.js.map +1 -1
- package/pulumi/apps/common/CoreOutput.d.ts +0 -4
- package/pulumi/apps/common/CoreOutput.js +0 -4
- package/pulumi/apps/common/CoreOutput.js.map +1 -1
- package/pulumi/apps/core/CoreAuditLogsDynamo.js +67 -19
- package/pulumi/apps/core/CoreAuditLogsDynamo.js.map +1 -1
- package/pulumi/apps/core/CoreDynamo.js +18 -5
- package/pulumi/apps/core/CoreDynamo.js.map +1 -1
- package/pulumi/apps/core/CoreFileManager.d.ts +3 -0
- package/pulumi/apps/core/CoreFileManager.js +35 -7
- package/pulumi/apps/core/CoreFileManager.js.map +1 -1
- package/pulumi/apps/core/CoreOpenSearch.js +5 -5
- package/pulumi/apps/core/CoreOpenSearch.js.map +1 -1
- package/pulumi/apps/core/createCorePulumiApp.d.ts +0 -1
- package/pulumi/apps/core/createCorePulumiApp.js +2 -12
- package/pulumi/apps/core/createCorePulumiApp.js.map +1 -1
- package/pulumi/apps/createAppBucket.d.ts +4 -0
- package/pulumi/apps/createAppBucket.js +42 -2
- package/pulumi/apps/createAppBucket.js.map +1 -1
- package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.d.ts +6 -6
- package/pulumi/apps/react/createReactPulumiApp.d.ts +2 -0
- package/pulumi/apps/syncSystem/SyncSystemDynamo.js +14 -4
- package/pulumi/apps/syncSystem/SyncSystemDynamo.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js +14 -4
- package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -1
- package/pulumi/extensions/AdminCustomDomains.d.ts +6 -11
- package/pulumi/extensions/AwsTags.d.ts +1 -5
- package/pulumi/extensions/AwsTags.js +1 -1
- package/pulumi/extensions/AwsTags.js.map +1 -1
- package/pulumi/extensions/BlueGreenDeployments.d.ts +17 -115
- package/pulumi/extensions/BlueGreenDeployments.js +7 -4
- package/pulumi/extensions/BlueGreenDeployments.js.map +1 -1
- package/pulumi/extensions/OpenSearch.d.ts +1 -11
- package/pulumi/extensions/Vpc.d.ts +8 -64
- package/pulumi/extensions/index.d.ts +29 -187
- package/pulumi/types.d.ts +0 -4
- package/pulumi/types.js.map +1 -1
- package/pulumi/utils/lambdaEnvVariables.js +3 -2
- package/pulumi/utils/lambdaEnvVariables.js.map +1 -1
- package/pulumi/apps/core/LogDynamo.d.ts +0 -5
- package/pulumi/apps/core/LogDynamo.js +0 -94
- package/pulumi/apps/core/LogDynamo.js.map +0 -1
- package/security.d.ts +0 -356
- package/security.js +0 -53
- package/security.js.map +0 -1
|
@@ -7,25 +7,37 @@
|
|
|
7
7
|
"@webiny/api-aco": "latest",
|
|
8
8
|
"@webiny/api-audit-logs": "latest",
|
|
9
9
|
"@webiny/api-background-tasks-ddb": "latest",
|
|
10
|
+
"@webiny/api-background-tasks-os": "latest",
|
|
10
11
|
"@webiny/api-core": "latest",
|
|
12
|
+
"@webiny/api-core-ddb": "latest",
|
|
13
|
+
"@webiny/api-dynamodb-to-elasticsearch": "latest",
|
|
14
|
+
"@webiny/api-elasticsearch": "latest",
|
|
11
15
|
"@webiny/api-file-manager": "latest",
|
|
16
|
+
"@webiny/api-file-manager-aco": "latest",
|
|
12
17
|
"@webiny/api-file-manager-s3": "latest",
|
|
13
18
|
"@webiny/api-headless-cms": "latest",
|
|
14
19
|
"@webiny/api-headless-cms-aco": "latest",
|
|
15
20
|
"@webiny/api-headless-cms-ddb": "latest",
|
|
21
|
+
"@webiny/api-headless-cms-ddb-es": "latest",
|
|
22
|
+
"@webiny/api-headless-cms-scheduler": "latest",
|
|
16
23
|
"@webiny/api-headless-cms-tasks": "latest",
|
|
24
|
+
"@webiny/api-headless-cms-tasks-ddb-es": "latest",
|
|
17
25
|
"@webiny/api-headless-cms-workflows": "latest",
|
|
18
|
-
"@webiny/api-log": "latest",
|
|
19
26
|
"@webiny/api-mailer": "latest",
|
|
20
27
|
"@webiny/api-record-locking": "latest",
|
|
21
|
-
"@webiny/api-
|
|
22
|
-
"@webiny/api-
|
|
28
|
+
"@webiny/api-scheduler": "latest",
|
|
29
|
+
"@webiny/api-website-builder": "latest",
|
|
30
|
+
"@webiny/api-website-builder-workflows": "latest",
|
|
23
31
|
"@webiny/api-websockets": "latest",
|
|
32
|
+
"@webiny/api-workflows": "latest",
|
|
33
|
+
"@webiny/aws-sdk": "latest",
|
|
34
|
+
"@webiny/build-tools": "latest",
|
|
35
|
+
"@webiny/data-migration": "latest",
|
|
24
36
|
"@webiny/db-dynamodb": "latest",
|
|
25
37
|
"@webiny/handler-aws": "latest",
|
|
26
38
|
"@webiny/handler-client": "latest",
|
|
27
39
|
"@webiny/handler-db": "latest",
|
|
28
40
|
"@webiny/handler-graphql": "latest",
|
|
29
|
-
"@webiny/
|
|
41
|
+
"@webiny/migrations": "latest"
|
|
30
42
|
}
|
|
31
43
|
}
|
|
@@ -8,7 +8,8 @@ import { DynamoDbDriver } from "@webiny/db-dynamodb";
|
|
|
8
8
|
import dynamoDbPlugins from "@webiny/db-dynamodb/plugins";
|
|
9
9
|
import elasticsearchClientContext, { createElasticsearchClient } from "@webiny/api-elasticsearch";
|
|
10
10
|
import { createFileManagerContext, createFileManagerGraphQL } from "@webiny/api-file-manager";
|
|
11
|
-
import {
|
|
11
|
+
import { createFileManagerAco } from "@webiny/api-file-manager-aco";
|
|
12
|
+
import { createAssetDelivery, createFileManagerS3 } from "@webiny/api-file-manager-s3";
|
|
12
13
|
import { createHeadlessCmsContext, createHeadlessCmsGraphQL } from "@webiny/api-headless-cms";
|
|
13
14
|
import { createStorageOperations as createHeadlessCmsStorageOperations } from "@webiny/api-headless-cms-ddb-es";
|
|
14
15
|
import { createHcmsTasks } from "@webiny/api-headless-cms-tasks-ddb-es";
|
|
@@ -24,6 +25,9 @@ import { createSchedulerClient } from "@webiny/aws-sdk/client-scheduler";
|
|
|
24
25
|
import { createScheduler } from "@webiny/api-scheduler";
|
|
25
26
|
import { createHeadlessCmsScheduler } from "@webiny/api-headless-cms-scheduler";
|
|
26
27
|
import { createMailerContext, createMailerGraphQL } from "@webiny/api-mailer";
|
|
28
|
+
import { createWorkflows } from "@webiny/api-workflows";
|
|
29
|
+
import { createHeadlessCmsWorkflows } from "@webiny/api-headless-cms-workflows";
|
|
30
|
+
import { createWebsiteBuilderWorkflows } from "@webiny/api-website-builder-workflows";
|
|
27
31
|
|
|
28
32
|
import { extensions } from "./extensions";
|
|
29
33
|
|
|
@@ -64,11 +68,14 @@ export const handler = createHandler({
|
|
|
64
68
|
createBackgroundTasks(),
|
|
65
69
|
createFileManagerContext(),
|
|
66
70
|
createFileManagerGraphQL(),
|
|
71
|
+
createFileManagerAco(),
|
|
67
72
|
createAssetDelivery(),
|
|
68
73
|
createFileManagerS3(),
|
|
69
|
-
createAco({
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
createAco({ documentClient }),
|
|
75
|
+
createWorkflows(),
|
|
76
|
+
createHeadlessCmsWorkflows(),
|
|
77
|
+
createWebsiteBuilderWorkflows(),
|
|
78
|
+
createAuditLogs(),
|
|
72
79
|
createAcoHcmsContext(),
|
|
73
80
|
createHcmsTasks(),
|
|
74
81
|
createScheduler({
|
|
@@ -77,7 +84,6 @@ export const handler = createHandler({
|
|
|
77
84
|
}
|
|
78
85
|
}),
|
|
79
86
|
createHeadlessCmsScheduler(),
|
|
80
|
-
createAuditLogs(),
|
|
81
87
|
extensions()
|
|
82
88
|
],
|
|
83
89
|
debug
|
package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/webiny.config.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { createBuildFunction, createWatchFunction } from "@webiny/build-tools";
|
|
|
2
2
|
|
|
3
3
|
export default {
|
|
4
4
|
commands: {
|
|
5
|
-
build: createBuildFunction({ cwd: import.meta.
|
|
6
|
-
watch: createWatchFunction({ cwd: import.meta.
|
|
5
|
+
build: createBuildFunction({ cwd: import.meta.dirname }),
|
|
6
|
+
watch: createWatchFunction({ cwd: import.meta.dirname })
|
|
7
7
|
}
|
|
8
8
|
};
|
package/admin.d.ts
CHANGED
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
export declare const Admin: {
|
|
2
|
-
Extension: import("@webiny/project/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
3
|
-
src: import("zod").
|
|
2
|
+
Extension: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
3
|
+
src: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
4
4
|
exportName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
5
|
-
},
|
|
6
|
-
|
|
7
|
-
exportName?: string | undefined;
|
|
8
|
-
}, {
|
|
9
|
-
src: string;
|
|
10
|
-
exportName?: string | undefined;
|
|
11
|
-
}>>;
|
|
12
|
-
BuildParam: import("@webiny/project/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
5
|
+
}, import("zod/v4/core").$strip>>;
|
|
6
|
+
BuildParam: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
13
7
|
paramName: import("zod").ZodString;
|
|
14
|
-
value: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>, import("zod").ZodArray<import("zod").ZodAny
|
|
15
|
-
},
|
|
16
|
-
value: string | number | boolean | any[] | Record<string, any>;
|
|
17
|
-
paramName: string;
|
|
18
|
-
}, {
|
|
19
|
-
value: string | number | boolean | any[] | Record<string, any>;
|
|
20
|
-
paramName: string;
|
|
21
|
-
}>>;
|
|
8
|
+
value: import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>, import("zod").ZodArray<import("zod").ZodAny>, import("zod").ZodNumber, import("zod").ZodBoolean]>;
|
|
9
|
+
}, import("zod/v4/core").$strip>>;
|
|
22
10
|
};
|
package/admin.js
CHANGED
package/admin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdminExtension","AdminBuildParam","Admin","Extension","BuildParam"],"sources":["admin.ts"],"sourcesContent":["import { AdminExtension, AdminBuildParam } from \"@webiny/
|
|
1
|
+
{"version":3,"names":["AdminExtension","AdminBuildParam","Admin","Extension","BuildParam"],"sources":["admin.ts"],"sourcesContent":["import { AdminExtension, AdminBuildParam } from \"@webiny/project/extensions/index.js\";\n\nexport const Admin = {\n Extension: AdminExtension,\n BuildParam: AdminBuildParam\n};\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,eAAe,QAAQ,qCAAqC;AAErF,OAAO,MAAMC,KAAK,GAAG;EACjBC,SAAS,EAAEH,cAAc;EACzBI,UAAU,EAAEH;AAChB,CAAC","ignoreList":[]}
|
package/api.d.ts
CHANGED
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
export declare const Api: {
|
|
2
|
-
Extension: import("@webiny/project/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
3
|
-
src: import("zod").
|
|
2
|
+
Extension: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
3
|
+
src: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
4
4
|
exportName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
5
|
-
},
|
|
6
|
-
|
|
7
|
-
exportName?: string | undefined;
|
|
8
|
-
}, {
|
|
9
|
-
src: string;
|
|
10
|
-
exportName?: string | undefined;
|
|
11
|
-
}>>;
|
|
12
|
-
BuildParam: import("@webiny/project/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
5
|
+
}, import("zod/v4/core").$strip>>;
|
|
6
|
+
BuildParam: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
13
7
|
paramName: import("zod").ZodString;
|
|
14
|
-
value: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>, import("zod").ZodArray<import("zod").ZodAny
|
|
15
|
-
},
|
|
16
|
-
value: string | number | boolean | any[] | Record<string, any>;
|
|
17
|
-
paramName: string;
|
|
18
|
-
}, {
|
|
19
|
-
value: string | number | boolean | any[] | Record<string, any>;
|
|
20
|
-
paramName: string;
|
|
21
|
-
}>>;
|
|
8
|
+
value: import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>, import("zod").ZodArray<import("zod").ZodAny>, import("zod").ZodNumber, import("zod").ZodBoolean]>;
|
|
9
|
+
}, import("zod/v4/core").$strip>>;
|
|
22
10
|
};
|
package/api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiExtension, BuildParam } from "@webiny/project/extensions/index.js";
|
|
2
2
|
export const Api = {
|
|
3
|
-
Extension:
|
|
3
|
+
Extension: ApiExtension,
|
|
4
4
|
BuildParam: BuildParam
|
|
5
5
|
};
|
|
6
6
|
|
package/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ApiExtension","BuildParam","Api","Extension"],"sources":["api.ts"],"sourcesContent":["import { ApiExtension, BuildParam } from \"@webiny/project/extensions/index.js\";\n\nexport const Api = {\n Extension: ApiExtension,\n BuildParam: BuildParam\n};\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,UAAU,QAAQ,qCAAqC;AAE9E,OAAO,MAAMC,GAAG,GAAG;EACfC,SAAS,EAAEH,YAAY;EACvBC,UAAU,EAAEA;AAChB,CAAC","ignoreList":[]}
|
package/apps/createAdminApp.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export declare function createAdminApp(): {
|
|
|
5
5
|
getPulumi(): Promise<import("@webiny/pulumi/types").PulumiApp<{
|
|
6
6
|
cloudfront: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/cloudfront/distribution").Distribution>;
|
|
7
7
|
bucket: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucket").Bucket>;
|
|
8
|
+
bucketOwnershipControls: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketOwnershipControls").BucketOwnershipControls>;
|
|
9
|
+
bucketAcl: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketAcl").BucketAcl>;
|
|
8
10
|
originIdentity: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/cloudfront/originAccessIdentity").OriginAccessIdentity>;
|
|
9
11
|
origin: import("@pulumi/aws/types/input").cloudfront.DistributionOrigin;
|
|
10
12
|
bucketPublicAccessBlock: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketPublicAccessBlock").BucketPublicAccessBlock>;
|
package/apps/createCoreApp.d.ts
CHANGED
|
@@ -20,7 +20,6 @@ export declare function createCoreApp(): {
|
|
|
20
20
|
userPool: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/cognito/userPool").UserPool>;
|
|
21
21
|
userPoolClient: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/cognito/userPoolClient").UserPoolClient>;
|
|
22
22
|
dynamoDbTable: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/dynamodb/table").Table>;
|
|
23
|
-
logDynamoDbTable: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/dynamodb/table").Table>;
|
|
24
23
|
vpc: {
|
|
25
24
|
vpc: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/ec2/vpc").Vpc>;
|
|
26
25
|
subnets: {
|
package/cli.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
export declare const Cli: {
|
|
2
2
|
Command: import("@webiny/project/defineExtension").ExtensionComponent<import("zod").ZodObject<{
|
|
3
|
-
src: import("zod").
|
|
4
|
-
},
|
|
5
|
-
src: string;
|
|
6
|
-
}, {
|
|
7
|
-
src: string;
|
|
8
|
-
}>>;
|
|
3
|
+
src: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
4
|
+
}, import("zod/v4/core").$strip>>;
|
|
9
5
|
};
|
package/exports/extensions.d.ts
CHANGED
|
@@ -3,5 +3,3 @@ export { Admin } from "../admin.js";
|
|
|
3
3
|
export { Cli } from "../cli.js";
|
|
4
4
|
export { Infra } from "../infra.js";
|
|
5
5
|
export { Project } from "../project.js";
|
|
6
|
-
export { Security } from "../security.js";
|
|
7
|
-
export { ApiStackOutputService, CoreStackOutputService, ApiGqlClient, AdminStackOutputService, InvokeLambdaFunction } from "../abstractions/index.js";
|
package/exports/extensions.js
CHANGED
|
@@ -3,7 +3,5 @@ export { Admin } from "../admin.js";
|
|
|
3
3
|
export { Cli } from "../cli.js";
|
|
4
4
|
export { Infra } from "../infra.js";
|
|
5
5
|
export { Project } from "../project.js";
|
|
6
|
-
export { Security } from "../security.js";
|
|
7
|
-
export { ApiStackOutputService, CoreStackOutputService, ApiGqlClient, AdminStackOutputService, InvokeLambdaFunction } from "../abstractions/index.js";
|
|
8
6
|
|
|
9
7
|
//# sourceMappingURL=extensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Api","Admin","Cli","Infra","Project"
|
|
1
|
+
{"version":3,"names":["Api","Admin","Cli","Infra","Project"],"sources":["extensions.ts"],"sourcesContent":["export { Api } from \"~/api.js\";\nexport { Admin } from \"~/admin.js\";\nexport { Cli } from \"~/cli.js\";\nexport { Infra } from \"~/infra.js\";\nexport { Project } from \"~/project.js\";\n"],"mappings":"AAAA,SAASA,GAAG;AACZ,SAASC,KAAK;AACd,SAASC,GAAG;AACZ,SAASC,KAAK;AACd,SAASC,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ApiStackOutputService as ApiStackOutput, CoreStackOutputService as CoreStackOutput, ApiGqlClient, AdminStackOutputService as AdminStackOutput, InvokeLambdaFunction } from "../../abstractions/index.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ApiStackOutputService","ApiStackOutput","CoreStackOutputService","CoreStackOutput","ApiGqlClient","AdminStackOutputService","AdminStackOutput","InvokeLambdaFunction"],"sources":["index.ts"],"sourcesContent":["export {\n ApiStackOutputService as ApiStackOutput,\n CoreStackOutputService as CoreStackOutput,\n ApiGqlClient,\n AdminStackOutputService as AdminStackOutput,\n InvokeLambdaFunction\n} from \"~/abstractions/index.js\";\n"],"mappings":"AAAA,SACIA,qBAAqB,IAAIC,cAAc,EACvCC,sBAAsB,IAAIC,eAAe,EACzCC,YAAY,EACZC,uBAAuB,IAAIC,gBAAgB,EAC3CC,oBAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const ApiLambdaFunction: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
|
|
3
|
+
functionSrc: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
4
|
+
pulumiSrc: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
5
|
+
}, z.core.$strip>>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import fs from "fs";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { replaceInPath } from "replace-in-path";
|
|
6
|
+
import { defineExtension } from "@webiny/project/defineExtension/index.js";
|
|
7
|
+
import { zodSrcPath } from "@webiny/project/defineExtension/zodTypes/zodSrcPath.js";
|
|
8
|
+
import { ExtensionSrcResolver } from "@webiny/project/utils/index.js";
|
|
9
|
+
import { ApiPulumi as ApiPulumiAbstraction } from "@webiny/project/abstractions/features/pulumi/index.js";
|
|
10
|
+
import { ApiPulumi } from "@webiny/project/extensions/index.js";
|
|
11
|
+
import { getTemplatesFolderPath } from "../utils/index.js";
|
|
12
|
+
export const ApiLambdaFunction = defineExtension({
|
|
13
|
+
type: "Api/LambdaFunction",
|
|
14
|
+
tags: {
|
|
15
|
+
runtimeContext: "app-build",
|
|
16
|
+
appName: "api"
|
|
17
|
+
},
|
|
18
|
+
description: "Add a custom Lambda function to the API app.",
|
|
19
|
+
multiple: true,
|
|
20
|
+
paramsSchema: ({
|
|
21
|
+
project
|
|
22
|
+
}) => {
|
|
23
|
+
return z.object({
|
|
24
|
+
functionSrc: zodSrcPath({
|
|
25
|
+
project
|
|
26
|
+
}),
|
|
27
|
+
pulumiSrc: zodSrcPath({
|
|
28
|
+
project,
|
|
29
|
+
abstraction: ApiPulumiAbstraction
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
async build(params, ctx) {
|
|
34
|
+
const absoluteFunctionSrc = ExtensionSrcResolver.resolvePath(params.functionSrc, ctx.project);
|
|
35
|
+
|
|
36
|
+
// Derive function name from the handler file name (without extension).
|
|
37
|
+
const functionName = path.parse(absoluteFunctionSrc).name;
|
|
38
|
+
const fnWorkspacePath = ctx.project.paths.workspaceFolder.join("apps", "api", functionName).toString();
|
|
39
|
+
|
|
40
|
+
// 1. Scaffold from template if the folder doesn't exist yet.
|
|
41
|
+
if (!fs.existsSync(fnWorkspacePath)) {
|
|
42
|
+
const templatePath = path.join(getTemplatesFolderPath(), "extensions", "ApiLambdaFunction");
|
|
43
|
+
fs.cpSync(templatePath, fnWorkspacePath, {
|
|
44
|
+
recursive: true
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Replace the {{functionName}} placeholder in package.json.
|
|
48
|
+
replaceInPath(path.join(fnWorkspacePath, "package.json"), {
|
|
49
|
+
find: "{{functionName}}",
|
|
50
|
+
replaceWith: functionName
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// 2. Copy user's handler file → <functionName>/src/index.ts.
|
|
55
|
+
const srcDir = path.join(fnWorkspacePath, "src");
|
|
56
|
+
fs.mkdirSync(srcDir, {
|
|
57
|
+
recursive: true
|
|
58
|
+
});
|
|
59
|
+
fs.copyFileSync(absoluteFunctionSrc, path.join(srcDir, "index.ts"));
|
|
60
|
+
},
|
|
61
|
+
render(props) {
|
|
62
|
+
return /*#__PURE__*/React.createElement(ApiPulumi, {
|
|
63
|
+
src: props.pulumiSrc
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=ApiLambdaFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","path","fs","z","replaceInPath","defineExtension","zodSrcPath","ExtensionSrcResolver","ApiPulumi","ApiPulumiAbstraction","getTemplatesFolderPath","ApiLambdaFunction","type","tags","runtimeContext","appName","description","multiple","paramsSchema","project","object","functionSrc","pulumiSrc","abstraction","build","params","ctx","absoluteFunctionSrc","resolvePath","functionName","parse","name","fnWorkspacePath","paths","workspaceFolder","join","toString","existsSync","templatePath","cpSync","recursive","find","replaceWith","srcDir","mkdirSync","copyFileSync","render","props","createElement","src"],"sources":["ApiLambdaFunction.tsx"],"sourcesContent":["import React from \"react\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport { z } from \"zod\";\nimport { replaceInPath } from \"replace-in-path\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\nimport { zodSrcPath } from \"@webiny/project/defineExtension/zodTypes/zodSrcPath.js\";\nimport { ExtensionSrcResolver } from \"@webiny/project/utils/index.js\";\nimport { ApiPulumi as ApiPulumiAbstraction } from \"@webiny/project/abstractions/features/pulumi/index.js\";\nimport { ApiPulumi } from \"@webiny/project/extensions/index.js\";\nimport { getTemplatesFolderPath } from \"~/utils/index.js\";\n\nexport const ApiLambdaFunction = defineExtension({\n type: \"Api/LambdaFunction\",\n tags: { runtimeContext: \"app-build\", appName: \"api\" },\n description: \"Add a custom Lambda function to the API app.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n functionSrc: zodSrcPath({ project }),\n pulumiSrc: zodSrcPath({ project, abstraction: ApiPulumiAbstraction })\n });\n },\n async build(params, ctx) {\n const absoluteFunctionSrc = ExtensionSrcResolver.resolvePath(\n params.functionSrc,\n ctx.project\n );\n\n // Derive function name from the handler file name (without extension).\n const functionName = path.parse(absoluteFunctionSrc).name;\n\n const fnWorkspacePath = ctx.project.paths.workspaceFolder\n .join(\"apps\", \"api\", functionName)\n .toString();\n\n // 1. Scaffold from template if the folder doesn't exist yet.\n if (!fs.existsSync(fnWorkspacePath)) {\n const templatePath = path.join(\n getTemplatesFolderPath(),\n \"extensions\",\n \"ApiLambdaFunction\"\n );\n\n fs.cpSync(templatePath, fnWorkspacePath, { recursive: true });\n\n // Replace the {{functionName}} placeholder in package.json.\n replaceInPath(path.join(fnWorkspacePath, \"package.json\"), {\n find: \"{{functionName}}\",\n replaceWith: functionName\n });\n }\n\n // 2. Copy user's handler file → <functionName>/src/index.ts.\n const srcDir = path.join(fnWorkspacePath, \"src\");\n fs.mkdirSync(srcDir, { recursive: true });\n fs.copyFileSync(absoluteFunctionSrc, path.join(srcDir, \"index.ts\"));\n },\n render(props) {\n return <ApiPulumi src={props.pulumiSrc} />;\n }\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,IAAI,MAAM,MAAM;AACvB,OAAOC,EAAE,MAAM,IAAI;AACnB,SAASC,CAAC,QAAQ,KAAK;AACvB,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,UAAU,QAAQ,wDAAwD;AACnF,SAASC,oBAAoB,QAAQ,gCAAgC;AACrE,SAASC,SAAS,IAAIC,oBAAoB,QAAQ,uDAAuD;AACzG,SAASD,SAAS,QAAQ,qCAAqC;AAC/D,SAASE,sBAAsB;AAE/B,OAAO,MAAMC,iBAAiB,GAAGN,eAAe,CAAC;EAC7CO,IAAI,EAAE,oBAAoB;EAC1BC,IAAI,EAAE;IAAEC,cAAc,EAAE,WAAW;IAAEC,OAAO,EAAE;EAAM,CAAC;EACrDC,WAAW,EAAE,8CAA8C;EAC3DC,QAAQ,EAAE,IAAI;EACdC,YAAY,EAAEA,CAAC;IAAEC;EAAQ,CAAC,KAAK;IAC3B,OAAOhB,CAAC,CAACiB,MAAM,CAAC;MACZC,WAAW,EAAEf,UAAU,CAAC;QAAEa;MAAQ,CAAC,CAAC;MACpCG,SAAS,EAAEhB,UAAU,CAAC;QAAEa,OAAO;QAAEI,WAAW,EAAEd;MAAqB,CAAC;IACxE,CAAC,CAAC;EACN,CAAC;EACD,MAAMe,KAAKA,CAACC,MAAM,EAAEC,GAAG,EAAE;IACrB,MAAMC,mBAAmB,GAAGpB,oBAAoB,CAACqB,WAAW,CACxDH,MAAM,CAACJ,WAAW,EAClBK,GAAG,CAACP,OACR,CAAC;;IAED;IACA,MAAMU,YAAY,GAAG5B,IAAI,CAAC6B,KAAK,CAACH,mBAAmB,CAAC,CAACI,IAAI;IAEzD,MAAMC,eAAe,GAAGN,GAAG,CAACP,OAAO,CAACc,KAAK,CAACC,eAAe,CACpDC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAEN,YAAY,CAAC,CACjCO,QAAQ,CAAC,CAAC;;IAEf;IACA,IAAI,CAAClC,EAAE,CAACmC,UAAU,CAACL,eAAe,CAAC,EAAE;MACjC,MAAMM,YAAY,GAAGrC,IAAI,CAACkC,IAAI,CAC1BzB,sBAAsB,CAAC,CAAC,EACxB,YAAY,EACZ,mBACJ,CAAC;MAEDR,EAAE,CAACqC,MAAM,CAACD,YAAY,EAAEN,eAAe,EAAE;QAAEQ,SAAS,EAAE;MAAK,CAAC,CAAC;;MAE7D;MACApC,aAAa,CAACH,IAAI,CAACkC,IAAI,CAACH,eAAe,EAAE,cAAc,CAAC,EAAE;QACtDS,IAAI,EAAE,kBAAkB;QACxBC,WAAW,EAAEb;MACjB,CAAC,CAAC;IACN;;IAEA;IACA,MAAMc,MAAM,GAAG1C,IAAI,CAACkC,IAAI,CAACH,eAAe,EAAE,KAAK,CAAC;IAChD9B,EAAE,CAAC0C,SAAS,CAACD,MAAM,EAAE;MAAEH,SAAS,EAAE;IAAK,CAAC,CAAC;IACzCtC,EAAE,CAAC2C,YAAY,CAAClB,mBAAmB,EAAE1B,IAAI,CAACkC,IAAI,CAACQ,MAAM,EAAE,UAAU,CAAC,CAAC;EACvE,CAAC;EACDG,MAAMA,CAACC,KAAK,EAAE;IACV,oBAAO/C,KAAA,CAAAgD,aAAA,CAACxC,SAAS;MAACyC,GAAG,EAAEF,KAAK,CAACzB;IAAU,CAAE,CAAC;EAC9C;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
export
|
|
3
|
-
name:
|
|
4
|
-
}
|
|
5
|
-
export declare const AwsDefaultRegion: (props: AwsDefaultRegionProps) => React.JSX.Element;
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const AwsDefaultRegion: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
}, z.core.$strip>>;
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { defineExtension } from "@webiny/project/defineExtension/index.js";
|
|
2
4
|
import { EnvVar } from "@webiny/project/extensions/index.js";
|
|
3
|
-
export const AwsDefaultRegion =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
5
|
+
export const AwsDefaultRegion = defineExtension({
|
|
6
|
+
type: "Aws/DefaultRegion",
|
|
7
|
+
tags: {
|
|
8
|
+
runtimeContext: "project"
|
|
9
|
+
},
|
|
10
|
+
description: "Set the default AWS region for the project.",
|
|
11
|
+
paramsSchema: z.object({
|
|
12
|
+
name: z.string().describe("The AWS region name.")
|
|
13
|
+
}),
|
|
14
|
+
render(props) {
|
|
15
|
+
return /*#__PURE__*/React.createElement(EnvVar, {
|
|
16
|
+
varName: "AWS_REGION",
|
|
17
|
+
value: props.name
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
9
21
|
|
|
10
22
|
//# sourceMappingURL=AwsDefaultRegion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","EnvVar","AwsDefaultRegion","props","createElement","varName","value"
|
|
1
|
+
{"version":3,"names":["React","z","defineExtension","EnvVar","AwsDefaultRegion","type","tags","runtimeContext","description","paramsSchema","object","name","string","describe","render","props","createElement","varName","value"],"sources":["AwsDefaultRegion.tsx"],"sourcesContent":["import React from \"react\";\nimport { z } from \"zod\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\nimport { EnvVar } from \"@webiny/project/extensions/index.js\";\n\nexport const AwsDefaultRegion = defineExtension({\n type: \"Aws/DefaultRegion\",\n tags: { runtimeContext: \"project\" },\n description: \"Set the default AWS region for the project.\",\n paramsSchema: z.object({\n name: z.string().describe(\"The AWS region name.\")\n }),\n render(props) {\n return <EnvVar varName=\"AWS_REGION\" value={props.name} />;\n }\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,CAAC,QAAQ,KAAK;AACvB,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,MAAM,QAAQ,qCAAqC;AAE5D,OAAO,MAAMC,gBAAgB,GAAGF,eAAe,CAAC;EAC5CG,IAAI,EAAE,mBAAmB;EACzBC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,6CAA6C;EAC1DC,YAAY,EAAER,CAAC,CAACS,MAAM,CAAC;IACnBC,IAAI,EAAEV,CAAC,CAACW,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,sBAAsB;EACpD,CAAC,CAAC;EACFC,MAAMA,CAACC,KAAK,EAAE;IACV,oBAAOf,KAAA,CAAAgB,aAAA,CAACb,MAAM;MAACc,OAAO,EAAC,YAAY;MAACC,KAAK,EAAEH,KAAK,CAACJ;IAAK,CAAE,CAAC;EAC7D;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,14 +4,4 @@ export declare const OpenSearch: import("@webiny/project/defineExtension/defineE
|
|
|
4
4
|
domainName: z.ZodOptional<z.ZodString>;
|
|
5
5
|
indexPrefix: z.ZodOptional<z.ZodString>;
|
|
6
6
|
sharedIndexes: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
7
|
-
},
|
|
8
|
-
enabled?: boolean | undefined;
|
|
9
|
-
domainName?: string | undefined;
|
|
10
|
-
indexPrefix?: string | undefined;
|
|
11
|
-
sharedIndexes?: boolean | undefined;
|
|
12
|
-
}, {
|
|
13
|
-
enabled?: boolean | undefined;
|
|
14
|
-
domainName?: string | undefined;
|
|
15
|
-
indexPrefix?: string | undefined;
|
|
16
|
-
sharedIndexes?: boolean | undefined;
|
|
17
|
-
}>>;
|
|
7
|
+
}, z.core.$strip>>;
|
package/extensions/OpenSearch.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { defineExtension } from "@webiny/project/defineExtension/index.js";
|
|
3
3
|
import { OpenSearch as PulumiOpenSearch } from "../pulumi/extensions/index.js";
|
|
4
|
-
import { Infra } from "../index.js";
|
|
5
4
|
import { createPathResolver } from "@webiny/project";
|
|
6
|
-
import { ProjectDecorator, DatabaseSetup } from "@webiny/project/extensions/index.js";
|
|
5
|
+
import { CoreBeforeDeploy, ProjectDecorator, DatabaseSetup } from "@webiny/project/extensions/index.js";
|
|
7
6
|
import { z } from "zod";
|
|
8
7
|
const p = createPathResolver(import.meta.dirname, "OpenSearch");
|
|
9
8
|
export const OpenSearch = defineExtension({
|
|
@@ -25,9 +24,9 @@ export const OpenSearch = defineExtension({
|
|
|
25
24
|
src: p("InjectDdbEsLambdaFnHandler.js")
|
|
26
25
|
}), /*#__PURE__*/React.createElement(ProjectDecorator, {
|
|
27
26
|
src: p("ReplaceApiLambdaFnHandlers.js")
|
|
28
|
-
}), /*#__PURE__*/React.createElement(
|
|
27
|
+
}), /*#__PURE__*/React.createElement(CoreBeforeDeploy, {
|
|
29
28
|
src: p("EnsureOsServiceRoleBeforeCoreDeploy.js")
|
|
30
|
-
}), /*#__PURE__*/React.createElement(
|
|
29
|
+
}), /*#__PURE__*/React.createElement(CoreBeforeDeploy, {
|
|
31
30
|
src: p("EnsureOsWasDeployed.js")
|
|
32
31
|
})));
|
|
33
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","defineExtension","OpenSearch","PulumiOpenSearch","
|
|
1
|
+
{"version":3,"names":["React","defineExtension","OpenSearch","PulumiOpenSearch","createPathResolver","CoreBeforeDeploy","ProjectDecorator","DatabaseSetup","z","p","import","meta","dirname","type","tags","runtimeContext","description","paramsSchema","object","enabled","boolean","describe","default","optional","domainName","string","indexPrefix","sharedIndexes","render","props","createElement","Fragment","setupName","src"],"sources":["OpenSearch.tsx"],"sourcesContent":["import React from \"react\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\nimport { OpenSearch as PulumiOpenSearch } from \"~/pulumi/extensions/index.js\";\nimport { createPathResolver } from \"@webiny/project\";\nimport {\n CoreBeforeDeploy,\n ProjectDecorator,\n DatabaseSetup\n} from \"@webiny/project/extensions/index.js\";\nimport { z } from \"zod\";\n\nconst p = createPathResolver(import.meta.dirname, \"OpenSearch\");\n\nexport const OpenSearch = defineExtension({\n type: \"Project/OpenSearch\",\n tags: { runtimeContext: \"project\" },\n description: \"Enable and configure Opensearch integration with project-level setup.\",\n paramsSchema: z.object({\n enabled: z.boolean().describe(\"Whether to enable OpenSearch.\").default(false).optional(),\n domainName: z.string().describe(\"The name of the Opensearch domain.\").optional(),\n indexPrefix: z\n .string()\n .describe(\"A prefix to be added to all Opensearch indexes.\")\n .optional(),\n sharedIndexes: z\n .boolean()\n .describe(\n \"Whether to use shared indexes across all environments (true) or separate indexes per environment (false).\"\n )\n .default(false)\n .optional()\n }),\n render: props => {\n return (\n <>\n <PulumiOpenSearch {...props} />\n {props.enabled && (\n <>\n {/* Override database setup to indicate OpenSearch is enabled. */}\n <DatabaseSetup setupName=\"ddb+os\" />\n <ProjectDecorator src={p(\"InjectDdbEsLambdaFnHandler.js\")} />\n <ProjectDecorator src={p(\"ReplaceApiLambdaFnHandlers.js\")} />\n <CoreBeforeDeploy src={p(\"EnsureOsServiceRoleBeforeCoreDeploy.js\")} />\n <CoreBeforeDeploy src={p(\"EnsureOsWasDeployed.js\")} />\n </>\n )}\n </>\n );\n }\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,UAAU,IAAIC,gBAAgB;AACvC,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SACIC,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,QACV,qCAAqC;AAC5C,SAASC,CAAC,QAAQ,KAAK;AAEvB,MAAMC,CAAC,GAAGL,kBAAkB,CAACM,MAAM,CAACC,IAAI,CAACC,OAAO,EAAE,YAAY,CAAC;AAE/D,OAAO,MAAMV,UAAU,GAAGD,eAAe,CAAC;EACtCY,IAAI,EAAE,oBAAoB;EAC1BC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,uEAAuE;EACpFC,YAAY,EAAET,CAAC,CAACU,MAAM,CAAC;IACnBC,OAAO,EAAEX,CAAC,CAACY,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,+BAA+B,CAAC,CAACC,OAAO,CAAC,KAAK,CAAC,CAACC,QAAQ,CAAC,CAAC;IACxFC,UAAU,EAAEhB,CAAC,CAACiB,MAAM,CAAC,CAAC,CAACJ,QAAQ,CAAC,oCAAoC,CAAC,CAACE,QAAQ,CAAC,CAAC;IAChFG,WAAW,EAAElB,CAAC,CACTiB,MAAM,CAAC,CAAC,CACRJ,QAAQ,CAAC,iDAAiD,CAAC,CAC3DE,QAAQ,CAAC,CAAC;IACfI,aAAa,EAAEnB,CAAC,CACXY,OAAO,CAAC,CAAC,CACTC,QAAQ,CACL,2GACJ,CAAC,CACAC,OAAO,CAAC,KAAK,CAAC,CACdC,QAAQ,CAAC;EAClB,CAAC,CAAC;EACFK,MAAM,EAAEC,KAAK,IAAI;IACb,oBACI7B,KAAA,CAAA8B,aAAA,CAAA9B,KAAA,CAAA+B,QAAA,qBACI/B,KAAA,CAAA8B,aAAA,CAAC3B,gBAAgB,EAAK0B,KAAQ,CAAC,EAC9BA,KAAK,CAACV,OAAO,iBACVnB,KAAA,CAAA8B,aAAA,CAAA9B,KAAA,CAAA+B,QAAA,qBAEI/B,KAAA,CAAA8B,aAAA,CAACvB,aAAa;MAACyB,SAAS,EAAC;IAAQ,CAAE,CAAC,eACpChC,KAAA,CAAA8B,aAAA,CAACxB,gBAAgB;MAAC2B,GAAG,EAAExB,CAAC,CAAC,+BAA+B;IAAE,CAAE,CAAC,eAC7DT,KAAA,CAAA8B,aAAA,CAACxB,gBAAgB;MAAC2B,GAAG,EAAExB,CAAC,CAAC,+BAA+B;IAAE,CAAE,CAAC,eAC7DT,KAAA,CAAA8B,aAAA,CAACzB,gBAAgB;MAAC4B,GAAG,EAAExB,CAAC,CAAC,wCAAwC;IAAE,CAAE,CAAC,eACtET,KAAA,CAAA8B,aAAA,CAACzB,gBAAgB;MAAC4B,GAAG,EAAExB,CAAC,CAAC,wBAAwB;IAAE,CAAE,CACvD,CAER,CAAC;EAEX;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -66,6 +66,10 @@ class AutoInstallAfterApiDeployImpl {
|
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
68
|
this.ui.info("Auto-installing...");
|
|
69
|
+
/**
|
|
70
|
+
* Type Error introduced with Zod v4. V3 had any type.
|
|
71
|
+
*/
|
|
72
|
+
// @ts-expect-error
|
|
69
73
|
const adminUser = config.adminUser || {
|
|
70
74
|
firstName: "John",
|
|
71
75
|
lastName: "Smith",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ApiAfterDeploy","UiService","LoggerService","GetProjectConfigService","ApiGqlClient","IS_INSTALLED_QUERY","INSTALL_MUTATION","AutoInstallAfterApiDeployImpl","constructor","apiGqlClient","ui","getProjectConfig","logger","execute","params","preview","projectConfig","adminAutoInstallExtensions","extensionsByType","length","config","info","isInstalledResponse","query","data","system","isSystemInstalled","error","warning","message","adminUser","firstName","lastName","email","password","variables","installationInput","app","installResponse","mutation","installSystem","code","Error","success","AutoInstallAfterApiDeploy","createImplementation","implementation","dependencies"],"sources":["AutoInstallAfterApiDeploy.ts"],"sourcesContent":["import { ApiAfterDeploy } from \"@webiny/project/abstractions/index.js\";\nimport { UiService } from \"@webiny/project/abstractions/services/UiService.js\";\nimport { LoggerService } from \"@webiny/project/abstractions/services/LoggerService.js\";\nimport { GetProjectConfigService } from \"@webiny/project/abstractions\";\nimport { ApiGqlClient } from \"~/abstractions/ApiGqlClient.js\";\n\nconst IS_INSTALLED_QUERY = `\n query IsSystemInstalled {\n system {\n isSystemInstalled {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\nconst INSTALL_MUTATION = `\n mutation InstallSystem($installationInput: JSON!) {\n system {\n installSystem(installationInput: $installationInput) {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\ninterface IsInstalledResponse {\n system: {\n isSystemInstalled: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\ninterface InstallResponse {\n system: {\n installSystem: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\nclass AutoInstallAfterApiDeployImpl implements ApiAfterDeploy.Interface {\n constructor(\n private apiGqlClient: ApiGqlClient.Interface,\n private ui: UiService.Interface,\n private getProjectConfig: GetProjectConfigService.Interface,\n private logger: LoggerService.Interface\n ) {}\n\n async execute(params: ApiAfterDeploy.Params): Promise<void> {\n if (params.preview) {\n // Skip auto-install on preview deployments\n return;\n }\n\n const projectConfig = await this.getProjectConfig.execute();\n const adminAutoInstallExtensions = projectConfig.extensionsByType(\"Project/AutoInstall\");\n\n if (adminAutoInstallExtensions.length === 0) {\n return;\n }\n\n const config = adminAutoInstallExtensions[0].params;\n\n // Check if system is already installed\n this.ui.info(\"Checking if system is already installed...\");\n\n try {\n const isInstalledResponse = await this.apiGqlClient.query<IsInstalledResponse>({\n query: IS_INSTALLED_QUERY\n });\n\n if (isInstalledResponse.data?.system.isSystemInstalled.data === true) {\n this.ui.info(\"System is already installed, skipping auto-install.\");\n return;\n }\n } catch (error: any) {\n this.logger.error(\"Failed to check installation status\", { error });\n this.ui.warning(`Could not check installation status: ${error.message}`);\n return;\n }\n\n this.ui.info(\"Auto-installing...\");\n\n const adminUser = config.adminUser || {\n firstName: \"John\",\n lastName: \"Smith\",\n email: \"admin@webiny.com\",\n password: \"12345678\"\n };\n\n const variables = {\n installationInput: [\n {\n app: \"Cognito\",\n data: adminUser\n }\n ]\n };\n\n const installResponse = await this.apiGqlClient.mutation<InstallResponse>({\n mutation: INSTALL_MUTATION,\n variables\n });\n\n if (installResponse.data?.system.installSystem.error) {\n const { message, code } = installResponse.data.system.installSystem.error;\n this.logger.error(\"Installation failed\", { message, code });\n this.ui.error(`Installation failed: ${message} (${code})`);\n throw new Error(message);\n }\n\n this.ui.success(\"System installed successfully!\");\n this.ui.info(\"Admin credentials:\");\n this.ui.info(` Email: ${adminUser.email}`);\n this.ui.info(` Password: ${adminUser.password}`);\n }\n}\n\nexport const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({\n implementation: AutoInstallAfterApiDeployImpl,\n dependencies: [ApiGqlClient, UiService, GetProjectConfigService, LoggerService]\n});\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,uCAAuC;AACtE,SAASC,SAAS,QAAQ,oDAAoD;AAC9E,SAASC,aAAa,QAAQ,wDAAwD;AACtF,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,YAAY;AAErB,MAAMC,kBAAkB,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAMC,gBAAgB,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AA0BD,MAAMC,6BAA6B,CAAqC;EACpEC,WAAWA,CACCC,YAAoC,EACpCC,EAAuB,EACvBC,gBAAmD,EACnDC,MAA+B,EACzC;IAAA,KAJUH,YAAoC,GAApCA,YAAoC;IAAA,KACpCC,EAAuB,GAAvBA,EAAuB;IAAA,KACvBC,gBAAmD,GAAnDA,gBAAmD;IAAA,KACnDC,MAA+B,GAA/BA,MAA+B;EACxC;EAEH,MAAMC,OAAOA,CAACC,MAA6B,EAAiB;IACxD,IAAIA,MAAM,CAACC,OAAO,EAAE;MAChB;MACA;IACJ;IAEA,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,gBAAgB,CAACE,OAAO,CAAC,CAAC;IAC3D,MAAMI,0BAA0B,GAAGD,aAAa,CAACE,gBAAgB,CAAC,qBAAqB,CAAC;IAExF,IAAID,0BAA0B,CAACE,MAAM,KAAK,CAAC,EAAE;MACzC;IACJ;IAEA,MAAMC,MAAM,GAAGH,0BAA0B,CAAC,CAAC,CAAC,CAACH,MAAM;;IAEnD;IACA,IAAI,CAACJ,EAAE,CAACW,IAAI,CAAC,4CAA4C,CAAC;IAE1D,IAAI;MACA,MAAMC,mBAAmB,GAAG,MAAM,IAAI,CAACb,YAAY,CAACc,KAAK,CAAsB;QAC3EA,KAAK,EAAElB;MACX,CAAC,CAAC;MAEF,IAAIiB,mBAAmB,CAACE,IAAI,EAAEC,MAAM,CAACC,iBAAiB,CAACF,IAAI,KAAK,IAAI,EAAE;QAClE,IAAI,CAACd,EAAE,CAACW,IAAI,CAAC,qDAAqD,CAAC;QACnE;MACJ;IACJ,CAAC,CAAC,OAAOM,KAAU,EAAE;MACjB,IAAI,CAACf,MAAM,CAACe,KAAK,CAAC,qCAAqC,EAAE;QAAEA;MAAM,CAAC,CAAC;MACnE,IAAI,CAACjB,EAAE,CAACkB,OAAO,CAAC,wCAAwCD,KAAK,CAACE,OAAO,EAAE,CAAC;MACxE;IACJ;IAEA,IAAI,CAACnB,EAAE,CAACW,IAAI,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"names":["ApiAfterDeploy","UiService","LoggerService","GetProjectConfigService","ApiGqlClient","IS_INSTALLED_QUERY","INSTALL_MUTATION","AutoInstallAfterApiDeployImpl","constructor","apiGqlClient","ui","getProjectConfig","logger","execute","params","preview","projectConfig","adminAutoInstallExtensions","extensionsByType","length","config","info","isInstalledResponse","query","data","system","isSystemInstalled","error","warning","message","adminUser","firstName","lastName","email","password","variables","installationInput","app","installResponse","mutation","installSystem","code","Error","success","AutoInstallAfterApiDeploy","createImplementation","implementation","dependencies"],"sources":["AutoInstallAfterApiDeploy.ts"],"sourcesContent":["import { ApiAfterDeploy } from \"@webiny/project/abstractions/index.js\";\nimport { UiService } from \"@webiny/project/abstractions/services/UiService.js\";\nimport { LoggerService } from \"@webiny/project/abstractions/services/LoggerService.js\";\nimport { GetProjectConfigService } from \"@webiny/project/abstractions\";\nimport { ApiGqlClient } from \"~/abstractions/ApiGqlClient.js\";\n\nconst IS_INSTALLED_QUERY = `\n query IsSystemInstalled {\n system {\n isSystemInstalled {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\nconst INSTALL_MUTATION = `\n mutation InstallSystem($installationInput: JSON!) {\n system {\n installSystem(installationInput: $installationInput) {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\ninterface IsInstalledResponse {\n system: {\n isSystemInstalled: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\ninterface InstallResponse {\n system: {\n installSystem: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\nclass AutoInstallAfterApiDeployImpl implements ApiAfterDeploy.Interface {\n constructor(\n private apiGqlClient: ApiGqlClient.Interface,\n private ui: UiService.Interface,\n private getProjectConfig: GetProjectConfigService.Interface,\n private logger: LoggerService.Interface\n ) {}\n\n async execute(params: ApiAfterDeploy.Params): Promise<void> {\n if (params.preview) {\n // Skip auto-install on preview deployments\n return;\n }\n\n const projectConfig = await this.getProjectConfig.execute();\n const adminAutoInstallExtensions = projectConfig.extensionsByType(\"Project/AutoInstall\");\n\n if (adminAutoInstallExtensions.length === 0) {\n return;\n }\n\n const config = adminAutoInstallExtensions[0].params;\n\n // Check if system is already installed\n this.ui.info(\"Checking if system is already installed...\");\n\n try {\n const isInstalledResponse = await this.apiGqlClient.query<IsInstalledResponse>({\n query: IS_INSTALLED_QUERY\n });\n\n if (isInstalledResponse.data?.system.isSystemInstalled.data === true) {\n this.ui.info(\"System is already installed, skipping auto-install.\");\n return;\n }\n } catch (error: any) {\n this.logger.error(\"Failed to check installation status\", { error });\n this.ui.warning(`Could not check installation status: ${error.message}`);\n return;\n }\n\n this.ui.info(\"Auto-installing...\");\n /**\n * Type Error introduced with Zod v4. V3 had any type.\n */\n // @ts-expect-error\n const adminUser = config.adminUser || {\n firstName: \"John\",\n lastName: \"Smith\",\n email: \"admin@webiny.com\",\n password: \"12345678\"\n };\n\n const variables = {\n installationInput: [\n {\n app: \"Cognito\",\n data: adminUser\n }\n ]\n };\n\n const installResponse = await this.apiGqlClient.mutation<InstallResponse>({\n mutation: INSTALL_MUTATION,\n variables\n });\n\n if (installResponse.data?.system.installSystem.error) {\n const { message, code } = installResponse.data.system.installSystem.error;\n this.logger.error(\"Installation failed\", { message, code });\n this.ui.error(`Installation failed: ${message} (${code})`);\n throw new Error(message);\n }\n\n this.ui.success(\"System installed successfully!\");\n this.ui.info(\"Admin credentials:\");\n this.ui.info(` Email: ${adminUser.email}`);\n this.ui.info(` Password: ${adminUser.password}`);\n }\n}\n\nexport const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({\n implementation: AutoInstallAfterApiDeployImpl,\n dependencies: [ApiGqlClient, UiService, GetProjectConfigService, LoggerService]\n});\n"],"mappings":"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","ignoreList":[]}
|