@activepieces/piece-date-helper 0.1.21 → 0.1.23

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/package.json CHANGED
@@ -1,11 +1,9 @@
1
1
  {
2
2
  "name": "@activepieces/piece-date-helper",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "dependencies": {
5
- "@ai-sdk/mcp": "1.0.1 ",
6
- "@modelcontextprotocol/sdk": "1.25.2",
7
5
  "@sinclair/typebox": "0.34.11",
8
- "ai": "5.0.104",
6
+ "ai": "^6.0.0",
9
7
  "axios": "1.13.1",
10
8
  "axios-retry": "4.4.1",
11
9
  "dayjs": "1.11.9",
@@ -18,8 +16,8 @@
18
16
  "socket.io-client": "4.8.1",
19
17
  "zod": "4.1.13",
20
18
  "@activepieces/pieces-common": "0.11.2",
21
- "@activepieces/pieces-framework": "0.23.0",
22
- "@activepieces/shared": "0.32.0",
19
+ "@activepieces/pieces-framework": "0.25.0",
20
+ "@activepieces/shared": "0.33.0",
23
21
  "tslib": "2.6.2"
24
22
  },
25
23
  "resolutions": {
package/src/i18n/ja.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "Enter the starting date": "開始日を入力してください",
40
40
  "Enter the ending date": "終了日を入力してください",
41
41
  "Select the unit of difference between the two dates": "2つの日付の違いの単位を選択してください",
42
- "Provide an expression to add or subtract using the following units (year , month , day , hour , minute or second).\n \nExamples:\n+ 2 second + 1 hour \n+ 1 year - 3 day - 2 month \n+ 5 minute": "以下の単位(年、月、日、時間、分、秒)を使って、足し算または引算する式を提供します。\n \n例:\n+ 2 + 1 時間 \n+ 1 - 3 - 2ヶ月 \n+ 5 ",
42
+ "Provide an expression to add or subtract using the following units (year , month , day , hour , minute or second).\n \nExamples:\n+ 2 second + 1 hour \n+ 1 year - 3 day - 2 month \n+ 5 minute": "以下の単位(年、月、日、時間、分、秒)を使って、足し算または引算する式を提供します。\n \n例:\n+ 2 second + 1 hour \n+ 1 year - 3 day - 2 month \n+ 5 minute",
43
43
  "Optional: Set a timezone for the calculation to handle DST correctly": "オプション: DST を正しく処理する計算のタイムゾーンを設定します。",
44
44
  "Optional: Set the result to a specific time (e.g., \"10:00\" or \"14:30\"). This allows scheduling at a specific time after adding/subtracting dates. Leave empty to keep the calculated time.": "オプション: 結果を特定の時間に設定します (例: \"10:00\" または \"14:30\")。 日付を加算/減算した後の特定の時間にスケジュールすることができます。計算された時間を維持するには空のままにしてください。",
45
45
  "If checked, the current time will be used instead of the time from \"Set Time To\" field.": "チェックされている場合、現在の時刻は「時刻を設定」フィールドからの時刻の代わりに使用されます。",
package/src/index.js CHANGED
@@ -10,6 +10,8 @@ const format_date_1 = require("./lib/actions/format-date");
10
10
  const get_current_date_1 = require("./lib/actions/get-current-date");
11
11
  const next_day_of_week_1 = require("./lib/actions/next-day-of-week");
12
12
  const next_day_of_year_1 = require("./lib/actions/next-day-of-year");
13
+ const first_day_of_prior_month_1 = require("./lib/actions/first-day-of-prior-month");
14
+ const last_day_of_prior_month_1 = require("./lib/actions/last-day-of-prior-month");
13
15
  const description = `Manipulate, format, and extract time units for all your date and time needs.`;
14
16
  exports.utilityDate = (0, pieces_framework_1.createPiece)({
15
17
  displayName: 'Date Helper',
@@ -17,7 +19,14 @@ exports.utilityDate = (0, pieces_framework_1.createPiece)({
17
19
  minimumSupportedRelease: '0.36.1',
18
20
  categories: [shared_1.PieceCategory.CORE],
19
21
  logoUrl: 'https://cdn.activepieces.com/pieces/new-core/date-helper.svg',
20
- authors: ["joeworkman", "kishanprmr", "MoShizzle", "abuaboud", "abdultheactivepiecer", "onyedikachi-david"],
22
+ authors: [
23
+ 'joeworkman',
24
+ 'kishanprmr',
25
+ 'MoShizzle',
26
+ 'abuaboud',
27
+ 'abdultheactivepiecer',
28
+ 'onyedikachi-david',
29
+ ],
21
30
  actions: [
22
31
  get_current_date_1.getCurrentDate,
23
32
  format_date_1.formatDateAction,
@@ -26,6 +35,8 @@ exports.utilityDate = (0, pieces_framework_1.createPiece)({
26
35
  add_subtract_date_1.addSubtractDateAction,
27
36
  next_day_of_week_1.nextDayofWeek,
28
37
  next_day_of_year_1.nextDayofYear,
38
+ first_day_of_prior_month_1.firstDayOfPreviousMonthAction,
39
+ last_day_of_prior_month_1.lastDayOfPreviousMonthAction,
29
40
  ],
30
41
  triggers: [],
31
42
  description: description,
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/date-helper/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,iDAAqD;AACrD,uEAAwE;AACxE,mEAAqE;AACrE,yEAAoE;AACpE,2DAA6D;AAC7D,qEAAgE;AAChE,qEAA+D;AAC/D,qEAA+D;AAE/D,MAAM,WAAW,GAAG,8EAA8E,CAAC;AAEtF,QAAA,WAAW,GAAG,IAAA,8BAAW,EAAC;IACrC,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,4BAAS,CAAC,IAAI,EAAE;IACtB,uBAAuB,EAAE,QAAQ;IACjC,UAAU,EAAE,CAAC,sBAAa,CAAC,IAAI,CAAC;IAChC,OAAO,EAAE,8DAA8D;IACvE,OAAO,EAAE,CAAC,YAAY,EAAC,YAAY,EAAC,WAAW,EAAC,UAAU,EAAC,sBAAsB,EAAC,mBAAmB,CAAC;IACtG,OAAO,EAAE;QACP,iCAAc;QACd,8BAAgB;QAChB,qCAAgB;QAChB,sCAAoB;QACpB,yCAAqB;QACrB,gCAAa;QACb,gCAAa;KACd;IACD,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,WAAW;CACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/date-helper/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,iDAAqD;AACrD,uEAAwE;AACxE,mEAAqE;AACrE,yEAAoE;AACpE,2DAA6D;AAC7D,qEAAgE;AAChE,qEAA+D;AAC/D,qEAA+D;AAC/D,qFAAuF;AACvF,mFAAqF;AAErF,MAAM,WAAW,GAAG,8EAA8E,CAAC;AAEtF,QAAA,WAAW,GAAG,IAAA,8BAAW,EAAC;IACrC,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,4BAAS,CAAC,IAAI,EAAE;IACtB,uBAAuB,EAAE,QAAQ;IACjC,UAAU,EAAE,CAAC,sBAAa,CAAC,IAAI,CAAC;IAChC,OAAO,EAAE,8DAA8D;IACvE,OAAO,EAAE;QACP,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,UAAU;QACV,sBAAsB;QACtB,mBAAmB;KACpB;IACD,OAAO,EAAE;QACP,iCAAc;QACd,8BAAgB;QAChB,qCAAgB;QAChB,sCAAoB;QACpB,yCAAqB;QACrB,gCAAa;QACb,gCAAa;QACb,wDAA6B;QAC7B,sDAA4B;KAC7B;IACD,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,WAAW;CACzB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { timeFormat } from '../common';
2
+ export declare const firstDayOfPreviousMonthAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").PieceAuthProperty, {
3
+ time: import("@activepieces/pieces-framework").ShortTextProperty<false>;
4
+ currentTime: import("@activepieces/pieces-framework").CheckboxProperty<false>;
5
+ timeFormat: import("@activepieces/pieces-framework").StaticDropdownProperty<timeFormat, true>;
6
+ timeZone: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false> | import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
7
+ }>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firstDayOfPreviousMonthAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const common_1 = require("../common");
7
+ const zod_1 = require("zod");
8
+ const pieces_common_1 = require("@activepieces/pieces-common");
9
+ exports.firstDayOfPreviousMonthAction = (0, pieces_framework_1.createAction)({
10
+ name: 'first_day_of_previous_month',
11
+ displayName: 'First Day of Previous Month',
12
+ description: 'Get the date and time of the first day of the previous month',
13
+ errorHandlingOptions: {
14
+ continueOnFailure: {
15
+ hide: true,
16
+ },
17
+ retryOnFailure: {
18
+ hide: true,
19
+ },
20
+ },
21
+ props: {
22
+ time: pieces_framework_1.Property.ShortText({
23
+ displayName: '24h Time',
24
+ description: 'The time that you would like to get the date and time of. This must be in 24h format.',
25
+ required: false,
26
+ defaultValue: '00:00',
27
+ }),
28
+ currentTime: pieces_framework_1.Property.Checkbox({
29
+ displayName: 'Use Current Time',
30
+ description: 'If checked, the current time will be used instead of the time specified above.',
31
+ required: false,
32
+ defaultValue: false,
33
+ }),
34
+ timeFormat: pieces_framework_1.Property.StaticDropdown({
35
+ displayName: 'To Time Format',
36
+ description: common_1.timeFormatDescription,
37
+ options: {
38
+ options: common_1.optionalTimeFormats,
39
+ },
40
+ required: true,
41
+ defaultValue: common_1.timeFormat.format00,
42
+ }),
43
+ timeZone: pieces_framework_1.Property.StaticDropdown({
44
+ displayName: 'Time Zone',
45
+ options: {
46
+ options: common_1.timeZoneOptions,
47
+ },
48
+ required: true,
49
+ defaultValue: 'UTC',
50
+ }),
51
+ },
52
+ run(context) {
53
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
54
+ yield pieces_common_1.propsValidation.validateZod(context.propsValue, {
55
+ time: zod_1.z.string().regex(/^\d\d:\d\d$/),
56
+ });
57
+ const outputTimeFormat = (0, common_1.getCorrectedFormat)(context.propsValue.timeFormat);
58
+ const selectedTimeZone = context.propsValue.timeZone;
59
+ const useCurrentTime = context.propsValue.currentTime;
60
+ let providedTime = context.propsValue.time;
61
+ const baseDateTime = (0, common_1.apDayjs)().tz(selectedTimeZone);
62
+ if (useCurrentTime === true) {
63
+ providedTime = `${baseDateTime.hour()}:${baseDateTime.minute()}`;
64
+ }
65
+ const [hours, minutes] = providedTime.split(':').map(Number);
66
+ // Validate inputs
67
+ if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {
68
+ throw new Error(`Invalid input \nhours: ${hours} \nminutes: ${minutes}`);
69
+ }
70
+ const firstDayOfPreviousMonth = baseDateTime
71
+ .subtract(1, 'month')
72
+ .startOf('month')
73
+ .hour(hours)
74
+ .minute(minutes)
75
+ .second(0)
76
+ .millisecond(0);
77
+ return { result: firstDayOfPreviousMonth.format(outputTimeFormat) };
78
+ });
79
+ },
80
+ });
81
+ //# sourceMappingURL=first-day-of-prior-month.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-day-of-prior-month.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/date-helper/src/lib/actions/first-day-of-prior-month.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { timeFormat } from '../common';
2
+ export declare const lastDayOfPreviousMonthAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").PieceAuthProperty, {
3
+ time: import("@activepieces/pieces-framework").ShortTextProperty<false>;
4
+ currentTime: import("@activepieces/pieces-framework").CheckboxProperty<false>;
5
+ timeFormat: import("@activepieces/pieces-framework").StaticDropdownProperty<timeFormat, true>;
6
+ timeZone: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false> | import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
7
+ }>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lastDayOfPreviousMonthAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const common_1 = require("../common");
7
+ const zod_1 = require("zod");
8
+ const pieces_common_1 = require("@activepieces/pieces-common");
9
+ exports.lastDayOfPreviousMonthAction = (0, pieces_framework_1.createAction)({
10
+ name: 'last_day_of_previous_month',
11
+ displayName: 'Last Day of Previous Month',
12
+ description: 'Get the date and time of the last day of the previous month',
13
+ errorHandlingOptions: {
14
+ continueOnFailure: {
15
+ hide: true,
16
+ },
17
+ retryOnFailure: {
18
+ hide: true,
19
+ },
20
+ },
21
+ props: {
22
+ time: pieces_framework_1.Property.ShortText({
23
+ displayName: '24h Time',
24
+ description: 'The time that you would like to get the date and time of. This must be in 24h format.',
25
+ required: false,
26
+ defaultValue: '00:00',
27
+ }),
28
+ currentTime: pieces_framework_1.Property.Checkbox({
29
+ displayName: 'Use Current Time',
30
+ description: 'If checked, the current time will be used instead of the time specified above.',
31
+ required: false,
32
+ defaultValue: false,
33
+ }),
34
+ timeFormat: pieces_framework_1.Property.StaticDropdown({
35
+ displayName: 'To Time Format',
36
+ description: common_1.timeFormatDescription,
37
+ options: {
38
+ options: common_1.optionalTimeFormats,
39
+ },
40
+ required: true,
41
+ defaultValue: common_1.timeFormat.format00,
42
+ }),
43
+ timeZone: pieces_framework_1.Property.StaticDropdown({
44
+ displayName: 'Time Zone',
45
+ options: {
46
+ options: common_1.timeZoneOptions,
47
+ },
48
+ required: true,
49
+ defaultValue: 'UTC',
50
+ }),
51
+ },
52
+ run(context) {
53
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
54
+ yield pieces_common_1.propsValidation.validateZod(context.propsValue, {
55
+ time: zod_1.z.string().regex(/^\d\d:\d\d$/),
56
+ });
57
+ const outputTimeFormat = (0, common_1.getCorrectedFormat)(context.propsValue.timeFormat);
58
+ const selectedTimeZone = context.propsValue.timeZone;
59
+ const useCurrentTime = context.propsValue.currentTime;
60
+ let providedTime = context.propsValue.time;
61
+ const baseDateTime = (0, common_1.apDayjs)().tz(selectedTimeZone);
62
+ if (useCurrentTime === true) {
63
+ providedTime = `${baseDateTime.hour()}:${baseDateTime.minute()}`;
64
+ }
65
+ const [hours, minutes] = providedTime.split(':').map(Number);
66
+ // Validate inputs
67
+ if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {
68
+ throw new Error(`Invalid input \nhours: ${hours} \nminutes: ${minutes}`);
69
+ }
70
+ const lastDayOfPreviousMonth = baseDateTime
71
+ .subtract(1, 'month')
72
+ .endOf('month')
73
+ .hour(hours)
74
+ .minute(minutes)
75
+ .second(0)
76
+ .millisecond(0);
77
+ return { result: lastDayOfPreviousMonth.format(outputTimeFormat) };
78
+ });
79
+ },
80
+ });
81
+ //# sourceMappingURL=last-day-of-prior-month.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"last-day-of-prior-month.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/date-helper/src/lib/actions/last-day-of-prior-month.ts"],"names":[],"mappings":"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"}