@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.
Files changed (112) hide show
  1. package/_templates/appTemplates/admin/tsconfig.json +0 -1
  2. package/_templates/appTemplates/api/graphql/package.json +16 -4
  3. package/_templates/appTemplates/api/graphql/tsconfig.json +0 -1
  4. package/_templates/appTemplates/api/migration/tsconfig.json +0 -1
  5. package/_templates/extensions/ApiLambdaFunction/package.json +9 -0
  6. package/_templates/extensions/ApiLambdaFunction/tsconfig.json +6 -0
  7. package/_templates/extensions/ApiLambdaFunction/webiny.config.ts +8 -0
  8. package/_templates/extensions/OpenSearch/api/graphql/src/index.ts +11 -5
  9. package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/tsconfig.json +0 -1
  10. package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/webiny.config.ts +2 -2
  11. package/admin.d.ts +6 -18
  12. package/admin.js +1 -1
  13. package/admin.js.map +1 -1
  14. package/api.d.ts +6 -18
  15. package/api.js +2 -2
  16. package/api.js.map +1 -1
  17. package/apps/createAdminApp.d.ts +2 -0
  18. package/apps/createCoreApp.d.ts +0 -1
  19. package/cli.d.ts +2 -6
  20. package/exports/extensions.d.ts +0 -2
  21. package/exports/extensions.js +0 -2
  22. package/exports/extensions.js.map +1 -1
  23. package/exports/infra/index.d.ts +1 -0
  24. package/exports/infra/index.js +3 -0
  25. package/exports/infra/index.js.map +1 -0
  26. package/extensions/ApiLambdaFunction.d.ts +5 -0
  27. package/extensions/ApiLambdaFunction.js +68 -0
  28. package/extensions/ApiLambdaFunction.js.map +1 -0
  29. package/extensions/AwsDefaultRegion.d.ts +4 -5
  30. package/extensions/AwsDefaultRegion.js +18 -6
  31. package/extensions/AwsDefaultRegion.js.map +1 -1
  32. package/extensions/OpenSearch.d.ts +1 -11
  33. package/extensions/OpenSearch.js +3 -4
  34. package/extensions/OpenSearch.js.map +1 -1
  35. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js +4 -0
  36. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js.map +1 -1
  37. package/extensions/ProjectAws/AutoInstall.d.ts +2 -26
  38. package/extensions/ProjectAws/BuildAppWorkspace.js +1 -1
  39. package/extensions/ProjectAws/BuildAppWorkspace.js.map +1 -1
  40. package/extensions/ProjectAws/definitions.js +1 -3
  41. package/extensions/ProjectAws/definitions.js.map +1 -1
  42. package/extensions/ProjectAws.js +6 -4
  43. package/extensions/ProjectAws.js.map +1 -1
  44. package/extensions/definitions.d.ts +3 -0
  45. package/extensions/definitions.js +6 -0
  46. package/extensions/definitions.js.map +1 -0
  47. package/extensions/index.d.ts +1 -0
  48. package/extensions/index.js +1 -0
  49. package/extensions/index.js.map +1 -1
  50. package/index.d.ts +0 -1
  51. package/index.js +0 -1
  52. package/index.js.map +1 -1
  53. package/infra.d.ts +82 -328
  54. package/infra.js +7 -2
  55. package/infra.js.map +1 -1
  56. package/package.json +17 -19
  57. package/project.d.ts +22 -37
  58. package/project.js +4 -3
  59. package/project.js.map +1 -1
  60. package/pulumi/apps/admin/createAdminPulumiApp.d.ts +2 -0
  61. package/pulumi/apps/api/ApiCloudfront.js +1 -1
  62. package/pulumi/apps/api/ApiCloudfront.js.map +1 -1
  63. package/pulumi/apps/api/ApiGraphql.js +1 -1
  64. package/pulumi/apps/api/ApiGraphql.js.map +1 -1
  65. package/pulumi/apps/api/ApiMigration.js +0 -1
  66. package/pulumi/apps/api/ApiMigration.js.map +1 -1
  67. package/pulumi/apps/api/createApiPulumiApp.js +2 -5
  68. package/pulumi/apps/api/createApiPulumiApp.js.map +1 -1
  69. package/pulumi/apps/common/CoreOutput.d.ts +0 -4
  70. package/pulumi/apps/common/CoreOutput.js +0 -4
  71. package/pulumi/apps/common/CoreOutput.js.map +1 -1
  72. package/pulumi/apps/core/CoreAuditLogsDynamo.js +67 -19
  73. package/pulumi/apps/core/CoreAuditLogsDynamo.js.map +1 -1
  74. package/pulumi/apps/core/CoreDynamo.js +18 -5
  75. package/pulumi/apps/core/CoreDynamo.js.map +1 -1
  76. package/pulumi/apps/core/CoreFileManager.d.ts +3 -0
  77. package/pulumi/apps/core/CoreFileManager.js +35 -7
  78. package/pulumi/apps/core/CoreFileManager.js.map +1 -1
  79. package/pulumi/apps/core/CoreOpenSearch.js +5 -5
  80. package/pulumi/apps/core/CoreOpenSearch.js.map +1 -1
  81. package/pulumi/apps/core/createCorePulumiApp.d.ts +0 -1
  82. package/pulumi/apps/core/createCorePulumiApp.js +2 -12
  83. package/pulumi/apps/core/createCorePulumiApp.js.map +1 -1
  84. package/pulumi/apps/createAppBucket.d.ts +4 -0
  85. package/pulumi/apps/createAppBucket.js +42 -2
  86. package/pulumi/apps/createAppBucket.js.map +1 -1
  87. package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.d.ts +6 -6
  88. package/pulumi/apps/react/createReactPulumiApp.d.ts +2 -0
  89. package/pulumi/apps/syncSystem/SyncSystemDynamo.js +14 -4
  90. package/pulumi/apps/syncSystem/SyncSystemDynamo.js.map +1 -1
  91. package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js +14 -4
  92. package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -1
  93. package/pulumi/extensions/AdminCustomDomains.d.ts +6 -11
  94. package/pulumi/extensions/AwsTags.d.ts +1 -5
  95. package/pulumi/extensions/AwsTags.js +1 -1
  96. package/pulumi/extensions/AwsTags.js.map +1 -1
  97. package/pulumi/extensions/BlueGreenDeployments.d.ts +17 -115
  98. package/pulumi/extensions/BlueGreenDeployments.js +7 -4
  99. package/pulumi/extensions/BlueGreenDeployments.js.map +1 -1
  100. package/pulumi/extensions/OpenSearch.d.ts +1 -11
  101. package/pulumi/extensions/Vpc.d.ts +8 -64
  102. package/pulumi/extensions/index.d.ts +29 -187
  103. package/pulumi/types.d.ts +0 -4
  104. package/pulumi/types.js.map +1 -1
  105. package/pulumi/utils/lambdaEnvVariables.js +3 -2
  106. package/pulumi/utils/lambdaEnvVariables.js.map +1 -1
  107. package/pulumi/apps/core/LogDynamo.d.ts +0 -5
  108. package/pulumi/apps/core/LogDynamo.js +0 -94
  109. package/pulumi/apps/core/LogDynamo.js.map +0 -1
  110. package/security.d.ts +0 -356
  111. package/security.js +0 -53
  112. package/security.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "extends": "../../../../tsconfig.json",
