@webiny/api-apw 5.43.0-beta.0 → 5.43.0-beta.1

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/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { CreateApwContextParams } from "./scheduler/types";
2
- export declare const createApwPageBuilderContext: (params: CreateApwContextParams) => (import("@webiny/api").ContextPlugin<import("./types").ApwContext> | import("@webiny/plugins/types").Plugin<Record<string, any>> | import("@webiny/plugins/types").PluginCollection | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("@webiny/api-mailer/types").MailerContext> | import("@webiny/plugins/types").PluginFactory)[];
2
+ export declare const createApwPageBuilderContext: (params: CreateApwContextParams) => (import("@webiny/api").ContextPlugin<import("./types").ApwContext> | import("@webiny/plugins/types").PluginCollection | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("@webiny/api-mailer/types").MailerContext> | import("@webiny/plugins/types").Plugin<Record<string, any>> | import("@webiny/plugins/types").PluginFactory)[];
3
3
  export declare const createApwGraphQL: () => import("@webiny/api").ContextPlugin<import("./types").ApwContext>[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-apw",
3
- "version": "5.43.0-beta.0",
3
+ "version": "5.43.0-beta.1",
4
4
  "keywords": [
5
5
  "apw:base"
6
6
  ],
@@ -14,40 +14,38 @@
14
14
  "author": "Webiny Ltd",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@webiny/api": "5.43.0-beta.0",
18
- "@webiny/api-admin-settings": "5.43.0-beta.0",
19
- "@webiny/api-headless-cms": "5.43.0-beta.0",
20
- "@webiny/api-i18n": "5.43.0-beta.0",
21
- "@webiny/api-mailer": "5.43.0-beta.0",
22
- "@webiny/api-page-builder": "5.43.0-beta.0",
23
- "@webiny/api-security": "5.43.0-beta.0",
24
- "@webiny/api-tenancy": "5.43.0-beta.0",
25
- "@webiny/api-wcp": "5.43.0-beta.0",
26
- "@webiny/aws-sdk": "5.43.0-beta.0",
27
- "@webiny/db-dynamodb": "5.43.0-beta.0",
28
- "@webiny/error": "5.43.0-beta.0",
29
- "@webiny/handler": "5.43.0-beta.0",
30
- "@webiny/handler-client": "5.43.0-beta.0",
31
- "@webiny/handler-db": "5.43.0-beta.0",
32
- "@webiny/handler-graphql": "5.43.0-beta.0",
33
- "@webiny/handler-logs": "5.43.0-beta.0",
34
- "@webiny/plugins": "5.43.0-beta.0",
35
- "@webiny/pubsub": "5.43.0-beta.0",
36
- "@webiny/utils": "5.43.0-beta.0",
17
+ "@webiny/api": "5.43.0-beta.1",
18
+ "@webiny/api-admin-settings": "5.43.0-beta.1",
19
+ "@webiny/api-headless-cms": "5.43.0-beta.1",
20
+ "@webiny/api-i18n": "5.43.0-beta.1",
21
+ "@webiny/api-mailer": "5.43.0-beta.1",
22
+ "@webiny/api-page-builder": "5.43.0-beta.1",
23
+ "@webiny/api-security": "5.43.0-beta.1",
24
+ "@webiny/api-tenancy": "5.43.0-beta.1",
25
+ "@webiny/api-wcp": "5.43.0-beta.1",
26
+ "@webiny/aws-sdk": "5.43.0-beta.1",
27
+ "@webiny/db-dynamodb": "5.43.0-beta.1",
28
+ "@webiny/error": "5.43.0-beta.1",
29
+ "@webiny/handler": "5.43.0-beta.1",
30
+ "@webiny/handler-client": "5.43.0-beta.1",
31
+ "@webiny/handler-db": "5.43.0-beta.1",
32
+ "@webiny/handler-graphql": "5.43.0-beta.1",
33
+ "@webiny/plugins": "5.43.0-beta.1",
34
+ "@webiny/pubsub": "5.43.0-beta.1",
35
+ "@webiny/utils": "5.43.0-beta.1",
37
36
  "dayjs": "1.11.13",
38
37
  "lodash": "4.17.21",
39
38
  "zod": "3.23.8"
40
39
  },
