n8n-nodes-base 0.225.0 → 0.226.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/dist/build.tsbuildinfo +1 -1
- package/dist/credentials/AirtableApi.credentials.js +6 -0
- package/dist/credentials/AirtableApi.credentials.js.map +1 -1
- package/dist/credentials/AirtableTokenApi.credentials.d.ts +9 -0
- package/dist/credentials/AirtableTokenApi.credentials.js +34 -0
- package/dist/credentials/AirtableTokenApi.credentials.js.map +1 -0
- package/dist/credentials/JotFormApi.credentials.js +4 -0
- package/dist/credentials/JotFormApi.credentials.js.map +1 -1
- package/dist/credentials/NpmApi.credentials.d.ts +9 -0
- package/dist/credentials/NpmApi.credentials.js +41 -0
- package/dist/credentials/NpmApi.credentials.js.map +1 -0
- package/dist/credentials/SshPrivateKey.credentials.js +1 -1
- package/dist/credentials/SshPrivateKey.credentials.js.map +1 -1
- package/dist/known/credentials.json +21 -3
- package/dist/known/nodes.json +4 -0
- package/dist/methods/defined.json +4 -1
- package/dist/methods/referenced.json +4 -1
- package/dist/nodes/Airtable/Airtable.node.js +36 -3
- package/dist/nodes/Airtable/Airtable.node.js.map +1 -1
- package/dist/nodes/Airtable/AirtableTrigger.node.js +31 -1
- package/dist/nodes/Airtable/AirtableTrigger.node.js.map +1 -1
- package/dist/nodes/Airtable/GenericFunctions.js +2 -1
- package/dist/nodes/Airtable/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js +35 -35
- package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js.map +1 -1
- package/dist/nodes/Aws/Rekognition/test/AwsRekognitionTestWorkflow.json +344 -0
- package/dist/nodes/Code/Code.node.js +59 -35
- package/dist/nodes/Code/Code.node.js.map +1 -1
- package/dist/nodes/Code/Code.node.json +1 -1
- package/dist/nodes/Code/JavaScriptSandbox.d.ts +11 -0
- package/dist/nodes/Code/JavaScriptSandbox.js +81 -0
- package/dist/nodes/Code/JavaScriptSandbox.js.map +1 -0
- package/dist/nodes/Code/Pyodide.d.ts +2 -0
- package/dist/nodes/Code/Pyodide.js +47 -0
- package/dist/nodes/Code/Pyodide.js.map +1 -0
- package/dist/nodes/Code/PythonSandbox.d.ts +13 -0
- package/dist/nodes/Code/PythonSandbox.js +86 -0
- package/dist/nodes/Code/PythonSandbox.js.map +1 -0
- package/dist/nodes/Code/Sandbox.d.ts +20 -11
- package/dist/nodes/Code/Sandbox.js +61 -103
- package/dist/nodes/Code/Sandbox.js.map +1 -1
- package/dist/nodes/Code/descriptions/JavascriptCodeDescription.d.ts +2 -0
- package/dist/nodes/Code/descriptions/JavascriptCodeDescription.js +73 -0
- package/dist/nodes/Code/descriptions/JavascriptCodeDescription.js.map +1 -0
- package/dist/nodes/Code/descriptions/PythonCodeDescription.d.ts +2 -0
- package/dist/nodes/Code/descriptions/PythonCodeDescription.js +61 -0
- package/dist/nodes/Code/descriptions/PythonCodeDescription.js.map +1 -0
- package/dist/nodes/Code/utils.d.ts +0 -2
- package/dist/nodes/Code/utils.js +1 -2
- package/dist/nodes/Code/utils.js.map +1 -1
- package/dist/nodes/DateTime/DateTime.node.d.ts +3 -9
- package/dist/nodes/DateTime/DateTime.node.js +9 -502
- package/dist/nodes/DateTime/DateTime.node.js.map +1 -1
- package/dist/nodes/DateTime/V1/DateTimeV1.node.d.ts +11 -0
- package/dist/nodes/DateTime/V1/DateTimeV1.node.js +523 -0
- package/dist/nodes/DateTime/V1/DateTimeV1.node.js.map +1 -0
- package/dist/nodes/DateTime/V2/AddToDateDescription.d.ts +2 -0
- package/dist/nodes/DateTime/V2/AddToDateDescription.js +105 -0
- package/dist/nodes/DateTime/V2/AddToDateDescription.js.map +1 -0
- package/dist/nodes/DateTime/V2/CurrentDateDescription.d.ts +2 -0
- package/dist/nodes/DateTime/V2/CurrentDateDescription.js +63 -0
- package/dist/nodes/DateTime/V2/CurrentDateDescription.js.map +1 -0
- package/dist/nodes/DateTime/V2/DateTimeV2.node.d.ts +6 -0
- package/dist/nodes/DateTime/V2/DateTimeV2.node.js +187 -0
- package/dist/nodes/DateTime/V2/DateTimeV2.node.js.map +1 -0
- package/dist/nodes/DateTime/V2/ExtractDateDescription.d.ts +2 -0
- package/dist/nodes/DateTime/V2/ExtractDateDescription.js +82 -0
- package/dist/nodes/DateTime/V2/ExtractDateDescription.js.map +1 -0
- package/dist/nodes/DateTime/V2/FormatDateDescription.d.ts +2 -0
- package/dist/nodes/DateTime/V2/FormatDateDescription.js +129 -0
- package/dist/nodes/DateTime/V2/FormatDateDescription.js.map +1 -0
- package/dist/nodes/DateTime/V2/GenericFunctions.d.ts +3 -0
- package/dist/nodes/DateTime/V2/GenericFunctions.js +46 -0
- package/dist/nodes/DateTime/V2/GenericFunctions.js.map +1 -0
- package/dist/nodes/DateTime/V2/GetTimeBetweenDates.d.ts +2 -0
- package/dist/nodes/DateTime/V2/GetTimeBetweenDates.js +106 -0
- package/dist/nodes/DateTime/V2/GetTimeBetweenDates.js.map +1 -0
- package/dist/nodes/DateTime/V2/RoundDateDescription.d.ts +2 -0
- package/dist/nodes/DateTime/V2/RoundDateDescription.js +122 -0
- package/dist/nodes/DateTime/V2/RoundDateDescription.js.map +1 -0
- package/dist/nodes/DateTime/V2/SubtractFromDateDescription.d.ts +2 -0
- package/dist/nodes/DateTime/V2/SubtractFromDateDescription.js +105 -0
- package/dist/nodes/DateTime/V2/SubtractFromDateDescription.js.map +1 -0
- package/dist/nodes/DateTime/test/node/DateTimeWorkflowV2.json +260 -0
- package/dist/nodes/DateTime/test/node/workflow.timestamp_v2.json +352 -0
- package/dist/nodes/Ftp/Ftp.node.js +4 -4
- package/dist/nodes/Ftp/Ftp.node.js.map +1 -1
- package/dist/nodes/HttpRequest/HttpRequest.node.js +2 -1
- package/dist/nodes/HttpRequest/HttpRequest.node.js.map +1 -1
- package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js +4 -1
- package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js.map +1 -1
- package/dist/nodes/Hubspot/Hubspot.node.d.ts +3 -45
- package/dist/nodes/Hubspot/Hubspot.node.js +9 -2321
- package/dist/nodes/Hubspot/Hubspot.node.js.map +1 -1
- package/dist/nodes/Hubspot/HubspotTrigger.node.js +1 -1
- package/dist/nodes/Hubspot/HubspotTrigger.node.js.map +1 -1
- package/dist/nodes/Hubspot/{CompanyDescription.js → V1/CompanyDescription.js} +1 -0
- package/dist/nodes/Hubspot/V1/CompanyDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V1/ContactDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V1/ContactListDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V1/DealDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V1/DealInterface.js.map +1 -0
- package/dist/nodes/Hubspot/V1/EngagementDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V1/FormDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V1/FormInterface.js.map +1 -0
- package/dist/nodes/Hubspot/V1/GenericFunctions.d.ts +70 -0
- package/dist/nodes/Hubspot/V1/GenericFunctions.js +1964 -0
- package/dist/nodes/Hubspot/V1/GenericFunctions.js.map +1 -0
- package/dist/nodes/Hubspot/V1/HubspotV1.node.d.ts +48 -0
- package/dist/nodes/Hubspot/V1/HubspotV1.node.js +2334 -0
- package/dist/nodes/Hubspot/V1/HubspotV1.node.js.map +1 -0
- package/dist/nodes/Hubspot/V1/TicketDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V2/CompanyDescription.d.ts +3 -0
- package/dist/nodes/Hubspot/V2/CompanyDescription.js +1134 -0
- package/dist/nodes/Hubspot/V2/CompanyDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V2/ContactDescription.d.ts +3 -0
- package/dist/nodes/Hubspot/V2/ContactDescription.js +1158 -0
- package/dist/nodes/Hubspot/V2/ContactDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V2/ContactListDescription.d.ts +3 -0
- package/dist/nodes/Hubspot/V2/ContactListDescription.js +125 -0
- package/dist/nodes/Hubspot/V2/ContactListDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V2/DealDescription.d.ts +3 -0
- package/dist/nodes/Hubspot/V2/DealDescription.js +949 -0
- package/dist/nodes/Hubspot/V2/DealDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V2/DealInterface.d.ts +9 -0
- package/dist/nodes/Hubspot/V2/DealInterface.js +3 -0
- package/dist/nodes/Hubspot/V2/DealInterface.js.map +1 -0
- package/dist/nodes/Hubspot/V2/EngagementDescription.d.ts +3 -0
- package/dist/nodes/Hubspot/V2/EngagementDescription.js +530 -0
- package/dist/nodes/Hubspot/V2/EngagementDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V2/FormDescription.d.ts +3 -0
- package/dist/nodes/Hubspot/V2/FormDescription.js +297 -0
- package/dist/nodes/Hubspot/V2/FormDescription.js.map +1 -0
- package/dist/nodes/Hubspot/V2/FormInterface.d.ts +19 -0
- package/dist/nodes/Hubspot/V2/FormInterface.js +3 -0
- package/dist/nodes/Hubspot/V2/FormInterface.js.map +1 -0
- package/dist/nodes/Hubspot/V2/GenericFunctions.js.map +1 -0
- package/dist/nodes/Hubspot/V2/HubspotV2.node.d.ts +59 -0
- package/dist/nodes/Hubspot/V2/HubspotV2.node.js +2554 -0
- package/dist/nodes/Hubspot/V2/HubspotV2.node.js.map +1 -0
- package/dist/nodes/Hubspot/V2/TicketDescription.d.ts +3 -0
- package/dist/nodes/Hubspot/V2/TicketDescription.js +563 -0
- package/dist/nodes/Hubspot/V2/TicketDescription.js.map +1 -0
- package/dist/nodes/Kafka/KafkaTrigger.node.js +28 -4
- package/dist/nodes/Kafka/KafkaTrigger.node.js.map +1 -1
- package/dist/nodes/MySql/MySql.node.js +2 -1
- package/dist/nodes/MySql/MySql.node.js.map +1 -1
- package/dist/nodes/MySql/v2/actions/router.js +1 -0
- package/dist/nodes/MySql/v2/actions/router.js.map +1 -1
- package/dist/nodes/MySql/v2/actions/versionDescription.js +1 -1
- package/dist/nodes/MySql/v2/actions/versionDescription.js.map +1 -1
- package/dist/nodes/MySql/v2/transport/index.js +3 -0
- package/dist/nodes/MySql/v2/transport/index.js.map +1 -1
- package/dist/nodes/Npm/DistTagDescription.d.ts +3 -0
- package/dist/nodes/Npm/DistTagDescription.js +94 -0
- package/dist/nodes/Npm/DistTagDescription.js.map +1 -0
- package/dist/nodes/Npm/Npm.node.d.ts +4 -0
- package/dist/nodes/Npm/Npm.node.js +57 -0
- package/dist/nodes/Npm/Npm.node.js.map +1 -0
- package/dist/nodes/Npm/Npm.node.json +19 -0
- package/dist/nodes/Npm/PackageDescription.d.ts +3 -0
- package/dist/nodes/Npm/PackageDescription.js +168 -0
- package/dist/nodes/Npm/PackageDescription.js.map +1 -0
- package/dist/nodes/Npm/npm.svg +4 -0
- package/dist/nodes/Npm/test/Npm.workflow.test.json +117 -0
- package/dist/nodes/Postgres/Postgres.node.js +2 -1
- package/dist/nodes/Postgres/Postgres.node.js.map +1 -1
- package/dist/nodes/Postgres/v2/actions/router.js +1 -0
- package/dist/nodes/Postgres/v2/actions/router.js.map +1 -1
- package/dist/nodes/Postgres/v2/actions/versionDescription.js +1 -1
- package/dist/nodes/Postgres/v2/actions/versionDescription.js.map +1 -1
- package/dist/nodes/Postgres/v2/methods/listSearch.js +4 -2
- package/dist/nodes/Postgres/v2/methods/listSearch.js.map +1 -1
- package/dist/nodes/Postgres/v2/methods/loadOptions.js +2 -1
- package/dist/nodes/Postgres/v2/methods/loadOptions.js.map +1 -1
- package/dist/nodes/Postgres/v2/transport/index.js +7 -0
- package/dist/nodes/Postgres/v2/transport/index.js.map +1 -1
- package/dist/nodes/ReadBinaryFiles/test/ReadBinaryFiles.workflow.json +45 -0
- package/dist/nodes/ReadBinaryFiles/test/data/sample.json +3 -0
- package/dist/nodes/ReadBinaryFiles/test/data/sample2.json +3 -0
- package/dist/package.json +912 -0
- package/dist/types/credentials.json +5 -3
- package/dist/types/nodes.json +21 -15
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +7 -0
- package/dist/utils/constants.js.map +1 -0
- package/package.json +9 -4
- package/dist/nodes/Hubspot/CompanyDescription.js.map +0 -1
- package/dist/nodes/Hubspot/ContactDescription.js.map +0 -1
- package/dist/nodes/Hubspot/ContactListDescription.js.map +0 -1
- package/dist/nodes/Hubspot/DealDescription.js.map +0 -1
- package/dist/nodes/Hubspot/DealInterface.js.map +0 -1
- package/dist/nodes/Hubspot/EngagementDescription.js.map +0 -1
- package/dist/nodes/Hubspot/FormDescription.js.map +0 -1
- package/dist/nodes/Hubspot/FormInterface.js.map +0 -1
- package/dist/nodes/Hubspot/GenericFunctions.js.map +0 -1
- package/dist/nodes/Hubspot/TicketDescription.js.map +0 -1
- /package/dist/nodes/Hubspot/{CompanyDescription.d.ts → V1/CompanyDescription.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{ContactDescription.d.ts → V1/ContactDescription.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{ContactDescription.js → V1/ContactDescription.js} +0 -0
- /package/dist/nodes/Hubspot/{ContactListDescription.d.ts → V1/ContactListDescription.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{ContactListDescription.js → V1/ContactListDescription.js} +0 -0
- /package/dist/nodes/Hubspot/{DealDescription.d.ts → V1/DealDescription.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{DealDescription.js → V1/DealDescription.js} +0 -0
- /package/dist/nodes/Hubspot/{DealInterface.d.ts → V1/DealInterface.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{DealInterface.js → V1/DealInterface.js} +0 -0
- /package/dist/nodes/Hubspot/{EngagementDescription.d.ts → V1/EngagementDescription.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{EngagementDescription.js → V1/EngagementDescription.js} +0 -0
- /package/dist/nodes/Hubspot/{FormDescription.d.ts → V1/FormDescription.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{FormDescription.js → V1/FormDescription.js} +0 -0
- /package/dist/nodes/Hubspot/{FormInterface.d.ts → V1/FormInterface.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{FormInterface.js → V1/FormInterface.js} +0 -0
- /package/dist/nodes/Hubspot/{TicketDescription.d.ts → V1/TicketDescription.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{TicketDescription.js → V1/TicketDescription.js} +0 -0
- /package/dist/nodes/Hubspot/{GenericFunctions.d.ts → V2/GenericFunctions.d.ts} +0 -0
- /package/dist/nodes/Hubspot/{GenericFunctions.js → V2/GenericFunctions.js} +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CurrentDateDescription = void 0;
|
|
4
|
+
exports.CurrentDateDescription = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'You can also refer to the current date in n8n expressions by using <code>{{$now}}</code> or <code>{{$today}}</code>. <a target="_blank" href="https://docs.n8n.io/code-examples/expressions/luxon/">More info</a>',
|
|
7
|
+
name: 'notice',
|
|
8
|
+
type: 'notice',
|
|
9
|
+
default: '',
|
|
10
|
+
displayOptions: {
|
|
11
|
+
show: {
|
|
12
|
+
operation: ['getCurrentDate'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Include Current Time',
|
|
18
|
+
name: 'includeTime',
|
|
19
|
+
type: 'boolean',
|
|
20
|
+
default: true,
|
|
21
|
+
description: 'Whether deactivated, the time will be set to midnight',
|
|
22
|
+
displayOptions: {
|
|
23
|
+
show: {
|
|
24
|
+
operation: ['getCurrentDate'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Output Field Name',
|
|
30
|
+
name: 'outputFieldName',
|
|
31
|
+
type: 'string',
|
|
32
|
+
default: 'currentDate',
|
|
33
|
+
description: 'Name of the field to put the output in',
|
|
34
|
+
displayOptions: {
|
|
35
|
+
show: {
|
|
36
|
+
operation: ['getCurrentDate'],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Options',
|
|
42
|
+
name: 'options',
|
|
43
|
+
type: 'collection',
|
|
44
|
+
placeholder: 'Add Option',
|
|
45
|
+
displayOptions: {
|
|
46
|
+
show: {
|
|
47
|
+
operation: ['getCurrentDate'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
default: {},
|
|
51
|
+
options: [
|
|
52
|
+
{
|
|
53
|
+
displayName: 'Timezone',
|
|
54
|
+
name: 'timezone',
|
|
55
|
+
type: 'string',
|
|
56
|
+
placeholder: 'America/New_York',
|
|
57
|
+
default: '',
|
|
58
|
+
description: 'The timezone to use. If not set, the timezone of the n8n instance will be used. Use ‘GMT’ for +00:00 timezone.',
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
//# sourceMappingURL=CurrentDateDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CurrentDateDescription.js","sourceRoot":"","sources":["../../../../nodes/DateTime/V2/CurrentDateDescription.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAsB;IACxD;QACC,WAAW,EACV,mNAAmN;QACpN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;KACD;IACD;QACC,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,uDAAuD;QACpE,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;KACD;IACD;QACC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,wCAAwC;QACrD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;KACD;IACD;QACC,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,gBAAgB,CAAC;aAC7B;SACD;QACD,OAAO,EAAE,EAAE;QACX,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,EAAE;gBACX,WAAW,EACV,gHAAgH;aACjH;SACD;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeBaseDescription, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class DateTimeV2 implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
constructor(baseDescription: INodeTypeBaseDescription);
|
|
5
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateTimeV2 = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const CurrentDateDescription_1 = require("./CurrentDateDescription");
|
|
6
|
+
const AddToDateDescription_1 = require("./AddToDateDescription");
|
|
7
|
+
const SubtractFromDateDescription_1 = require("./SubtractFromDateDescription");
|
|
8
|
+
const FormatDateDescription_1 = require("./FormatDateDescription");
|
|
9
|
+
const RoundDateDescription_1 = require("./RoundDateDescription");
|
|
10
|
+
const GetTimeBetweenDates_1 = require("./GetTimeBetweenDates");
|
|
11
|
+
const luxon_1 = require("luxon");
|
|
12
|
+
const ExtractDateDescription_1 = require("./ExtractDateDescription");
|
|
13
|
+
const GenericFunctions_1 = require("./GenericFunctions");
|
|
14
|
+
class DateTimeV2 {
|
|
15
|
+
constructor(baseDescription) {
|
|
16
|
+
this.description = {
|
|
17
|
+
...baseDescription,
|
|
18
|
+
version: 2,
|
|
19
|
+
defaults: {
|
|
20
|
+
name: 'Date & Time',
|
|
21
|
+
color: '#408000',
|
|
22
|
+
},
|
|
23
|
+
inputs: ['main'],
|
|
24
|
+
outputs: ['main'],
|
|
25
|
+
properties: [
|
|
26
|
+
{
|
|
27
|
+
displayName: 'Operation',
|
|
28
|
+
name: 'operation',
|
|
29
|
+
type: 'options',
|
|
30
|
+
noDataExpression: true,
|
|
31
|
+
options: [
|
|
32
|
+
{
|
|
33
|
+
name: 'Add to a Date',
|
|
34
|
+
value: 'addToDate',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'Extract Part of a Date',
|
|
38
|
+
value: 'extractDate',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'Format a Date',
|
|
42
|
+
value: 'formatDate',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Get Current Date',
|
|
46
|
+
value: 'getCurrentDate',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Get Time Between Dates',
|
|
50
|
+
value: 'getTimeBetweenDates',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'Round a Date',
|
|
54
|
+
value: 'roundDate',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'Subtract From a Date',
|
|
58
|
+
value: 'subtractFromDate',
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
default: 'getCurrentDate',
|
|
62
|
+
},
|
|
63
|
+
...CurrentDateDescription_1.CurrentDateDescription,
|
|
64
|
+
...AddToDateDescription_1.AddToDateDescription,
|
|
65
|
+
...SubtractFromDateDescription_1.SubtractFromDateDescription,
|
|
66
|
+
...FormatDateDescription_1.FormatDateDescription,
|
|
67
|
+
...RoundDateDescription_1.RoundDateDescription,
|
|
68
|
+
...GetTimeBetweenDates_1.GetTimeBetweenDatesDescription,
|
|
69
|
+
...ExtractDateDescription_1.ExtractDateDescription,
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
async execute() {
|
|
74
|
+
const items = this.getInputData();
|
|
75
|
+
const returnData = [];
|
|
76
|
+
const responseData = [];
|
|
77
|
+
const operation = this.getNodeParameter('operation', 0);
|
|
78
|
+
const workflowTimezone = this.getTimezone();
|
|
79
|
+
for (let i = 0; i < items.length; i++) {
|
|
80
|
+
if (operation === 'getCurrentDate') {
|
|
81
|
+
const includeTime = this.getNodeParameter('includeTime', i);
|
|
82
|
+
const outputFieldName = this.getNodeParameter('outputFieldName', i);
|
|
83
|
+
const { timezone } = this.getNodeParameter('options', i);
|
|
84
|
+
const newLocal = timezone ? timezone : workflowTimezone;
|
|
85
|
+
if (luxon_1.DateTime.now().setZone(newLocal).invalidReason === 'unsupported zone') {
|
|
86
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The timezone ${newLocal} is not valid. Please check the timezone.`);
|
|
87
|
+
}
|
|
88
|
+
responseData.push(includeTime
|
|
89
|
+
? { [outputFieldName]: luxon_1.DateTime.now().setZone(newLocal).toString() }
|
|
90
|
+
: {
|
|
91
|
+
[outputFieldName]: luxon_1.DateTime.now().setZone(newLocal).startOf('day').toString(),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else if (operation === 'addToDate') {
|
|
95
|
+
const addToDate = this.getNodeParameter('magnitude', i);
|
|
96
|
+
const timeUnit = this.getNodeParameter('timeUnit', i);
|
|
97
|
+
const duration = this.getNodeParameter('duration', i);
|
|
98
|
+
const outputFieldName = this.getNodeParameter('outputFieldName', i);
|
|
99
|
+
const dateToAdd = GenericFunctions_1.parseDate.call(this, addToDate, workflowTimezone);
|
|
100
|
+
const returnedDate = dateToAdd.plus({ [timeUnit]: duration });
|
|
101
|
+
responseData.push({ [outputFieldName]: returnedDate.toString() });
|
|
102
|
+
}
|
|
103
|
+
else if (operation === 'subtractFromDate') {
|
|
104
|
+
const subtractFromDate = this.getNodeParameter('magnitude', i);
|
|
105
|
+
const timeUnit = this.getNodeParameter('timeUnit', i);
|
|
106
|
+
const duration = this.getNodeParameter('duration', i);
|
|
107
|
+
const outputFieldName = this.getNodeParameter('outputFieldName', i);
|
|
108
|
+
const dateToAdd = GenericFunctions_1.parseDate.call(this, subtractFromDate, workflowTimezone);
|
|
109
|
+
const returnedDate = dateToAdd.minus({ [timeUnit]: duration });
|
|
110
|
+
responseData.push({ [outputFieldName]: returnedDate.toString() });
|
|
111
|
+
}
|
|
112
|
+
else if (operation === 'formatDate') {
|
|
113
|
+
const date = this.getNodeParameter('date', i);
|
|
114
|
+
const format = this.getNodeParameter('format', i);
|
|
115
|
+
const outputFieldName = this.getNodeParameter('outputFieldName', i);
|
|
116
|
+
const { timezone } = this.getNodeParameter('options', i);
|
|
117
|
+
const dateLuxon = timezone
|
|
118
|
+
? GenericFunctions_1.parseDate.call(this, date, workflowTimezone)
|
|
119
|
+
: GenericFunctions_1.parseDate.call(this, date);
|
|
120
|
+
if (format === 'custom') {
|
|
121
|
+
const customFormat = this.getNodeParameter('customFormat', i);
|
|
122
|
+
responseData.push({
|
|
123
|
+
[outputFieldName]: dateLuxon.toFormat(customFormat),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
responseData.push({
|
|
128
|
+
[outputFieldName]: dateLuxon.toFormat(format),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else if (operation === 'roundDate') {
|
|
133
|
+
const date = this.getNodeParameter('date', i);
|
|
134
|
+
const mode = this.getNodeParameter('mode', i);
|
|
135
|
+
const outputFieldName = this.getNodeParameter('outputFieldName', i);
|
|
136
|
+
const dateLuxon = GenericFunctions_1.parseDate.call(this, date, workflowTimezone);
|
|
137
|
+
if (mode === 'roundDown') {
|
|
138
|
+
const toNearest = this.getNodeParameter('toNearest', i);
|
|
139
|
+
responseData.push({
|
|
140
|
+
[outputFieldName]: dateLuxon.startOf(toNearest).toString(),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
else if (mode === 'roundUp') {
|
|
144
|
+
const to = this.getNodeParameter('to', i);
|
|
145
|
+
responseData.push({
|
|
146
|
+
[outputFieldName]: dateLuxon
|
|
147
|
+
.plus({ [to]: 1 })
|
|
148
|
+
.startOf(to)
|
|
149
|
+
.toString(),
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else if (operation === 'getTimeBetweenDates') {
|
|
154
|
+
const startDate = this.getNodeParameter('startDate', i);
|
|
155
|
+
const endDate = this.getNodeParameter('endDate', i);
|
|
156
|
+
const unit = this.getNodeParameter('units', i);
|
|
157
|
+
const outputFieldName = this.getNodeParameter('outputFieldName', i);
|
|
158
|
+
const { isoString } = this.getNodeParameter('options', i);
|
|
159
|
+
const luxonStartDate = GenericFunctions_1.parseDate.call(this, startDate, workflowTimezone);
|
|
160
|
+
const luxonEndDate = GenericFunctions_1.parseDate.call(this, endDate, workflowTimezone);
|
|
161
|
+
const duration = luxonEndDate.diff(luxonStartDate, unit);
|
|
162
|
+
isoString
|
|
163
|
+
? responseData.push({
|
|
164
|
+
[outputFieldName]: duration.toString(),
|
|
165
|
+
})
|
|
166
|
+
: responseData.push({
|
|
167
|
+
[outputFieldName]: duration.toObject(),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
else if (operation === 'extractDate') {
|
|
171
|
+
const date = this.getNodeParameter('date', i);
|
|
172
|
+
const outputFieldName = this.getNodeParameter('outputFieldName', i);
|
|
173
|
+
const part = this.getNodeParameter('part', i);
|
|
174
|
+
const parsedDate = GenericFunctions_1.parseDate.call(this, date, workflowTimezone);
|
|
175
|
+
const selectedPart = part === 'week' ? parsedDate.weekNumber : parsedDate.get(part);
|
|
176
|
+
responseData.push({ [outputFieldName]: selectedPart });
|
|
177
|
+
}
|
|
178
|
+
const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), {
|
|
179
|
+
itemData: { item: i },
|
|
180
|
+
});
|
|
181
|
+
returnData.push(...executionData);
|
|
182
|
+
}
|
|
183
|
+
return this.prepareOutputData(returnData);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.DateTimeV2 = DateTimeV2;
|
|
187
|
+
//# sourceMappingURL=DateTimeV2.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeV2.node.js","sourceRoot":"","sources":["../../../../nodes/DateTime/V2/DateTimeV2.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtractDateDescription = void 0;
|
|
4
|
+
exports.ExtractDateDescription = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'You can also do this using an expression, e.g. <code>{{ your_date.extract("month") }}}</code>. <a target="_blank" href="https://docs.n8n.io/code-examples/expressions/luxon/">More info</a>',
|
|
7
|
+
name: 'notice',
|
|
8
|
+
type: 'notice',
|
|
9
|
+
default: '',
|
|
10
|
+
displayOptions: {
|
|
11
|
+
show: {
|
|
12
|
+
operation: ['extractDate'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Date',
|
|
18
|
+
name: 'date',
|
|
19
|
+
type: 'string',
|
|
20
|
+
description: 'The date that you want to round',
|
|
21
|
+
default: '',
|
|
22
|
+
displayOptions: {
|
|
23
|
+
show: {
|
|
24
|
+
operation: ['extractDate'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Part',
|
|
30
|
+
name: 'part',
|
|
31
|
+
type: 'options',
|
|
32
|
+
options: [
|
|
33
|
+
{
|
|
34
|
+
name: 'Year',
|
|
35
|
+
value: 'year',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Month',
|
|
39
|
+
value: 'month',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Week',
|
|
43
|
+
value: 'week',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'Day',
|
|
47
|
+
value: 'day',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Hour',
|
|
51
|
+
value: 'hour',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Minute',
|
|
55
|
+
value: 'minute',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'Second',
|
|
59
|
+
value: 'second',
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
default: 'month',
|
|
63
|
+
displayOptions: {
|
|
64
|
+
show: {
|
|
65
|
+
operation: ['extractDate'],
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
displayName: 'Output Field Name',
|
|
71
|
+
name: 'outputFieldName',
|
|
72
|
+
type: 'string',
|
|
73
|
+
default: 'datePart',
|
|
74
|
+
description: 'Name of the field to put the output in',
|
|
75
|
+
displayOptions: {
|
|
76
|
+
show: {
|
|
77
|
+
operation: ['extractDate'],
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
//# sourceMappingURL=ExtractDateDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtractDateDescription.js","sourceRoot":"","sources":["../../../../nodes/DateTime/V2/ExtractDateDescription.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAsB;IACxD;QACC,WAAW,EACV,6LAA6L;QAC9L,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,aAAa,CAAC;aAC1B;SACD;KACD;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,aAAa,CAAC;aAC1B;SACD;KACD;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QAEf,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACb;YACD;gBACC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;aACd;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACb;YACD;gBACC,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,KAAK;aACZ;YACD;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACb;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aACf;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aACf;SACD;QACD,OAAO,EAAE,OAAO;QAChB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,aAAa,CAAC;aAC1B;SACD;KACD;IACD;QACC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,wCAAwC;QACrD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,aAAa,CAAC;aAC1B;SACD;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormatDateDescription = void 0;
|
|
4
|
+
exports.FormatDateDescription = [
|
|
5
|
+
{
|
|
6
|
+
displayName: "You can also do this using an expression, e.g. <code>{{your_date.format('yyyy-MM-dd')}}</code>. <a target='_blank' href='https://docs.n8n.io/code-examples/expressions/luxon/'>More info</a>",
|
|
7
|
+
name: 'notice',
|
|
8
|
+
type: 'notice',
|
|
9
|
+
default: '',
|
|
10
|
+
displayOptions: {
|
|
11
|
+
show: {
|
|
12
|
+
operation: ['formatDate'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Date',
|
|
18
|
+
name: 'date',
|
|
19
|
+
type: 'string',
|
|
20
|
+
description: 'The date that you want to format',
|
|
21
|
+
default: '',
|
|
22
|
+
displayOptions: {
|
|
23
|
+
show: {
|
|
24
|
+
operation: ['formatDate'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Format',
|
|
30
|
+
name: 'format',
|
|
31
|
+
type: 'options',
|
|
32
|
+
displayOptions: {
|
|
33
|
+
show: {
|
|
34
|
+
operation: ['formatDate'],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
options: [
|
|
38
|
+
{
|
|
39
|
+
name: 'Custom Format',
|
|
40
|
+
value: 'custom',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'MM/DD/YYYY',
|
|
44
|
+
value: 'MM/dd/yyyy',
|
|
45
|
+
description: 'Example: 09/04/1986',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'YYYY/MM/DD',
|
|
49
|
+
value: 'yyyy/MM/dd',
|
|
50
|
+
description: 'Example: 1986/04/09',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'MMMM DD YYYY',
|
|
54
|
+
value: 'MMMM dd yyyy',
|
|
55
|
+
description: 'Example: April 09 1986',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'MM-DD-YYYY',
|
|
59
|
+
value: 'MM-dd-yyyy',
|
|
60
|
+
description: 'Example: 09-04-1986',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'YYYY-MM-DD',
|
|
64
|
+
value: 'yyyy-MM-dd',
|
|
65
|
+
description: 'Example: 1986-04-09',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'Unix Timestamp',
|
|
69
|
+
value: 'X',
|
|
70
|
+
description: 'Example: 1672531200',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'Unix Ms Timestamp',
|
|
74
|
+
value: 'x',
|
|
75
|
+
description: 'Example: 1674691200000',
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
default: 'MM/dd/yyyy',
|
|
79
|
+
description: 'The format to convert the date to',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
displayName: 'Custom Format',
|
|
83
|
+
name: 'customFormat',
|
|
84
|
+
type: 'string',
|
|
85
|
+
displayOptions: {
|
|
86
|
+
show: {
|
|
87
|
+
format: ['custom'],
|
|
88
|
+
operation: ['formatDate'],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
hint: 'List of special tokens <a target="_blank" href="https://moment.github.io/luxon/#/formatting?id=table-of-tokens">More info</a>',
|
|
92
|
+
default: '',
|
|
93
|
+
placeholder: 'yyyy-MM-dd',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
displayName: 'Output Field Name',
|
|
97
|
+
name: 'outputFieldName',
|
|
98
|
+
type: 'string',
|
|
99
|
+
default: 'formattedDate',
|
|
100
|
+
description: 'Name of the field to put the output in',
|
|
101
|
+
displayOptions: {
|
|
102
|
+
show: {
|
|
103
|
+
operation: ['formatDate'],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
displayName: 'Options',
|
|
109
|
+
name: 'options',
|
|
110
|
+
type: 'collection',
|
|
111
|
+
placeholder: 'Add Option',
|
|
112
|
+
displayOptions: {
|
|
113
|
+
show: {
|
|
114
|
+
operation: ['formatDate'],
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
default: {},
|
|
118
|
+
options: [
|
|
119
|
+
{
|
|
120
|
+
displayName: 'Use Workflow Timezone',
|
|
121
|
+
name: 'timezone',
|
|
122
|
+
type: 'boolean',
|
|
123
|
+
default: false,
|
|
124
|
+
description: "Whether to use the timezone of the input or the workflow's timezone",
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
//# sourceMappingURL=FormatDateDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormatDateDescription.js","sourceRoot":"","sources":["../../../../nodes/DateTime/V2/FormatDateDescription.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAsB;IACvD;QACC,WAAW,EACV,8LAA8L;QAC/L,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;KACD;IACD;QACC,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;KACD;IACD;QACC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;QAED,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,QAAQ;aACf;YACD;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,qBAAqB;aAClC;YACD;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,qBAAqB;aAClC;YACD;gBACC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,cAAc;gBACrB,WAAW,EAAE,wBAAwB;aACrC;YACD;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,qBAAqB;aAClC;YACD;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,qBAAqB;aAClC;YACD;gBACC,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,qBAAqB;aAClC;YACD;gBACC,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,wBAAwB;aACrC;SACD;QACD,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,mCAAmC;KAChD;IACD;QACC,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAClB,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;QACD,IAAI,EAAE,+HAA+H;QACrI,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,YAAY;KACzB;IACD;QACC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,wCAAwC;QACrD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;KACD;IACD;QACC,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;QACD,OAAO,EAAE,EAAE;QACX,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,qEAAqE;aAClF;SACD;KACD;CACD,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseDate = void 0;
|
|
7
|
+
const luxon_1 = require("luxon");
|
|
8
|
+
const moment_1 = __importDefault(require("moment"));
|
|
9
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
10
|
+
function parseDate(date, timezone) {
|
|
11
|
+
let parsedDate;
|
|
12
|
+
if (date instanceof luxon_1.DateTime) {
|
|
13
|
+
parsedDate = date;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
if (!Number.isNaN(Number(date))) {
|
|
17
|
+
date = Number(date);
|
|
18
|
+
if (!Number.isInteger(date)) {
|
|
19
|
+
date = date * 1000;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (Number.isInteger(date)) {
|
|
23
|
+
const timestampLengthInMilliseconds1990 = 12;
|
|
24
|
+
if (date.toString().length < timestampLengthInMilliseconds1990) {
|
|
25
|
+
parsedDate = luxon_1.DateTime.fromSeconds(date);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
parsedDate = luxon_1.DateTime.fromMillis(date);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
if (!timezone && date.includes('+')) {
|
|
33
|
+
const offset = date.split('+')[1].slice(0, 2);
|
|
34
|
+
timezone = `Etc/GMT-${offset * 1}`;
|
|
35
|
+
}
|
|
36
|
+
parsedDate = luxon_1.DateTime.fromISO((0, moment_1.default)(date).toISOString());
|
|
37
|
+
}
|
|
38
|
+
parsedDate = parsedDate.setZone(timezone || 'Etc/UTC');
|
|
39
|
+
if (parsedDate.invalidReason === 'unparsable') {
|
|
40
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid date format');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return parsedDate;
|
|
44
|
+
}
|
|
45
|
+
exports.parseDate = parseDate;
|
|
46
|
+
//# sourceMappingURL=GenericFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../../nodes/DateTime/V2/GenericFunctions.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAiC;AACjC,oDAA4B;AAE5B,+CAAkD;AAElD,SAAgB,SAAS,CAExB,IAAgC,EAChC,QAAiB;IAEjB,IAAI,UAAU,CAAC;IAEf,IAAI,IAAI,YAAY,gBAAQ,EAAE;QAC7B,UAAU,GAAG,IAAI,CAAC;KAClB;SAAM;QAEN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YAEhC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;aACnB;SACD;QAED,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,iCAAiC,GAAG,EAAE,CAAC;YAE7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,iCAAiC,EAAE;gBAC/D,UAAU,GAAG,gBAAQ,CAAC,WAAW,CAAC,IAAc,CAAC,CAAC;aAClD;iBAAM;gBACN,UAAU,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAc,CAAC,CAAC;aACjD;SACD;aAAM;YACN,IAAI,CAAC,QAAQ,IAAK,IAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAChD,MAAM,MAAM,GAAI,IAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAsB,CAAC;gBAC/E,QAAQ,GAAG,WAAW,MAAM,GAAG,CAAC,EAAE,CAAC;aACnC;YAED,UAAU,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;SAC1D;QAED,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;QAEvD,IAAI,UAAU,CAAC,aAAa,KAAK,YAAY,EAAE;YAC9C,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC;SACpE;KACD;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AA5CD,8BA4CC"}
|