3
- "include": ["src"],
4
3
  "compilerOptions": {
5
4
  "composite": false
6
5
  }
@@ -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-security-cognito": "latest",
22
- "@webiny/api-core-ddb": "latest",
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/build-tools": "latest"
41
+ "@webiny/migrations": "latest"
30
42
  }
31
43
  }
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "extends": "../../../../../tsconfig.json",
3
- "include": ["src"],
4
3
  "compilerOptions": {
5
4
  "composite": false
6
5
  }
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "extends": "../../../../../tsconfig.json",
3
- "include": ["src"],
4
3
  "compilerOptions": {
5
4
  "composite": false
6
5
  }
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "{{functionName}}",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "scripts": {},
6
+ "dependencies": {
7
+ "@webiny/build-tools": "latest"
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../../../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "composite": false
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ import { createBuildFunction, createWatchFunction } from "@webiny/build-tools";
2
+
3
+ export default {
4
+ commands: {
5
+ build: createBuildFunction({ cwd: import.meta.dirname }),
6
+ watch: createWatchFunction({ cwd: import.meta.dirname })
7
+ }
8
+ };
@@ -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 { createFileManagerS3, createAssetDelivery } from "@webiny/api-file-manager-s3";
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
- documentClient
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
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "extends": "../../../../../tsconfig.json",
3
- "include": ["src"],
4
3
  "compilerOptions": {
5
4
  "composite": false
6
5
  }
@@ -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.__dirname }),
6
- watch: createWatchFunction({ cwd: import.meta.__dirname })
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").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, string, string>;
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
- }, "strip", import("zod").ZodTypeAny, {
6
- src: string;
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, "many">, import("zod").ZodNumber, import("zod").ZodBoolean]>;
15
- }, "strip", import("zod").ZodTypeAny, {
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
@@ -1,4 +1,4 @@
1
- import { AdminExtension, AdminBuildParam } from "@webiny/app-admin/extensions/index.js";
1
+ import { AdminExtension, AdminBuildParam } from "@webiny/project/extensions/index.js";
2
2
  export const Admin = {
3
3
  Extension: AdminExtension,
4
4
  BuildParam: AdminBuildParam
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/app-admin/extensions/index.js\";\n\nexport const Admin = {\n Extension: AdminExtension,\n BuildParam: AdminBuildParam\n};\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,eAAe,QAAQ,uCAAuC;AAEvF,OAAO,MAAMC,KAAK,GAAG;EACjBC,SAAS,EAAEH,cAAc;EACzBI,UAAU,EAAEH;AAChB,CAAC","ignoreList":[]}
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").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, string, string>;
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
- }, "strip", import("zod").ZodTypeAny, {
6
- src: string;
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, "many">, import("zod").ZodNumber, import("zod").ZodBoolean]>;
15
- }, "strip", import("zod").ZodTypeAny, {
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 { GenericExtension, BuildParam } from "@webiny/api-core/extensions/index.js";
1
+ import { ApiExtension, BuildParam } from "@webiny/project/extensions/index.js";
2
2
  export const Api = {
3
- Extension: GenericExtension,
3
+ Extension: ApiExtension,
4
4
  BuildParam: BuildParam
5
5
  };
6
6
 
package/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["GenericExtension","BuildParam","Api","Extension"],"sources":["api.ts"],"sourcesContent":["import { GenericExtension, BuildParam } from \"@webiny/api-core/extensions/index.js\";\n\nexport const Api = {\n Extension: GenericExtension,\n BuildParam: BuildParam\n};\n"],"mappings":"AAAA,SAASA,gBAAgB,EAAEC,UAAU,QAAQ,sCAAsC;AAEnF,OAAO,MAAMC,GAAG,GAAG;EACfC,SAAS,EAAEH,gBAAgB;EAC3BC,UAAU,EAAEA;AAChB,CAAC","ignoreList":[]}
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":[]}
@@ -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>;
@@ -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").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, string, string>;
4
- }, "strip", import("zod").ZodTypeAny, {
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
  };