41
40
  "devDependencies": {
42
- "@webiny/handler-aws": "5.43.0-beta.0",
43
- "@webiny/project-utils": "5.43.0-beta.0",
44
- "@webiny/wcp": "5.43.0-beta.0",
41
+ "@webiny/handler-aws": "5.43.0-beta.1",
42
+ "@webiny/project-utils": "5.43.0-beta.1",
43
+ "@webiny/wcp": "5.43.0-beta.1",
45
44
  "graphql": "15.9.0",
46
45
  "jest": "29.7.0",
47
46
  "prettier": "2.8.8",
48
47
  "rimraf": "6.0.1",
49
- "ttypescript": "1.5.15",
50
- "typescript": "4.9.5"
48
+ "typescript": "5.3.3"
51
49
  },
52
50
  "publishConfig": {
53
51
  "access": "public",
@@ -57,5 +55,5 @@
57
55
  "build": "node ../cli/bin.js run build",
58
56
  "watch": "node ../cli/bin.js run watch"
59
57
  },
60
- "gitHead": "abfb4ec7b4391f2414cd22f2c5539c84b6c8abbf"
58
+ "gitHead": "d47a234b09383cb7ab2d9907300b8eaa89aa64d6"
61
59
  }
@@ -9,5 +9,5 @@ export interface HandlerArgs {
9
9
  interface Configuration {
10
10
  storageOperations: ApwScheduleActionStorageOperations;
11
11
  }
12
- export declare const executeActionHandlerPlugins: (config: Configuration) => ((import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin<any, any>[][] | import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler-aws").RawEventHandler<HandlerArgs, import("@webiny/handler/types").Context, any> | ContextPlugin<import("@webiny/api/types").Context>)[];
12
+ export declare const executeActionHandlerPlugins: (config: Configuration) => ((import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin<any, any>[][] | ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler-aws").RawEventHandler<HandlerArgs, import("@webiny/handler/types").Context, any> | ContextPlugin<import("@webiny/api/types").Context>)[];
13
13
  export {};
@@ -19,4 +19,4 @@ export interface Configuration {
19
19
  executeAction: string;
20
20
  };
21
21
  }
22
- export declare const scheduleActionHandlerPlugins: (config: Configuration) => ((import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin<any, any>[][] | import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler-aws").RawEventHandler<HandlerArgs, import("@webiny/handler/types").Context, any>)[];
22
+ export declare const scheduleActionHandlerPlugins: (config: Configuration) => ((import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin<any, any>[][] | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[] | import("@webiny/handler-aws").RawEventHandler<HandlerArgs, import("@webiny/handler/types").Context, any>)[];
@@ -18,7 +18,7 @@ export declare const encodeToken: ({ id, tenant, locale }: EncodeTokenParams) =>
18
18
  export declare const TOKEN_PREFIX = "apw-";
19
19
  export declare const decodeToken: (token: string) => Partial<EncodeTokenParams>;
20
20
  export declare const documentClient: import("@webiny/aws-sdk/client-dynamodb").DynamoDBDocument;
21
- export declare const basePlugins: () => (import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin<any, any>[][] | import("@webiny/handler").HandlerResultPlugin<import("@webiny/handler/types").Context> | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[];
21
+ export declare const basePlugins: () => (import("@webiny/db-dynamodb/plugins/definitions/ValueFilterPlugin").ValueFilterPlugin<any, any>[][] | import("@webiny/api").ContextPlugin<import("@webiny/handler-db/types").DbContext>[])[];
22
22
  /**
23
23
  * Get APW settings record from DDB.
24
24
  */
@@ -11,7 +11,6 @@ var _clientDynamodb = require("@webiny/aws-sdk/client-dynamodb");
11
11
  var _handlerDb = _interopRequireDefault(require("@webiny/handler-db"));
12
12
  var _dbDynamodb = require("@webiny/db-dynamodb");
13
13
  var _plugins = _interopRequireDefault(require("@webiny/db-dynamodb/plugins"));
14
- var _handlerLogs = _interopRequireDefault(require("@webiny/handler-logs"));
15
14
  var _types = require("../types");
16
15
  /**
17
16
  * https://day.js.org/docs/en/plugin/utc
@@ -93,7 +92,7 @@ const decodeToken = token => {
93
92
  };
94
93
  exports.decodeToken = decodeToken;
95
94
  const documentClient = exports.documentClient = (0, _clientDynamodb.getDocumentClient)();
96
- const basePlugins = () => [(0, _plugins.default)(), (0, _handlerLogs.default)(), (0, _handlerDb.default)({
95
+ const basePlugins = () => [(0, _plugins.default)(), (0, _handlerDb.default)({
97
96
  table: process.env.DB_TABLE,
98
97
  driver: new _dbDynamodb.DynamoDbDriver({
99
98
  documentClient
@@ -104,8 +103,19 @@ const basePlugins = () => [(0, _plugins.default)(), (0, _handlerLogs.default)(),
104
103
  * Get APW settings record from DDB.
105
104
  */
106
105
  exports.basePlugins = basePlugins;
106
+ const getVariant = () => {
107
+ /**
108
+ * Variant can only be default for now.
109
+ */
110
+ return "default";
111
+ // const value = process.env.WEBINY_ENV_VARIANT;
112
+ // if (!value || value === "undefined" || typeof value !== "string") {
113
+ // return "";
114
+ // }
115
+ // return String(value);
116
+ };
107
117
  const getApwSettings = async () => {
108
- const variant = process.env.STAGED_ROLLOUTS_VARIANT;
118
+ const variant = getVariant();
109
119
  const params = {
110
120
  TableName: process.env.DB_TABLE,
111
121
  Key: {
@@ -1 +1 @@
1
- {"version":3,"names":["_dayjs","_interopRequireDefault","require","_utc","_clientDynamodb","_handlerDb","_dbDynamodb","_plugins","_handlerLogs","_types","dayjs","extend","utc","TIME_SEPARATOR","ELAPSED_CRON_EXPRESSION","getIsoStringTillMinutes","datetime","isNaN","Date","parse","slice","lastIndexOf","exports","dateTimeToCronExpression","dayOfWeek","format","moveDateTimeToNextCentury","add","toISOString","moveDateTimeToCurrentCentury","subtract","isDateTimeInNextCentury","isAfter","shouldRestoreDatetime","invocationType","selfInvoked","InvocationTypes","SCHEDULED","today","isExecutionPending","encodeToken","id","tenant","locale","TOKEN_PREFIX","decodeToken","token","auth","length","split","documentClient","getDocumentClient","basePlugins","dynamoDbPlugins","logsPlugins","dbPlugins","table","process","env","DB_TABLE","driver","DynamoDbDriver","getApwSettings","variant","STAGED_ROLLOUTS_VARIANT","params","TableName","Key","PK","SK","Item","get","mainGraphqlFunctionArn","eventRuleName","eventTargetId"],"sources":["utils.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport { getDocumentClient } from \"@webiny/aws-sdk/client-dynamodb\";\nimport dbPlugins from \"@webiny/handler-db\";\nimport { DynamoDbDriver } from \"@webiny/db-dynamodb\";\nimport dynamoDbPlugins from \"@webiny/db-dynamodb/plugins\";\nimport logsPlugins from \"@webiny/handler-logs\";\nimport { InvocationTypes } from \"~/scheduler/types\";\n\n/**\n * https://day.js.org/docs/en/plugin/utc\n */\ndayjs.extend(utc);\n\nconst TIME_SEPARATOR = \":\";\nconst ELAPSED_CRON_EXPRESSION = \"* * * * ? 2000\";\n\nexport const getIsoStringTillMinutes = (datetime: string): string => {\n /**\n * Validate datetime.\n */\n if (isNaN(Date.parse(datetime))) {\n return datetime;\n }\n // input = \"2022-03-08T05:41:13.230Z\"\n // output = \"2022-03-08T05:41\"\n return datetime.slice(0, datetime.lastIndexOf(TIME_SEPARATOR));\n};\n\nexport const dateTimeToCronExpression = (datetime: string): string => {\n if (!datetime) {\n return ELAPSED_CRON_EXPRESSION;\n }\n /**\n * You can't specify the Day-of-month and Day-of-week fields in the same cron expression.\n * If you specify a value (or a *) in one of the fields, you must use a ? (question mark) in the other.\n *\n * https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html\n */\n const dayOfWeek = \"?\";\n\n return dayjs.utc(datetime).format(`mm H D M [${dayOfWeek}] YYYY`);\n};\n\nexport const moveDateTimeToNextCentury = (datetime: string): string => {\n return dayjs.utc(datetime).add(100, \"year\").toISOString();\n};\n\nexport const moveDateTimeToCurrentCentury = (datetime: string): string => {\n return dayjs.utc(datetime).subtract(100, \"year\").toISOString();\n};\n\nexport const isDateTimeInNextCentury = (datetime: string): boolean => {\n return dayjs.utc(datetime).isAfter(\"2100-01-01\", \"year\");\n};\n\ninterface ShouldRestoreDatetimeParams {\n invocationType?: InvocationTypes;\n datetime: string;\n}\n\nexport const shouldRestoreDatetime = ({\n invocationType,\n datetime\n}: ShouldRestoreDatetimeParams): boolean => {\n /**\n * \"invocationType\" will not be SCHEDULED when the lambda is called from Main GQL handler.\n *\n * Which means a new content is scheduled for \"publish\"/\"unpublish\" therefore, we need to restore the previously\n * scheduled action if it has not been executed already.\n */\n const selfInvoked = invocationType === InvocationTypes.SCHEDULED;\n\n const today = dayjs.utc();\n const isExecutionPending = dayjs.utc(datetime).isAfter(today);\n\n return !selfInvoked && isExecutionPending;\n};\n\ninterface EncodeTokenParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport const encodeToken = ({ id, tenant, locale }: EncodeTokenParams) => {\n return `${TOKEN_PREFIX}${id}__${tenant}__${locale}`;\n};\n\nexport const TOKEN_PREFIX = \"apw-\";\n\nexport const decodeToken = (token: string): Partial<EncodeTokenParams> => {\n const auth = token.slice(TOKEN_PREFIX.length);\n const [id, tenant, locale] = auth.split(\"__\");\n\n return {\n id,\n tenant,\n locale\n };\n};\n\nexport const documentClient = getDocumentClient();\n\nexport const basePlugins = () => [\n dynamoDbPlugins(),\n logsPlugins(),\n dbPlugins({\n table: process.env.DB_TABLE,\n driver: new DynamoDbDriver({\n documentClient\n })\n })\n];\n\n/**\n * Get APW settings record from DDB.\n */\nexport interface ApwSettings {\n mainGraphqlFunctionArn: string;\n eventRuleName: string;\n eventTargetId: string;\n}\n\nexport const getApwSettings = async (): Promise<ApwSettings> => {\n const variant = process.env.STAGED_ROLLOUTS_VARIANT;\n\n const params = {\n TableName: process.env.DB_TABLE as string,\n Key: {\n PK: `APW#SETTINGS`,\n SK: variant || \"default\"\n }\n };\n\n const { Item } = await documentClient.get(params);\n\n return {\n mainGraphqlFunctionArn: Item ? Item[\"mainGraphqlFunctionArn\"] : \"mainGraphqlFunctionArn\",\n eventRuleName: Item ? Item[\"eventRuleName\"] : \"eventRuleName\",\n eventTargetId: Item ? Item[\"eventTargetId\"] : \"eventTargetId\"\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dayjs","_interopRequireDefault","require","_utc","_clientDynamodb","_handlerDb","_dbDynamodb","_plugins","_types","dayjs","extend","utc","TIME_SEPARATOR","ELAPSED_CRON_EXPRESSION","getIsoStringTillMinutes","datetime","isNaN","Date","parse","slice","lastIndexOf","exports","dateTimeToCronExpression","dayOfWeek","format","moveDateTimeToNextCentury","add","toISOString","moveDateTimeToCurrentCentury","subtract","isDateTimeInNextCentury","isAfter","shouldRestoreDatetime","invocationType","selfInvoked","InvocationTypes","SCHEDULED","today","isExecutionPending","encodeToken","id","tenant","locale","TOKEN_PREFIX","decodeToken","token","auth","length","split","documentClient","getDocumentClient","basePlugins","dynamoDbPlugins","dbPlugins","table","process","env","DB_TABLE","driver","DynamoDbDriver","getVariant","getApwSettings","variant","params","TableName","Key","PK","SK","Item","get","mainGraphqlFunctionArn","eventRuleName","eventTargetId"],"sources":["utils.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport { getDocumentClient } from \"@webiny/aws-sdk/client-dynamodb\";\nimport dbPlugins from \"@webiny/handler-db\";\nimport { DynamoDbDriver } from \"@webiny/db-dynamodb\";\nimport dynamoDbPlugins from \"@webiny/db-dynamodb/plugins\";\nimport { InvocationTypes } from \"~/scheduler/types\";\n\n/**\n * https://day.js.org/docs/en/plugin/utc\n */\ndayjs.extend(utc);\n\nconst TIME_SEPARATOR = \":\";\nconst ELAPSED_CRON_EXPRESSION = \"* * * * ? 2000\";\n\nexport const getIsoStringTillMinutes = (datetime: string): string => {\n /**\n * Validate datetime.\n */\n if (isNaN(Date.parse(datetime))) {\n return datetime;\n }\n // input = \"2022-03-08T05:41:13.230Z\"\n // output = \"2022-03-08T05:41\"\n return datetime.slice(0, datetime.lastIndexOf(TIME_SEPARATOR));\n};\n\nexport const dateTimeToCronExpression = (datetime: string): string => {\n if (!datetime) {\n return ELAPSED_CRON_EXPRESSION;\n }\n /**\n * You can't specify the Day-of-month and Day-of-week fields in the same cron expression.\n * If you specify a value (or a *) in one of the fields, you must use a ? (question mark) in the other.\n *\n * https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html\n */\n const dayOfWeek = \"?\";\n\n return dayjs.utc(datetime).format(`mm H D M [${dayOfWeek}] YYYY`);\n};\n\nexport const moveDateTimeToNextCentury = (datetime: string): string => {\n return dayjs.utc(datetime).add(100, \"year\").toISOString();\n};\n\nexport const moveDateTimeToCurrentCentury = (datetime: string): string => {\n return dayjs.utc(datetime).subtract(100, \"year\").toISOString();\n};\n\nexport const isDateTimeInNextCentury = (datetime: string): boolean => {\n return dayjs.utc(datetime).isAfter(\"2100-01-01\", \"year\");\n};\n\ninterface ShouldRestoreDatetimeParams {\n invocationType?: InvocationTypes;\n datetime: string;\n}\n\nexport const shouldRestoreDatetime = ({\n invocationType,\n datetime\n}: ShouldRestoreDatetimeParams): boolean => {\n /**\n * \"invocationType\" will not be SCHEDULED when the lambda is called from Main GQL handler.\n *\n * Which means a new content is scheduled for \"publish\"/\"unpublish\" therefore, we need to restore the previously\n * scheduled action if it has not been executed already.\n */\n const selfInvoked = invocationType === InvocationTypes.SCHEDULED;\n\n const today = dayjs.utc();\n const isExecutionPending = dayjs.utc(datetime).isAfter(today);\n\n return !selfInvoked && isExecutionPending;\n};\n\ninterface EncodeTokenParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport const encodeToken = ({ id, tenant, locale }: EncodeTokenParams) => {\n return `${TOKEN_PREFIX}${id}__${tenant}__${locale}`;\n};\n\nexport const TOKEN_PREFIX = \"apw-\";\n\nexport const decodeToken = (token: string): Partial<EncodeTokenParams> => {\n const auth = token.slice(TOKEN_PREFIX.length);\n const [id, tenant, locale] = auth.split(\"__\");\n\n return {\n id,\n tenant,\n locale\n };\n};\n\nexport const documentClient = getDocumentClient();\n\nexport const basePlugins = () => [\n dynamoDbPlugins(),\n dbPlugins({\n table: process.env.DB_TABLE,\n driver: new DynamoDbDriver({\n documentClient\n })\n })\n];\n\n/**\n * Get APW settings record from DDB.\n */\nexport interface ApwSettings {\n mainGraphqlFunctionArn: string;\n eventRuleName: string;\n eventTargetId: string;\n}\n\nconst getVariant = (): string => {\n /**\n * Variant can only be default for now.\n */\n return \"default\";\n // const value = process.env.WEBINY_ENV_VARIANT;\n // if (!value || value === \"undefined\" || typeof value !== \"string\") {\n // return \"\";\n // }\n // return String(value);\n};\n\nexport const getApwSettings = async (): Promise<ApwSettings> => {\n const variant = getVariant();\n\n const params = {\n TableName: process.env.DB_TABLE as string,\n Key: {\n PK: `APW#SETTINGS`,\n SK: variant || \"default\"\n }\n };\n\n const { Item } = await documentClient.get(params);\n\n return {\n mainGraphqlFunctionArn: Item ? Item[\"mainGraphqlFunctionArn\"] : \"mainGraphqlFunctionArn\",\n eventRuleName: Item ? Item[\"eventRuleName\"] : \"eventRuleName\",\n eventTargetId: Item ? Item[\"eventTargetId\"] : \"eventTargetId\"\n };\n};\n"],"mappings":"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","ignoreList":[]}