n8n-nodes-base 2.26.2 → 2.26.4
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/node-definitions/.nodes-hash +1 -1
- package/dist/node-definitions/nodes/n8n-nodes-base/googleAnalytics/v2/resource_report/operation_get.ts +2 -2
- package/dist/node-definitions/nodes/n8n-nodes-base/microsoftOutlook/v2/resource_event/operation_create.ts +2 -2
- package/dist/nodes/Compression/decompress/BoundedUnzip.d.ts +9 -2
- package/dist/nodes/Compression/decompress/BoundedUnzip.d.ts.map +1 -1
- package/dist/nodes/Compression/decompress/BoundedUnzip.js +41 -68
- package/dist/nodes/Compression/decompress/BoundedUnzip.js.map +1 -1
- package/dist/typecheck.tsbuildinfo +1 -1
- package/dist/types/nodes.json +2 -2
- package/package.json +8 -8
- package/dist/nodes/Compression/decompress/ZipEntryDecompressor.d.ts +0 -19
- package/dist/nodes/Compression/decompress/ZipEntryDecompressor.d.ts.map +0 -1
- package/dist/nodes/Compression/decompress/ZipEntryDecompressor.js +0 -60
- package/dist/nodes/Compression/decompress/ZipEntryDecompressor.js.map +0 -1
- package/dist/nodes/Compression/decompress/ZipOutputAccumulator.d.ts +0 -20
- package/dist/nodes/Compression/decompress/ZipOutputAccumulator.d.ts.map +0 -1
- package/dist/nodes/Compression/decompress/ZipOutputAccumulator.js +0 -63
- package/dist/nodes/Compression/decompress/ZipOutputAccumulator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
63f19c027e8de462a70bda9b6ec49f0433f5aaac4c53336a9a0fa7696c26d5af
|
|
@@ -34,13 +34,13 @@ export type GoogleAnalyticsV2ReportGetParams = {
|
|
|
34
34
|
/**
|
|
35
35
|
* Start
|
|
36
36
|
* @displayOptions.show { dateRange: ["custom"], propertyType: ["ga4"] }
|
|
37
|
-
* @default 2026-06-
|
|
37
|
+
* @default 2026-06-10T00:00:00.000+00:00
|
|
38
38
|
*/
|
|
39
39
|
startDate?: string | Expression<string>;
|
|
40
40
|
/**
|
|
41
41
|
* End
|
|
42
42
|
* @displayOptions.show { dateRange: ["custom"], propertyType: ["ga4"] }
|
|
43
|
-
* @default 2026-06-
|
|
43
|
+
* @default 2026-06-17T00:00:00.000+00:00
|
|
44
44
|
*/
|
|
45
45
|
endDate?: string | Expression<string>;
|
|
46
46
|
/**
|
|
@@ -24,12 +24,12 @@ export type MicrosoftOutlookV2EventCreateParams = {
|
|
|
24
24
|
subject: string | Expression<string>;
|
|
25
25
|
/**
|
|
26
26
|
* Start
|
|
27
|
-
* @default 2026-06-
|
|
27
|
+
* @default 2026-06-18T10:03:01.269+00:00
|
|
28
28
|
*/
|
|
29
29
|
startDateTime?: string | Expression<string>;
|
|
30
30
|
/**
|
|
31
31
|
* End
|
|
32
|
-
* @default 2026-06-
|
|
32
|
+
* @default 2026-06-18T10:33:01.269+00:00
|
|
33
33
|
*/
|
|
34
34
|
endDateTime?: string | Expression<string>;
|
|
35
35
|
/**
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Decompress a zip archive with upper bounds on total output size
|
|
3
|
-
*
|
|
2
|
+
* Decompress a zip archive with upper bounds on total output size and number of
|
|
3
|
+
* entries.
|
|
4
|
+
*
|
|
5
|
+
* Extraction is driven by the archive's central directory, the authoritative
|
|
6
|
+
* list of members, so only the archive's own files are returned. Entries that
|
|
7
|
+
* happen to live inside a stored member (office documents such as xlsx/docx are
|
|
8
|
+
* themselves zip archives) are never surfaced. The size and entry-count limits
|
|
9
|
+
* are enforced from the central directory metadata, before any entry is
|
|
10
|
+
* inflated.
|
|
4
11
|
*/
|
|
5
12
|
export declare function boundedUnzip(data: Buffer, maxOutputSize: number, maxEntries: number): Promise<Record<string, Buffer>>;
|
|
6
13
|
//# sourceMappingURL=BoundedUnzip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundedUnzip.d.ts","sourceRoot":"","sources":["../../../../nodes/Compression/decompress/BoundedUnzip.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BoundedUnzip.d.ts","sourceRoot":"","sources":["../../../../nodes/Compression/decompress/BoundedUnzip.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CACjC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA2CjC"}
|
|
@@ -36,83 +36,56 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.boundedUnzip = boundedUnzip;
|
|
37
37
|
const fflate = __importStar(require("fflate"));
|
|
38
38
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
39
|
-
const
|
|
40
|
-
const ZipEntryDecompressor_1 = require("./ZipEntryDecompressor");
|
|
41
|
-
const ZipOutputAccumulator_1 = require("./ZipOutputAccumulator");
|
|
39
|
+
const DecompressedSizeExceededError_1 = require("./DecompressedSizeExceededError");
|
|
42
40
|
/**
|
|
43
|
-
* Decompress a zip archive with upper bounds on total output size
|
|
44
|
-
*
|
|
41
|
+
* Decompress a zip archive with upper bounds on total output size and number of
|
|
42
|
+
* entries.
|
|
43
|
+
*
|
|
44
|
+
* Extraction is driven by the archive's central directory, the authoritative
|
|
45
|
+
* list of members, so only the archive's own files are returned. Entries that
|
|
46
|
+
* happen to live inside a stored member (office documents such as xlsx/docx are
|
|
47
|
+
* themselves zip archives) are never surfaced. The size and entry-count limits
|
|
48
|
+
* are enforced from the central directory metadata, before any entry is
|
|
49
|
+
* inflated.
|
|
45
50
|
*/
|
|
46
51
|
async function boundedUnzip(data, maxOutputSize, maxEntries) {
|
|
47
|
-
validateZipArchive(data);
|
|
48
52
|
return await new Promise((resolve, reject) => {
|
|
49
|
-
|
|
50
|
-
let
|
|
51
|
-
let
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return;
|
|
62
|
-
|
|
63
|
-
|
|
53
|
+
let entryCount = 0;
|
|
54
|
+
let totalSize = 0;
|
|
55
|
+
let limitError;
|
|
56
|
+
const filter = (file) => {
|
|
57
|
+
if (limitError)
|
|
58
|
+
return false;
|
|
59
|
+
// ZIP spec mandates '/' as path separator; a trailing slash marks a directory
|
|
60
|
+
if (file.name.endsWith('/'))
|
|
61
|
+
return false;
|
|
62
|
+
entryCount++;
|
|
63
|
+
if (entryCount > maxEntries) {
|
|
64
|
+
limitError = new n8n_workflow_1.UserError(`The archive contains more than ${maxEntries} entries`);
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
totalSize += file.originalSize;
|
|
68
|
+
if (totalSize > maxOutputSize) {
|
|
69
|
+
limitError = new DecompressedSizeExceededError_1.DecompressedSizeExceededError(maxOutputSize);
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
64
73
|
};
|
|
65
|
-
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
// ZIP spec mandates '/' as path separator on all platforms
|
|
69
|
-
if (fileOrDirectory.name.endsWith('/'))
|
|
70
|
-
return;
|
|
71
|
-
const entryResult = zipOutputAccumulator.addEntry(fileOrDirectory.name);
|
|
72
|
-
if (!entryResult.ok) {
|
|
73
|
-
rejectOnce(entryResult.error);
|
|
74
|
+
fflate.unzip(data, { filter }, (error, unzipped) => {
|
|
75
|
+
if (limitError) {
|
|
76
|
+
reject(limitError);
|
|
74
77
|
return;
|
|
75
78
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
new ZipEntryDecompressor_1.ZipEntryDecompressor(fileOrDirectory, writeChunk, zipOutputAccumulator, {
|
|
79
|
-
isSettled: () => isSettled,
|
|
80
|
-
onFinish: () => {
|
|
81
|
-
pendingEntries--;
|
|
82
|
-
resolveIfDone();
|
|
83
|
-
},
|
|
84
|
-
onError: rejectOnce,
|
|
85
|
-
}).start();
|
|
86
|
-
});
|
|
87
|
-
unzipper.register(fflate.AsyncUnzipInflate);
|
|
88
|
-
try {
|
|
89
|
-
(0, FeedInChunks_1.feedInChunks)({
|
|
90
|
-
data,
|
|
91
|
-
push: (slice, isFinal) => {
|
|
92
|
-
unzipper.push(slice, isFinal);
|
|
93
|
-
},
|
|
94
|
-
shouldStop: () => isSettled || zipOutputAccumulator.isLimitExceeded,
|
|
95
|
-
});
|
|
96
|
-
inputFinished = true;
|
|
97
|
-
if (zipOutputAccumulator.isLimitExceeded) {
|
|
98
|
-
rejectOnce(zipOutputAccumulator.exceededError);
|
|
79
|
+
if (error) {
|
|
80
|
+
reject((0, n8n_workflow_1.ensureError)(error));
|
|
99
81
|
return;
|
|
100
82
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
83
|
+
const result = {};
|
|
84
|
+
for (const [name, bytes] of Object.entries(unzipped)) {
|
|
85
|
+
result[name] = Buffer.from(bytes);
|
|
86
|
+
}
|
|
87
|
+
resolve(result);
|
|
88
|
+
});
|
|
106
89
|
});
|
|
107
90
|
}
|
|
108
|
-
function validateZipArchive(data) {
|
|
109
|
-
try {
|
|
110
|
-
// Parse archive metadata without inflating entries; the streaming reader
|
|
111
|
-
// does not validate the central directory before resolving.
|
|
112
|
-
void fflate.unzipSync(data, { filter: () => false });
|
|
113
|
-
}
|
|
114
|
-
catch (error) {
|
|
115
|
-
throw (0, n8n_workflow_1.ensureError)(error);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
91
|
//# sourceMappingURL=BoundedUnzip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundedUnzip.js","sourceRoot":"","sources":["../../../../nodes/Compression/decompress/BoundedUnzip.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"BoundedUnzip.js","sourceRoot":"","sources":["../../../../nodes/Compression/decompress/BoundedUnzip.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,oCA+CC;AA/DD,+CAAiC;AACjC,+CAAsD;AAEtD,mFAAgF;AAEhF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY,CACjC,IAAY,EACZ,aAAqB,EACrB,UAAkB;IAElB,OAAO,MAAM,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpE,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,UAAiC,CAAC;QAEtC,MAAM,MAAM,GAAG,CAAC,IAA0B,EAAW,EAAE;YACtD,IAAI,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC7B,8EAA8E;YAC9E,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE1C,UAAU,EAAE,CAAC;YACb,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;gBAC7B,UAAU,GAAG,IAAI,wBAAS,CAAC,kCAAkC,UAAU,UAAU,CAAC,CAAC;gBACnF,OAAO,KAAK,CAAC;YACd,CAAC;YAED,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC;YAC/B,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;gBAC/B,UAAU,GAAG,IAAI,6DAA6B,CAAC,aAAa,CAAC,CAAC;gBAC9D,OAAO,KAAK,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClD,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,UAAU,CAAC,CAAC;gBACnB,OAAO;YACR,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
|