@@ -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";
@@ -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","Security","ApiStackOutputService","CoreStackOutputService","ApiGqlClient","AdminStackOutputService","InvokeLambdaFunction"],"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\";\nexport { Security } from \"~/security.js\";\nexport {\n ApiStackOutputService,\n CoreStackOutputService,\n ApiGqlClient,\n AdminStackOutputService,\n InvokeLambdaFunction\n} from \"~/abstractions/index.js\";\n"],"mappings":"AAAA,SAASA,GAAG;AACZ,SAASC,KAAK;AACd,SAASC,GAAG;AACZ,SAASC,KAAK;AACd,SAASC,OAAO;AAChB,SAASC,QAAQ;AACjB,SACIC,qBAAqB,EACrBC,sBAAsB,EACtBC,YAAY,EACZC,uBAAuB,EACvBC,oBAAoB","ignoreList":[]}
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,3 @@
1
+ export { ApiStackOutputService as ApiStackOutput, CoreStackOutputService as CoreStackOutput, ApiGqlClient, AdminStackOutputService as AdminStackOutput, InvokeLambdaFunction } from "../../abstractions/index.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -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 React from "react";
2
- export interface AwsDefaultRegionProps {
3
- name: string;
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 = props => {
4
- return /*#__PURE__*/React.createElement(EnvVar, {
5
- varName: "AWS_REGION",
6
- value: props.name
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","name"],"sources":["AwsDefaultRegion.tsx"],"sourcesContent":["import React from \"react\";\nimport { EnvVar } from \"@webiny/project/extensions/index.js\";\n\nexport interface AwsDefaultRegionProps {\n name: string;\n}\n\nexport const AwsDefaultRegion = (props: AwsDefaultRegionProps) => {\n return <EnvVar varName=\"AWS_REGION\" value={props.name} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,qCAAqC;AAM5D,OAAO,MAAMC,gBAAgB,GAAIC,KAA4B,IAAK;EAC9D,oBAAOH,KAAA,CAAAI,aAAA,CAACH,MAAM;IAACI,OAAO,EAAC,YAAY;IAACC,KAAK,EAAEH,KAAK,CAACI;EAAK,CAAE,CAAC;AAC7D,CAAC","ignoreList":[]}
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
- }, "strip", z.ZodTypeAny, {
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>>;
@@ -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(Infra.Core.BeforeDeploy, {
27
+ }), /*#__PURE__*/React.createElement(CoreBeforeDeploy, {
29
28
  src: p("EnsureOsServiceRoleBeforeCoreDeploy.js")
30
- }), /*#__PURE__*/React.createElement(Infra.Core.BeforeDeploy, {
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","Infra","createPathResolver","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","Core","BeforeDeploy"],"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 { Infra } from \"~/index.js\";\nimport { createPathResolver } from \"@webiny/project\";\nimport { ProjectDecorator, DatabaseSetup } 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 <Infra.Core.BeforeDeploy\n src={p(\"EnsureOsServiceRoleBeforeCoreDeploy.js\")}\n />\n <Infra.Core.BeforeDeploy 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,KAAK;AACd,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,qCAAqC;AACrF,SAASC,CAAC,QAAQ,KAAK;AAEvB,MAAMC,CAAC,GAAGJ,kBAAkB,CAACK,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,CAAC1B,KAAK,CAAC8B,IAAI,CAACC,YAAY;MACpBF,GAAG,EAAExB,CAAC,CAAC,wCAAwC;IAAE,CACpD,CAAC,eACFT,KAAA,CAAA8B,aAAA,CAAC1B,KAAK,CAAC8B,IAAI,CAACC,YAAY;MAACF,GAAG,EAAExB,CAAC,CAAC,wBAAwB;IAAE,CAAE,CAC9D,CAER,CAAC;EAEX;AACJ,CAAC,CAAC","ignoreList":[]}
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":"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","ignoreList":[]}
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":"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;IAClC;AACR;AACA;IACQ;IACA,MAAMS,SAAS,GAAGV,MAAM,CAACU,SAAS,IAAI;MAClCC,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAAE,OAAO;MACjBC,KAAK,EAAE,kBAAkB;MACzBC,QAAQ,EAAE;IACd,CAAC;IAED,MAAMC,SAAS,GAAG;MACdC,iBAAiB,EAAE,CACf;QACIC,GAAG,EAAE,SAAS;QACdb,IAAI,EAAEM;MACV,CAAC;IAET,CAAC;IAED,MAAMQ,eAAe,GAAG,MAAM,IAAI,CAAC7B,YAAY,CAAC8B,QAAQ,CAAkB;MACtEA,QAAQ,EAAEjC,gBAAgB;MAC1B6B;IACJ,CAAC,CAAC;IAEF,IAAIG,eAAe,CAACd,IAAI,EAAEC,MAAM,CAACe,aAAa,CAACb,KAAK,EAAE;MAClD,MAAM;QAAEE,OAAO;QAAEY;MAAK,CAAC,GAAGH,eAAe,CAACd,IAAI,CAACC,MAAM,CAACe,aAAa,CAACb,KAAK;MACzE,IAAI,CAACf,MAAM,CAACe,KAAK,CAAC,qBAAqB,EAAE;QAAEE,OAAO;QAAEY;MAAK,CAAC,CAAC;MAC3D,IAAI,CAAC/B,EAAE,CAACiB,KAAK,CAAC,wBAAwBE,OAAO,KAAKY,IAAI,GAAG,CAAC;MAC1D,MAAM,IAAIC,KAAK,CAACb,OAAO,CAAC;IAC5B;IAEA,IAAI,CAACnB,EAAE,CAACiC,OAAO,CAAC,gCAAgC,CAAC;IACjD,IAAI,CAACjC,EAAE,CAACW,IAAI,CAAC,oBAAoB,CAAC;IAClC,IAAI,CAACX,EAAE,CAACW,IAAI,CAAC,WAAWS,SAAS,CAACG,KAAK,EAAE,CAAC;IAC1C,IAAI,CAACvB,EAAE,CAACW,IAAI,CAAC,cAAcS,SAAS,CAACI,QAAQ,EAAE,CAAC;EACpD;AACJ;AAEA,OAAO,MAAMU,yBAAyB,GAAG5C,cAAc,CAAC6C,oBAAoB,CAAC;EACzEC,cAAc,EAAEvC,6BAA6B;EAC7CwC,YAAY,EAAE,CAAC3C,YAAY,EAAEH,SAAS,EAAEE,uBAAuB,EAAED,aAAa;AAClF,CAAC,CAAC","ignoreList":[]}