n8n-nodes-base 0.210.0 → 0.210.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/credentials/LinearApi.credentials.d.ts +2 -1
- package/dist/credentials/LinearApi.credentials.js +8 -0
- package/dist/credentials/LinearApi.credentials.js.map +1 -1
- package/dist/known/credentials.json +1 -0
- package/dist/nodes/ErrorTrigger/ErrorTrigger.node.js +1 -1
- package/dist/nodes/ErrorTrigger/ErrorTrigger.node.js.map +1 -1
- package/dist/nodes/Google/Analytics/GoogleAnalytics.node.d.ts +3 -11
- package/dist/nodes/Google/Analytics/GoogleAnalytics.node.js +10 -211
- package/dist/nodes/Google/Analytics/GoogleAnalytics.node.js.map +1 -1
- package/dist/nodes/Google/Analytics/{GenericFunctions.d.ts → v1/GenericFunctions.d.ts} +2 -2
- package/dist/nodes/Google/Analytics/{GenericFunctions.js → v1/GenericFunctions.js} +21 -6
- package/dist/nodes/Google/Analytics/v1/GenericFunctions.js.map +1 -0
- package/dist/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.d.ts +13 -0
- package/dist/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.js +231 -0
- package/dist/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.js.map +1 -0
- package/dist/nodes/Google/Analytics/{Interfaces.d.ts → v1/Interfaces.d.ts} +2 -0
- package/dist/nodes/Google/Analytics/{Interfaces.js → v1/Interfaces.js} +0 -0
- package/dist/nodes/Google/Analytics/v1/Interfaces.js.map +1 -0
- package/dist/nodes/Google/Analytics/{ReportDescription.d.ts → v1/ReportDescription.d.ts} +0 -0
- package/dist/nodes/Google/Analytics/{ReportDescription.js → v1/ReportDescription.js} +0 -0
- package/dist/nodes/Google/Analytics/v1/ReportDescription.js.map +1 -0
- package/dist/nodes/Google/Analytics/{UserActivityDescription.d.ts → v1/UserActivityDescription.d.ts} +0 -0
- package/dist/nodes/Google/Analytics/{UserActivityDescription.js → v1/UserActivityDescription.js} +0 -0
- package/dist/nodes/Google/Analytics/v1/UserActivityDescription.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/GoogleAnalyticsV2.node.d.ts +12 -0
- package/dist/nodes/Google/Analytics/v2/GoogleAnalyticsV2.node.js +20 -0
- package/dist/nodes/Google/Analytics/v2/GoogleAnalyticsV2.node.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/node.type.d.ts +10 -0
- package/dist/nodes/Google/Analytics/v2/actions/node.type.js +3 -0
- package/dist/nodes/Google/Analytics/v2/actions/node.type.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/FiltersDescription.d.ts +5 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/FiltersDescription.js +478 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/FiltersDescription.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/Report.resource.d.ts +5 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/Report.resource.js +79 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/Report.resource.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/get.ga4.operation.d.ts +4 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/get.ga4.operation.js +562 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/get.ga4.operation.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/get.universal.operation.d.ts +4 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/get.universal.operation.js +669 -0
- package/dist/nodes/Google/Analytics/v2/actions/report/get.universal.operation.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/router.d.ts +3 -0
- package/dist/nodes/Google/Analytics/v2/actions/router.js +68 -0
- package/dist/nodes/Google/Analytics/v2/actions/router.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/userActivity/UserActivity.resource.d.ts +4 -0
- package/dist/nodes/Google/Analytics/v2/actions/userActivity/UserActivity.resource.js +52 -0
- package/dist/nodes/Google/Analytics/v2/actions/userActivity/UserActivity.resource.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/userActivity/search.operation.d.ts +4 -0
- package/dist/nodes/Google/Analytics/v2/actions/userActivity/search.operation.js +145 -0
- package/dist/nodes/Google/Analytics/v2/actions/userActivity/search.operation.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/actions/versionDescription.d.ts +2 -0
- package/dist/nodes/Google/Analytics/v2/actions/versionDescription.js +70 -0
- package/dist/nodes/Google/Analytics/v2/actions/versionDescription.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/helpers/Interfaces.d.ts +25 -0
- package/dist/nodes/Google/Analytics/v2/helpers/Interfaces.js +3 -0
- package/dist/nodes/Google/Analytics/v2/helpers/Interfaces.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/helpers/utils.d.ts +18 -0
- package/dist/nodes/Google/Analytics/v2/helpers/utils.js +210 -0
- package/dist/nodes/Google/Analytics/v2/helpers/utils.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/methods/index.d.ts +2 -0
- package/dist/nodes/Google/Analytics/v2/methods/index.js +29 -0
- package/dist/nodes/Google/Analytics/v2/methods/index.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/methods/listSearch.d.ts +3 -0
- package/dist/nodes/Google/Analytics/v2/methods/listSearch.js +40 -0
- package/dist/nodes/Google/Analytics/v2/methods/listSearch.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/methods/loadOptions.d.ts +7 -0
- package/dist/nodes/Google/Analytics/v2/methods/loadOptions.js +97 -0
- package/dist/nodes/Google/Analytics/v2/methods/loadOptions.js.map +1 -0
- package/dist/nodes/Google/Analytics/v2/transport/index.d.ts +4 -0
- package/dist/nodes/Google/Analytics/v2/transport/index.js +84 -0
- package/dist/nodes/Google/Analytics/v2/transport/index.js.map +1 -0
- package/dist/nodes/Linear/GenericFunctions.js +1 -3
- package/dist/nodes/Linear/GenericFunctions.js.map +1 -1
- package/dist/nodes/Linear/Linear.node.js +3 -3
- package/dist/nodes/Linear/Linear.node.js.map +1 -1
- package/dist/nodes/Linear/Queries.js +24 -28
- package/dist/nodes/Linear/Queries.js.map +1 -1
- package/dist/nodes/Notion/DatabaseDescription.js +0 -12
- package/dist/nodes/Notion/DatabaseDescription.js.map +1 -1
- package/dist/nodes/Notion/GenericFunctions.d.ts +8 -7
- package/dist/nodes/Notion/GenericFunctions.js +18 -2
- package/dist/nodes/Notion/GenericFunctions.js.map +1 -1
- package/dist/nodes/Notion/Notion.node.js +2 -2
- package/dist/nodes/Notion/Notion.node.js.map +1 -1
- package/dist/nodes/Notion/NotionTrigger.node.js +2 -2
- package/dist/nodes/Notion/NotionTrigger.node.js.map +1 -1
- package/dist/nodes/Notion/v1/NotionV1.node.js +2 -2
- package/dist/nodes/Notion/v1/NotionV1.node.js.map +1 -1
- package/dist/nodes/Notion/v1/VersionDescription.js +3 -3
- package/dist/nodes/Notion/v1/VersionDescription.js.map +1 -1
- package/dist/nodes/Notion/v2/NotionV2.node.js +2 -2
- package/dist/nodes/Notion/v2/NotionV2.node.js.map +1 -1
- package/dist/nodes/Notion/v2/VersionDescription.js +3 -3
- package/dist/nodes/Notion/v2/VersionDescription.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/credentials.json +1 -1
- package/dist/types/nodes.json +5 -4
- package/package.json +3 -3
- package/dist/nodes/Google/Analytics/GenericFunctions.js.map +0 -1
- package/dist/nodes/Google/Analytics/Interfaces.js.map +0 -1
- package/dist/nodes/Google/Analytics/ReportDescription.js.map +0 -1
- package/dist/nodes/Google/Analytics/UserActivityDescription.js.map +0 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.router = void 0;
|
|
27
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
28
|
+
const userActivity = __importStar(require("./userActivity/UserActivity.resource"));
|
|
29
|
+
const report = __importStar(require("./report/Report.resource"));
|
|
30
|
+
async function router() {
|
|
31
|
+
const items = this.getInputData();
|
|
32
|
+
const returnData = [];
|
|
33
|
+
const resource = this.getNodeParameter('resource', 0);
|
|
34
|
+
const operation = this.getNodeParameter('operation', 0);
|
|
35
|
+
let responseData;
|
|
36
|
+
const googleAnalytics = {
|
|
37
|
+
resource,
|
|
38
|
+
operation,
|
|
39
|
+
};
|
|
40
|
+
for (let i = 0; i < items.length; i++) {
|
|
41
|
+
try {
|
|
42
|
+
switch (googleAnalytics.resource) {
|
|
43
|
+
case 'report':
|
|
44
|
+
const propertyType = this.getNodeParameter('propertyType', 0);
|
|
45
|
+
const operationBasedOnProperty = `${googleAnalytics.operation}${propertyType}`;
|
|
46
|
+
responseData = await report[operationBasedOnProperty].execute.call(this, i);
|
|
47
|
+
break;
|
|
48
|
+
case 'userActivity':
|
|
49
|
+
responseData = await userActivity[googleAnalytics.operation].execute.call(this, i);
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The resource "${resource}" is not known`);
|
|
53
|
+
}
|
|
54
|
+
returnData.push(...responseData);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (this.continueOnFail()) {
|
|
58
|
+
const executionErrorData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray({ error: error.message }), { itemData: { item: i } });
|
|
59
|
+
returnData.push(...executionErrorData);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return this.prepareOutputData(returnData);
|
|
66
|
+
}
|
|
67
|
+
exports.router = router;
|
|
68
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../../../nodes/Google/Analytics/v2/actions/router.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAsE;AAGtE,mFAAqE;AACrE,iEAAmD;AAE5C,KAAK,UAAU,MAAM;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAkB,UAAU,EAAE,CAAC,CAAW,CAAC;IACjF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAExD,IAAI,YAAY,CAAC;IAEjB,MAAM,eAAe,GAAG;QACvB,QAAQ;QACR,SAAS;KACU,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI;YACH,QAAQ,eAAe,CAAC,QAAQ,EAAE;gBACjC,KAAK,QAAQ;oBACZ,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAW,CAAC;oBACxE,MAAM,wBAAwB,GAC7B,GAAG,eAAe,CAAC,SAAS,GAAG,YAAY,EAA2B,CAAC;oBACxE,YAAY,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC5E,MAAM;gBACP,KAAK,cAAc;oBAClB,YAAY,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACnF,MAAM;gBACP;oBACC,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,QAAQ,gBAAgB,CAAC,CAAC;aACzF;YAED,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;SACjC;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;gBAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CACjE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EACtD,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CACzB,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;gBACvC,SAAS;aACT;YACD,MAAM,KAAK,CAAC;SACZ;KACD;IACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AA3CD,wBA2CC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.description = exports.search = void 0;
|
|
27
|
+
const search = __importStar(require("./search.operation"));
|
|
28
|
+
exports.search = search;
|
|
29
|
+
exports.description = [
|
|
30
|
+
{
|
|
31
|
+
displayName: 'Operation',
|
|
32
|
+
name: 'operation',
|
|
33
|
+
type: 'options',
|
|
34
|
+
noDataExpression: true,
|
|
35
|
+
displayOptions: {
|
|
36
|
+
show: {
|
|
37
|
+
resource: ['userActivity'],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
options: [
|
|
41
|
+
{
|
|
42
|
+
name: 'Search',
|
|
43
|
+
value: 'search',
|
|
44
|
+
description: 'Return user activity data',
|
|
45
|
+
action: 'Search user activity data',
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
default: 'search',
|
|
49
|
+
},
|
|
50
|
+
...search.description,
|
|
51
|
+
];
|
|
52
|
+
//# sourceMappingURL=UserActivity.resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserActivity.resource.js","sourceRoot":"","sources":["../../../../../../../nodes/Google/Analytics/v2/actions/userActivity/UserActivity.resource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2DAA6C;AAEpC,wBAAM;AAEF,QAAA,WAAW,GAAsB;IAC7C;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,cAAc,CAAC;aAC1B;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,2BAA2B;gBACxC,MAAM,EAAE,2BAA2B;aACnC;SACD;QACD,OAAO,EAAE,QAAQ;KACjB;IACD,GAAG,MAAM,CAAC,WAAW;CACrB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IExecuteFunctions } from 'n8n-core';
|
|
2
|
+
import { INodeExecutionData, INodeProperties } from 'n8n-workflow';
|
|
3
|
+
export declare const description: INodeProperties[];
|
|
4
|
+
export declare function execute(this: IExecuteFunctions, index: number): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = exports.description = void 0;
|
|
4
|
+
const transport_1 = require("../../transport");
|
|
5
|
+
exports.description = [
|
|
6
|
+
{
|
|
7
|
+
displayName: 'View Name or ID',
|
|
8
|
+
name: 'viewId',
|
|
9
|
+
type: 'options',
|
|
10
|
+
typeOptions: {
|
|
11
|
+
loadOptionsMethod: 'getViews',
|
|
12
|
+
},
|
|
13
|
+
default: '',
|
|
14
|
+
required: true,
|
|
15
|
+
displayOptions: {
|
|
16
|
+
show: {
|
|
17
|
+
resource: ['userActivity'],
|
|
18
|
+
operation: ['search'],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
placeholder: '123456',
|
|
22
|
+
description: 'The view from Google Analytics. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.',
|
|
23
|
+
hint: "If there's nothing here, try changing the 'Property type' field above",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
displayName: 'User ID',
|
|
27
|
+
name: 'userId',
|
|
28
|
+
type: 'string',
|
|
29
|
+
default: '',
|
|
30
|
+
required: true,
|
|
31
|
+
displayOptions: {
|
|
32
|
+
show: {
|
|
33
|
+
resource: ['userActivity'],
|
|
34
|
+
operation: ['search'],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
placeholder: '123456',
|
|
38
|
+
description: 'ID of a user',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Return All',
|
|
42
|
+
name: 'returnAll',
|
|
43
|
+
type: 'boolean',
|
|
44
|
+
displayOptions: {
|
|
45
|
+
show: {
|
|
46
|
+
operation: ['search'],
|
|
47
|
+
resource: ['userActivity'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
default: false,
|
|
51
|
+
description: 'Whether to return all results or only up to a given limit',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
displayName: 'Limit',
|
|
55
|
+
name: 'limit',
|
|
56
|
+
type: 'number',
|
|
57
|
+
displayOptions: {
|
|
58
|
+
show: {
|
|
59
|
+
operation: ['search'],
|
|
60
|
+
resource: ['userActivity'],
|
|
61
|
+
returnAll: [false],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
typeOptions: {
|
|
65
|
+
minValue: 1,
|
|
66
|
+
maxValue: 500,
|
|
67
|
+
},
|
|
68
|
+
default: 100,
|
|
69
|
+
description: 'Max number of results to return',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
displayName: 'Additional Fields',
|
|
73
|
+
name: 'additionalFields',
|
|
74
|
+
type: 'collection',
|
|
75
|
+
placeholder: 'Add Field',
|
|
76
|
+
default: {},
|
|
77
|
+
displayOptions: {
|
|
78
|
+
show: {
|
|
79
|
+
operation: ['search'],
|
|
80
|
+
resource: ['userActivity'],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
options: [
|
|
84
|
+
{
|
|
85
|
+
displayName: 'Activity Types',
|
|
86
|
+
name: 'activityTypes',
|
|
87
|
+
type: 'multiOptions',
|
|
88
|
+
options: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Ecommerce',
|
|
91
|
+
value: 'ECOMMERCE',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Event',
|
|
95
|
+
value: 'EVENT',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Goal',
|
|
99
|
+
value: 'GOAL',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'Pageview',
|
|
103
|
+
value: 'PAGEVIEW',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'Screenview',
|
|
107
|
+
value: 'SCREENVIEW',
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
description: 'Type of activites requested',
|
|
111
|
+
default: [],
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
];
|
|
116
|
+
async function execute(index) {
|
|
117
|
+
const viewId = this.getNodeParameter('viewId', index);
|
|
118
|
+
const userId = this.getNodeParameter('userId', index);
|
|
119
|
+
const returnAll = this.getNodeParameter('returnAll', 0);
|
|
120
|
+
const additionalFields = this.getNodeParameter('additionalFields', index);
|
|
121
|
+
let responseData;
|
|
122
|
+
const body = {
|
|
123
|
+
viewId,
|
|
124
|
+
user: {
|
|
125
|
+
userId,
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
if (additionalFields.activityTypes) {
|
|
129
|
+
Object.assign(body, { activityTypes: additionalFields.activityTypes });
|
|
130
|
+
}
|
|
131
|
+
const method = 'POST';
|
|
132
|
+
const endpoint = '/v4/userActivity:search';
|
|
133
|
+
if (returnAll) {
|
|
134
|
+
responseData = await transport_1.googleApiRequestAllItems.call(this, 'sessions', method, endpoint, body);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
body.pageSize = this.getNodeParameter('limit', 0);
|
|
138
|
+
responseData = await transport_1.googleApiRequest.call(this, method, endpoint, body);
|
|
139
|
+
responseData = responseData.sessions;
|
|
140
|
+
}
|
|
141
|
+
const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: index } });
|
|
142
|
+
return executionData;
|
|
143
|
+
}
|
|
144
|
+
exports.execute = execute;
|
|
145
|
+
//# sourceMappingURL=search.operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.operation.js","sourceRoot":"","sources":["../../../../../../../nodes/Google/Analytics/v2/actions/userActivity/search.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.versionDescription = void 0;
|
|
27
|
+
const userActivity = __importStar(require("./userActivity/UserActivity.resource"));
|
|
28
|
+
const report = __importStar(require("./report/Report.resource"));
|
|
29
|
+
exports.versionDescription = {
|
|
30
|
+
displayName: 'Google Analytics',
|
|
31
|
+
name: 'googleAnalytics',
|
|
32
|
+
icon: 'file:analytics.svg',
|
|
33
|
+
group: ['transform'],
|
|
34
|
+
version: 2,
|
|
35
|
+
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
|
36
|
+
description: 'Use the Google Analytics API',
|
|
37
|
+
defaults: {
|
|
38
|
+
name: 'Google Analytics',
|
|
39
|
+
},
|
|
40
|
+
inputs: ['main'],
|
|
41
|
+
outputs: ['main'],
|
|
42
|
+
credentials: [
|
|
43
|
+
{
|
|
44
|
+
name: 'googleAnalyticsOAuth2',
|
|
45
|
+
required: true,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
properties: [
|
|
49
|
+
{
|
|
50
|
+
displayName: 'Resource',
|
|
51
|
+
name: 'resource',
|
|
52
|
+
type: 'options',
|
|
53
|
+
noDataExpression: true,
|
|
54
|
+
options: [
|
|
55
|
+
{
|
|
56
|
+
name: 'Report',
|
|
57
|
+
value: 'report',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'User Activity',
|
|
61
|
+
value: 'userActivity',
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
default: 'report',
|
|
65
|
+
},
|
|
66
|
+
...report.description,
|
|
67
|
+
...userActivity.description,
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=versionDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionDescription.js","sourceRoot":"","sources":["../../../../../../nodes/Google/Analytics/v2/actions/versionDescription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,mFAAqE;AACrE,iEAAmD;AAEtC,QAAA,kBAAkB,GAAyB;IACvD,WAAW,EAAE,kBAAkB;IAC/B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,CAAC,WAAW,CAAC;IACpB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,8DAA8D;IACxE,WAAW,EAAE,8BAA8B;IAC3C,QAAQ,EAAE;QACT,IAAI,EAAE,kBAAkB;KACxB;IACD,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE;QACZ;YACC,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,IAAI;SACd;KACD;IACD,UAAU,EAAE;QACX;YACC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,QAAQ;iBACf;gBACD;oBACC,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,cAAc;iBACrB;aACD;YACD,OAAO,EAAE,QAAQ;SACjB;QACD,GAAG,MAAM,CAAC,WAAW;QACrB,GAAG,YAAY,CAAC,WAAW;KAC3B;CACD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IDataObject } from 'n8n-workflow';
|
|
2
|
+
export interface IData {
|
|
3
|
+
viewId: string;
|
|
4
|
+
dimensions?: IDimension[];
|
|
5
|
+
dimensionFilterClauses?: {
|
|
6
|
+
filters: IDimensionFilter[];
|
|
7
|
+
};
|
|
8
|
+
pageSize?: number;
|
|
9
|
+
metrics?: IMetric[];
|
|
10
|
+
dateRanges?: IDataObject[];
|
|
11
|
+
}
|
|
12
|
+
export interface IDimension {
|
|
13
|
+
name?: string;
|
|
14
|
+
histogramBuckets?: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface IDimensionFilter {
|
|
17
|
+
dimensionName?: string;
|
|
18
|
+
operator?: string;
|
|
19
|
+
expressions?: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface IMetric {
|
|
22
|
+
expression?: string;
|
|
23
|
+
alias?: string;
|
|
24
|
+
formattingType?: string;
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Interfaces.js","sourceRoot":"","sources":["../../../../../../nodes/Google/Analytics/v2/helpers/Interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-core';
|
|
2
|
+
import { IDataObject, INodeListSearchItems, INodePropertyOptions } from 'n8n-workflow';
|
|
3
|
+
export declare function simplify(responseData: any | [any]): {
|
|
4
|
+
[x: string]: IDataObject | IDataObject[] | import("n8n-workflow").GenericValue | import("n8n-workflow").GenericValue[];
|
|
5
|
+
}[];
|
|
6
|
+
export declare function merge(responseData: [any]): {
|
|
7
|
+
columnHeader: IDataObject;
|
|
8
|
+
data: {
|
|
9
|
+
rows: [];
|
|
10
|
+
};
|
|
11
|
+
}[];
|
|
12
|
+
export declare function simplifyGA4(response: IDataObject): IDataObject[];
|
|
13
|
+
export declare function processFilters(expression: IDataObject): IDataObject[];
|
|
14
|
+
export declare function prepareDateRange(this: IExecuteFunctions | ILoadOptionsFunctions, period: string, itemIndex: number): IDataObject[];
|
|
15
|
+
export declare const defaultStartDate: () => string;
|
|
16
|
+
export declare const defaultEndDate: () => string;
|
|
17
|
+
export declare function checkDuplicates(this: IExecuteFunctions, data: IDataObject[], key: string, type: string): void;
|
|
18
|
+
export declare function sortLoadOptions(data: INodePropertyOptions[] | INodeListSearchItems[]): (INodePropertyOptions | INodeListSearchItems)[];
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortLoadOptions = exports.checkDuplicates = exports.defaultEndDate = exports.defaultStartDate = exports.prepareDateRange = exports.processFilters = exports.simplifyGA4 = exports.merge = exports.simplify = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const luxon_1 = require("luxon");
|
|
6
|
+
function simplify(responseData) {
|
|
7
|
+
const returnData = [];
|
|
8
|
+
for (const { columnHeader: { dimensions, metricHeader }, data: { rows }, } of responseData) {
|
|
9
|
+
if (rows === undefined) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
const metrics = metricHeader.metricHeaderEntries.map((entry) => entry.name);
|
|
13
|
+
for (const row of rows) {
|
|
14
|
+
const rowDimensions = {};
|
|
15
|
+
const rowMetrics = {};
|
|
16
|
+
if (dimensions) {
|
|
17
|
+
for (let i = 0; i < dimensions.length; i++) {
|
|
18
|
+
rowDimensions[dimensions[i]] = row.dimensions[i];
|
|
19
|
+
for (const [index, metric] of metrics.entries()) {
|
|
20
|
+
rowMetrics[metric] = row.metrics[0].values[index];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
for (const [index, metric] of metrics.entries()) {
|
|
26
|
+
rowMetrics[metric] = row.metrics[0].values[index];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
returnData.push({ ...rowDimensions, ...rowMetrics });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return returnData;
|
|
33
|
+
}
|
|
34
|
+
exports.simplify = simplify;
|
|
35
|
+
function merge(responseData) {
|
|
36
|
+
const response = {
|
|
37
|
+
columnHeader: responseData[0].columnHeader,
|
|
38
|
+
data: responseData[0].data,
|
|
39
|
+
};
|
|
40
|
+
const allRows = [];
|
|
41
|
+
for (const { data: { rows }, } of responseData) {
|
|
42
|
+
allRows.push(...rows);
|
|
43
|
+
}
|
|
44
|
+
response.data.rows = allRows;
|
|
45
|
+
return [response];
|
|
46
|
+
}
|
|
47
|
+
exports.merge = merge;
|
|
48
|
+
function simplifyGA4(response) {
|
|
49
|
+
if (!response.rows)
|
|
50
|
+
return [];
|
|
51
|
+
const dimensionHeaders = (response.dimensionHeaders || []).map((header) => header.name);
|
|
52
|
+
const metricHeaders = (response.metricHeaders || []).map((header) => header.name);
|
|
53
|
+
const returnData = [];
|
|
54
|
+
response.rows.forEach((row) => {
|
|
55
|
+
if (!row)
|
|
56
|
+
return;
|
|
57
|
+
const rowDimensions = {};
|
|
58
|
+
const rowMetrics = {};
|
|
59
|
+
dimensionHeaders.forEach((dimension, index) => {
|
|
60
|
+
rowDimensions[dimension] = row.dimensionValues[index].value;
|
|
61
|
+
});
|
|
62
|
+
metricHeaders.forEach((metric, index) => {
|
|
63
|
+
rowMetrics[metric] = row.metricValues[index].value;
|
|
64
|
+
});
|
|
65
|
+
returnData.push({ ...rowDimensions, ...rowMetrics });
|
|
66
|
+
});
|
|
67
|
+
return returnData;
|
|
68
|
+
}
|
|
69
|
+
exports.simplifyGA4 = simplifyGA4;
|
|
70
|
+
function processFilters(expression) {
|
|
71
|
+
const processedFilters = [];
|
|
72
|
+
Object.entries(expression).forEach((entry) => {
|
|
73
|
+
const [filterType, filters] = entry;
|
|
74
|
+
filters.forEach((filter) => {
|
|
75
|
+
let fieldName = '';
|
|
76
|
+
switch (filter.listName) {
|
|
77
|
+
case 'other':
|
|
78
|
+
fieldName = filter.name;
|
|
79
|
+
delete filter.name;
|
|
80
|
+
break;
|
|
81
|
+
case 'custom':
|
|
82
|
+
fieldName = filter.name;
|
|
83
|
+
delete filter.name;
|
|
84
|
+
break;
|
|
85
|
+
default:
|
|
86
|
+
fieldName = filter.listName;
|
|
87
|
+
}
|
|
88
|
+
delete filter.listName;
|
|
89
|
+
if (filterType === 'inListFilter') {
|
|
90
|
+
filter.values = filter.values.split(',');
|
|
91
|
+
}
|
|
92
|
+
if (filterType === 'numericFilter') {
|
|
93
|
+
filter.value = {
|
|
94
|
+
[filter.valueType]: filter.value,
|
|
95
|
+
};
|
|
96
|
+
delete filter.valueType;
|
|
97
|
+
}
|
|
98
|
+
if (filterType === 'betweenFilter') {
|
|
99
|
+
filter.fromValue = {
|
|
100
|
+
[filter.valueType]: filter.fromValue,
|
|
101
|
+
};
|
|
102
|
+
filter.toValue = {
|
|
103
|
+
[filter.valueType]: filter.toValue,
|
|
104
|
+
};
|
|
105
|
+
delete filter.valueType;
|
|
106
|
+
}
|
|
107
|
+
processedFilters.push({
|
|
108
|
+
filter: {
|
|
109
|
+
fieldName,
|
|
110
|
+
[filterType]: filter,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
return processedFilters;
|
|
116
|
+
}
|
|
117
|
+
exports.processFilters = processFilters;
|
|
118
|
+
function prepareDateRange(period, itemIndex) {
|
|
119
|
+
const dateRanges = [];
|
|
120
|
+
switch (period) {
|
|
121
|
+
case 'today':
|
|
122
|
+
dateRanges.push({
|
|
123
|
+
startDate: luxon_1.DateTime.local().startOf('day').toISODate(),
|
|
124
|
+
endDate: luxon_1.DateTime.now().toISODate(),
|
|
125
|
+
});
|
|
126
|
+
break;
|
|
127
|
+
case 'yesterday':
|
|
128
|
+
dateRanges.push({
|
|
129
|
+
startDate: luxon_1.DateTime.local().startOf('day').minus({ days: 1 }).toISODate(),
|
|
130
|
+
endDate: luxon_1.DateTime.local().endOf('day').minus({ days: 1 }).toISODate(),
|
|
131
|
+
});
|
|
132
|
+
break;
|
|
133
|
+
case 'lastCalendarWeek':
|
|
134
|
+
const begginingOfLastWeek = luxon_1.DateTime.local().startOf('week').minus({ weeks: 1 }).toISODate();
|
|
135
|
+
const endOfLastWeek = luxon_1.DateTime.local().endOf('week').minus({ weeks: 1 }).toISODate();
|
|
136
|
+
dateRanges.push({
|
|
137
|
+
startDate: begginingOfLastWeek,
|
|
138
|
+
endDate: endOfLastWeek,
|
|
139
|
+
});
|
|
140
|
+
break;
|
|
141
|
+
case 'lastCalendarMonth':
|
|
142
|
+
const begginingOfLastMonth = luxon_1.DateTime.local()
|
|
143
|
+
.startOf('month')
|
|
144
|
+
.minus({ months: 1 })
|
|
145
|
+
.toISODate();
|
|
146
|
+
const endOfLastMonth = luxon_1.DateTime.local().endOf('month').minus({ months: 1 }).toISODate();
|
|
147
|
+
dateRanges.push({
|
|
148
|
+
startDate: begginingOfLastMonth,
|
|
149
|
+
endDate: endOfLastMonth,
|
|
150
|
+
});
|
|
151
|
+
break;
|
|
152
|
+
case 'last7days':
|
|
153
|
+
dateRanges.push({
|
|
154
|
+
startDate: luxon_1.DateTime.now().minus({ days: 7 }).toISODate(),
|
|
155
|
+
endDate: luxon_1.DateTime.now().toISODate(),
|
|
156
|
+
});
|
|
157
|
+
break;
|
|
158
|
+
case 'last30days':
|
|
159
|
+
dateRanges.push({
|
|
160
|
+
startDate: luxon_1.DateTime.now().minus({ days: 30 }).toISODate(),
|
|
161
|
+
endDate: luxon_1.DateTime.now().toISODate(),
|
|
162
|
+
});
|
|
163
|
+
break;
|
|
164
|
+
case 'custom':
|
|
165
|
+
const start = luxon_1.DateTime.fromISO(this.getNodeParameter('startDate', itemIndex, ''));
|
|
166
|
+
const end = luxon_1.DateTime.fromISO(this.getNodeParameter('endDate', itemIndex, ''));
|
|
167
|
+
if (start > end) {
|
|
168
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Parameter Start: ${start.toISO()} cannot be after End: ${end.toISO()}`);
|
|
169
|
+
}
|
|
170
|
+
dateRanges.push({
|
|
171
|
+
startDate: start.toISODate(),
|
|
172
|
+
endDate: end.toISODate(),
|
|
173
|
+
});
|
|
174
|
+
break;
|
|
175
|
+
default:
|
|
176
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The period '${period}' is not supported, to specify own period use 'custom' option`);
|
|
177
|
+
}
|
|
178
|
+
return dateRanges;
|
|
179
|
+
}
|
|
180
|
+
exports.prepareDateRange = prepareDateRange;
|
|
181
|
+
const defaultStartDate = () => luxon_1.DateTime.now().startOf('day').minus({ days: 8 }).toISO();
|
|
182
|
+
exports.defaultStartDate = defaultStartDate;
|
|
183
|
+
const defaultEndDate = () => luxon_1.DateTime.now().startOf('day').minus({ days: 1 }).toISO();
|
|
184
|
+
exports.defaultEndDate = defaultEndDate;
|
|
185
|
+
function checkDuplicates(data, key, type) {
|
|
186
|
+
const fields = data.map((item) => item[key]);
|
|
187
|
+
const duplicates = fields.filter((field, i) => fields.indexOf(field) !== i);
|
|
188
|
+
const unique = Array.from(new Set(duplicates));
|
|
189
|
+
if (unique.length) {
|
|
190
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `A ${type} is specified more than once (${unique.join(', ')})`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.checkDuplicates = checkDuplicates;
|
|
194
|
+
function sortLoadOptions(data) {
|
|
195
|
+
const returnData = [...data];
|
|
196
|
+
returnData.sort((a, b) => {
|
|
197
|
+
const aName = a.name.toLowerCase();
|
|
198
|
+
const bName = b.name.toLowerCase();
|
|
199
|
+
if (aName < bName) {
|
|
200
|
+
return -1;
|
|
201
|
+
}
|
|
202
|
+
if (aName > bName) {
|
|
203
|
+
return 1;
|
|
204
|
+
}
|
|
205
|
+
return 0;
|
|
206
|
+
});
|
|
207
|
+
return returnData;
|
|
208
|
+
}
|
|
209
|
+
exports.sortLoadOptions = sortLoadOptions;
|
|
210
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../nodes/Google/Analytics/v2/helpers/utils.ts"],"names":[],"mappings":";;;AACA,+CAKsB;AACtB,iCAAiC;AAGjC,SAAgB,QAAQ,CAAC,YAAyB;IACjD,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,EACV,YAAY,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,GACd,IAAI,YAAY,EAAE;QAClB,IAAI,IAAI,KAAK,SAAS,EAAE;YAEvB,SAAS;SACT;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACvB,MAAM,aAAa,GAAgB,EAAE,CAAC;YACtC,MAAM,UAAU,GAAgB,EAAE,CAAC;YACnC,IAAI,UAAU,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACjD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;wBAChD,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBAClD;iBACD;aACD;iBAAM;gBACN,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;oBAChD,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAClD;aACD;YACD,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;SACrD;KACD;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AA/BD,4BA+BC;AAGD,SAAgB,KAAK,CAAC,YAAmB;IACxC,MAAM,QAAQ,GAAsD;QACnE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;QAC1C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;KAC1B,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,EACV,IAAI,EAAE,EAAE,IAAI,EAAE,GACd,IAAI,YAAY,EAAE;QAClB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACtB;IACD,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,OAAa,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnB,CAAC;AAbD,sBAaC;AAED,SAAgB,WAAW,CAAC,QAAqB;IAChD,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,gBAAgB,GAAG,CAAE,QAAQ,CAAC,gBAAkC,IAAI,EAAE,CAAC,CAAC,GAAG,CAChF,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAc,CACjC,CAAC;IACF,MAAM,aAAa,GAAG,CAAE,QAAQ,CAAC,aAA+B,IAAI,EAAE,CAAC,CAAC,GAAG,CAC1E,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAc,CACjC,CAAC;IACF,MAAM,UAAU,GAAkB,EAAE,CAAC;IAEpC,QAAQ,CAAC,IAAsB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC7C,aAAa,CAAC,SAAS,CAAC,GAAI,GAAG,CAAC,eAAiC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAChF,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACvC,UAAU,CAAC,MAAM,CAAC,GAAI,GAAG,CAAC,YAA8B,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACnB,CAAC;AAxBD,kCAwBC;AAED,SAAgB,cAAc,CAAC,UAAuB;IACrD,MAAM,gBAAgB,GAAkB,EAAE,CAAC;IAE3C,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;QAEnC,OAAyB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,QAAQ,MAAM,CAAC,QAAQ,EAAE;gBACxB,KAAK,OAAO;oBACX,SAAS,GAAG,MAAM,CAAC,IAAc,CAAC;oBAClC,OAAO,MAAM,CAAC,IAAI,CAAC;oBACnB,MAAM;gBACP,KAAK,QAAQ;oBACZ,SAAS,GAAG,MAAM,CAAC,IAAc,CAAC;oBAClC,OAAO,MAAM,CAAC,IAAI,CAAC;oBACnB,MAAM;gBACP;oBACC,SAAS,GAAG,MAAM,CAAC,QAAkB,CAAC;aACvC;YACD,OAAO,MAAM,CAAC,QAAQ,CAAC;YAEvB,IAAI,UAAU,KAAK,cAAc,EAAE;gBAClC,MAAM,CAAC,MAAM,GAAI,MAAM,CAAC,MAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrD;YAED,IAAI,UAAU,KAAK,eAAe,EAAE;gBACnC,MAAM,CAAC,KAAK,GAAG;oBACd,CAAC,MAAM,CAAC,SAAmB,CAAC,EAAE,MAAM,CAAC,KAAK;iBAC1C,CAAC;gBACF,OAAO,MAAM,CAAC,SAAS,CAAC;aACxB;YAED,IAAI,UAAU,KAAK,eAAe,EAAE;gBACnC,MAAM,CAAC,SAAS,GAAG;oBAClB,CAAC,MAAM,CAAC,SAAmB,CAAC,EAAE,MAAM,CAAC,SAAS;iBAC9C,CAAC;gBACF,MAAM,CAAC,OAAO,GAAG;oBAChB,CAAC,MAAM,CAAC,SAAmB,CAAC,EAAE,MAAM,CAAC,OAAO;iBAC5C,CAAC;gBACF,OAAO,MAAM,CAAC,SAAS,CAAC;aACxB;YAED,gBAAgB,CAAC,IAAI,CAAC;gBACrB,MAAM,EAAE;oBACP,SAAS;oBACT,CAAC,UAAU,CAAC,EAAE,MAAM;iBACpB;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AACzB,CAAC;AArDD,wCAqDC;AAED,SAAgB,gBAAgB,CAE/B,MAAc,EACd,SAAiB;IAEjB,MAAM,UAAU,GAAkB,EAAE,CAAC;IAErC,QAAQ,MAAM,EAAE;QACf,KAAK,OAAO;YACX,UAAU,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,gBAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;gBACtD,OAAO,EAAE,gBAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE;aACnC,CAAC,CAAC;YACH,MAAM;QACP,KAAK,WAAW;YACf,UAAU,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,gBAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;gBACzE,OAAO,EAAE,gBAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;aACrE,CAAC,CAAC;YACH,MAAM;QACP,KAAK,kBAAkB;YACtB,MAAM,mBAAmB,GAAG,gBAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;YAC7F,MAAM,aAAa,GAAG,gBAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;YACrF,UAAU,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,mBAAmB;gBAC9B,OAAO,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,MAAM;QACP,KAAK,mBAAmB;YACvB,MAAM,oBAAoB,GAAG,gBAAQ,CAAC,KAAK,EAAE;iBAC3C,OAAO,CAAC,OAAO,CAAC;iBAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;iBACpB,SAAS,EAAE,CAAC;YACd,MAAM,cAAc,GAAG,gBAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;YACxF,UAAU,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,oBAAoB;gBAC/B,OAAO,EAAE,cAAc;aACvB,CAAC,CAAC;YACH,MAAM;QACP,KAAK,WAAW;YACf,UAAU,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,gBAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;gBACxD,OAAO,EAAE,gBAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE;aACnC,CAAC,CAAC;YACH,MAAM;QACP,KAAK,YAAY;YAChB,UAAU,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,gBAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE;gBACzD,OAAO,EAAE,gBAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE;aACnC,CAAC,CAAC;YACH,MAAM;QACP,KAAK,QAAQ;YACZ,MAAM,KAAK,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC,CAAC;YAC5F,MAAM,GAAG,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC,CAAC;YAExF,IAAI,KAAK,GAAG,GAAG,EAAE;gBAChB,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,oBAAoB,KAAK,CAAC,KAAK,EAAE,yBAAyB,GAAG,CAAC,KAAK,EAAE,EAAE,CACvE,CAAC;aACF;YAED,UAAU,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;gBAC5B,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE;aACxB,CAAC,CAAC;YAEH,MAAM;QACP;YACC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,eAAe,MAAM,+DAA+D,CACpF,CAAC;KACH;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AA5ED,4CA4EC;AAEM,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAAlF,QAAA,gBAAgB,oBAAkE;AAExF,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,gBAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAAhF,QAAA,cAAc,kBAAkE;AAE7F,SAAgB,eAAe,CAE9B,IAAmB,EACnB,GAAW,EACX,IAAY;IAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAW,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,EAAE;QAClB,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,KAAK,IAAI,iCAAiC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9D,CAAC;KACF;AACF,CAAC;AAfD,0CAeC;AAED,SAAgB,eAAe,CAAC,IAAqD;IACpF,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,KAAK,GAAG,KAAK,EAAE;YAClB,OAAO,CAAC,CAAC,CAAC;SACV;QACD,IAAI,KAAK,GAAG,KAAK,EAAE;YAClB,OAAO,CAAC,CAAC;SACT;QACD,OAAO,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACnB,CAAC;AAfD,0CAeC"}
|