n8n-nodes-globals-fork-test 1.1.2
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/LICENSE.md +21 -0
- package/NOTICE +36 -0
- package/README.md +52 -0
- package/dist/credentials/CredentialsUtils.d.ts +3 -0
- package/dist/credentials/CredentialsUtils.js +27 -0
- package/dist/credentials/CredentialsUtils.js.map +1 -0
- package/dist/credentials/GlobalConstantsCredentials.credentials.d.ts +11 -0
- package/dist/credentials/GlobalConstantsCredentials.credentials.js +59 -0
- package/dist/credentials/GlobalConstantsCredentials.credentials.js.map +1 -0
- package/dist/nodes/GlobalConstants/GlobalConstants.node.d.ts +5 -0
- package/dist/nodes/GlobalConstants/GlobalConstants.node.js +79 -0
- package/dist/nodes/GlobalConstants/GlobalConstants.node.js.map +1 -0
- package/dist/nodes/GlobalConstants/globals-icon-60px.png +0 -0
- package/package.json +75 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Copyright 2022 n8n
|
|
2
|
+
Copyright 2024 Vasily Maslyukov (upstream author of n8n-nodes-globals)
|
|
3
|
+
Copyright 2026 fork-test maintainer (fork)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
7
|
+
the Software without restriction, including without limitation the rights to
|
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
9
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
10
|
+
so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/NOTICE
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
n8n-nodes-globals-fork-test
|
|
2
|
+
===========================
|
|
3
|
+
|
|
4
|
+
This package is a security-hardened fork of the upstream project
|
|
5
|
+
`n8n-nodes-globals` by Vasily Maslyukov (umanamente).
|
|
6
|
+
|
|
7
|
+
Fork attribution
|
|
8
|
+
----------------
|
|
9
|
+
- Upstream repository : https://github.com/umanamente/n8n-nodes-globals
|
|
10
|
+
- Upstream license : MIT (preserved unchanged; see LICENSE.md)
|
|
11
|
+
- Upstream version : 1.1.0
|
|
12
|
+
- Upstream commit SHA : d3e7a4721b7cc74704a3f2395b9eebb9a2fa2848
|
|
13
|
+
- Fork date : 2026-05-20
|
|
14
|
+
|
|
15
|
+
Relationship to upstream
|
|
16
|
+
------------------------
|
|
17
|
+
This fork preserves the upstream source code of the n8n node and credential
|
|
18
|
+
implementation verbatim. The fork adds:
|
|
19
|
+
|
|
20
|
+
- Hardened build / dependency configuration (.npmrc, pinned devDependencies,
|
|
21
|
+
removed gulp toolchain, replaced with a minimal Node script).
|
|
22
|
+
- Lockfile-pinned, audit-validated dependency tree.
|
|
23
|
+
- CI workflows for build, test, signature verification, SBOM generation,
|
|
24
|
+
and SAST (CodeQL).
|
|
25
|
+
- Dependabot configuration for controlled dependency updates.
|
|
26
|
+
- Additional documentation covering security posture, deployment, and
|
|
27
|
+
architecture.
|
|
28
|
+
|
|
29
|
+
No functional change has been made to the n8n node behaviour relative to
|
|
30
|
+
upstream 1.1.0.
|
|
31
|
+
|
|
32
|
+
License
|
|
33
|
+
-------
|
|
34
|
+
All rights and copyrights of the upstream authors are preserved.
|
|
35
|
+
The fork is distributed under the same MIT license terms as upstream.
|
|
36
|
+
See LICENSE.md for the full license text.
|
package/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# n8n-nodes-globals-fork-test
|
|
2
|
+
|
|
3
|
+
> Security-hardened fork of [`n8n-nodes-globals`](https://github.com/umanamente/n8n-nodes-globals) by Vasily Maslyukov ([umanamente](https://github.com/umanamente)).
|
|
4
|
+
>
|
|
5
|
+
> Forked from upstream commit [`d3e7a47`](https://github.com/umanamente/n8n-nodes-globals/commit/d3e7a4721b7cc74704a3f2395b9eebb9a2fa2848) (v1.1.0).
|
|
6
|
+
> **The n8n node behaviour is unchanged** — this fork only hardens the build, dependency, and release pipeline.
|
|
7
|
+
|
|
8
|
+
This is an n8n community node. It lets you create global constants that can be used in any workflow.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
In your n8n instance, install the package using the community-node installation flow:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
n8n-nodes-globals-fork-test
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
See the [official n8n community-nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
This node uses an N8N Credential to store the global variables.
|
|
23
|
+
|
|
24
|
+
1. Add the **Global Constants** node to your workflow.
|
|
25
|
+
2. In the node configuration, either select an existing credential or create a new one.
|
|
26
|
+
3. Select the format for your global constants:
|
|
27
|
+
- **Key-value pairs** — one `name=value` per line
|
|
28
|
+
- **JSON** — provide constants as a JSON object
|
|
29
|
+
4. Add your constants according to the chosen format.
|
|
30
|
+
5. Reference the global constants downstream in your workflow.
|
|
31
|
+
|
|
32
|
+
## Why this fork exists
|
|
33
|
+
|
|
34
|
+
This fork was created to:
|
|
35
|
+
|
|
36
|
+
- Lock the dependency tree to specific, audited versions (no floating ranges).
|
|
37
|
+
- Block lifecycle scripts during installation as a defence against malicious devDependency hooks.
|
|
38
|
+
- Add reproducible CI: build, test, `npm audit signatures`, `lockfile-lint`, SBOM, SAST.
|
|
39
|
+
- Provide an SBOM (CycloneDX) describing every dependency.
|
|
40
|
+
- Allow controlled updates via Dependabot rather than untrusted upstream releases.
|
|
41
|
+
|
|
42
|
+
See [`docs/security.md`](docs/security.md) for the full hardening details.
|
|
43
|
+
|
|
44
|
+
## Relationship to upstream
|
|
45
|
+
|
|
46
|
+
The maintainers of this fork are **not affiliated** with the upstream author. All credit for the n8n node implementation goes to [Vasily Maslyukov](https://github.com/umanamente).
|
|
47
|
+
|
|
48
|
+
This fork tracks upstream selectively: bugfix and security patches are merged after manual review; speculative or feature changes that expand the dependency surface may be deferred or skipped.
|
|
49
|
+
|
|
50
|
+
## License
|
|
51
|
+
|
|
52
|
+
MIT — see [`LICENSE.md`](LICENSE.md) and [`NOTICE`](NOTICE).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.splitConstants = void 0;
|
|
4
|
+
function splitConstants(globalConstantsMultiline) {
|
|
5
|
+
try {
|
|
6
|
+
const jsonObj = JSON.parse(globalConstantsMultiline.trim());
|
|
7
|
+
return jsonObj;
|
|
8
|
+
}
|
|
9
|
+
catch (e) {
|
|
10
|
+
const lines = globalConstantsMultiline.split('\n');
|
|
11
|
+
var retArr = {};
|
|
12
|
+
for (const line of lines) {
|
|
13
|
+
const constant = line.trim();
|
|
14
|
+
if (!constant) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (!constant.includes('=')) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const [name, ...value] = constant.split('=');
|
|
21
|
+
retArr[name.trim()] = value.join('=').trim();
|
|
22
|
+
}
|
|
23
|
+
return retArr;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.splitConstants = splitConstants;
|
|
27
|
+
//# sourceMappingURL=CredentialsUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CredentialsUtils.js","sourceRoot":"","sources":["../../credentials/CredentialsUtils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,wBAAgC;IAG7D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,OAAoC,CAAC;IAC9C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAEX,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM,GAA8B,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AA1BD,wCA0BC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ICredentialType, INodeProperties } from "n8n-workflow";
|
|
2
|
+
export declare const GLOBAL_CONSTANTS_CREDENTIALS_NAME = "globalConstantsApi";
|
|
3
|
+
export declare class GlobalConstantsCredentials implements ICredentialType {
|
|
4
|
+
name: string;
|
|
5
|
+
displayName: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
}
|
|
8
|
+
export interface GlobalConstantsCredentialsData {
|
|
9
|
+
format: 'string' | 'json';
|
|
10
|
+
globalConstants: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalConstantsCredentials = exports.GLOBAL_CONSTANTS_CREDENTIALS_NAME = void 0;
|
|
4
|
+
exports.GLOBAL_CONSTANTS_CREDENTIALS_NAME = 'globalConstantsApi';
|
|
5
|
+
class GlobalConstantsCredentials {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.name = exports.GLOBAL_CONSTANTS_CREDENTIALS_NAME;
|
|
8
|
+
this.displayName = 'Global Constants';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'Format',
|
|
12
|
+
name: 'format',
|
|
13
|
+
type: 'options',
|
|
14
|
+
options: [
|
|
15
|
+
{
|
|
16
|
+
name: 'Key-value pairs',
|
|
17
|
+
value: 'string',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'JSON',
|
|
21
|
+
value: 'json',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
default: 'string',
|
|
25
|
+
description: 'Choose the format for your global constants',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
displayName: 'Global Constants',
|
|
29
|
+
name: 'globalConstants',
|
|
30
|
+
type: 'string',
|
|
31
|
+
default: '',
|
|
32
|
+
placeholder: 'name1=value1\nname2=value2',
|
|
33
|
+
hint: 'Use "name=value" format. Separate multiple constants with a new line.',
|
|
34
|
+
typeOptions: {
|
|
35
|
+
rows: 10,
|
|
36
|
+
},
|
|
37
|
+
displayOptions: {
|
|
38
|
+
show: {
|
|
39
|
+
format: ['string'],
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
displayName: 'Global Constants',
|
|
45
|
+
name: 'globalConstants',
|
|
46
|
+
type: 'json',
|
|
47
|
+
default: '{}',
|
|
48
|
+
hint: 'Provide your constants as a JSON object. Example: { "obj": { "key": "value" }, "list": ["value1", "value2"] }',
|
|
49
|
+
displayOptions: {
|
|
50
|
+
show: {
|
|
51
|
+
format: ['json'],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.GlobalConstantsCredentials = GlobalConstantsCredentials;
|
|
59
|
+
//# sourceMappingURL=GlobalConstantsCredentials.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalConstantsCredentials.credentials.js","sourceRoot":"","sources":["../../credentials/GlobalConstantsCredentials.credentials.ts"],"names":[],"mappings":";;;AAEa,QAAA,iCAAiC,GAAG,oBAAoB,CAAC;AAGtE,MAAa,0BAA0B;IAAvC;QACC,SAAI,GAAG,yCAAiC,CAAC;QAEzC,gBAAW,GAAG,kBAAkB,CAAC;QAEjC,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,iBAAiB;wBACvB,KAAK,EAAE,QAAQ;qBACf;oBACD;wBACC,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,MAAM;qBACb;iBACD;gBACD,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,6CAA6C;aAC1D;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,4BAA4B;gBACzC,IAAI,EAAE,uEAAuE;gBAC7E,WAAW,EAAE;oBACZ,IAAI,EAAE,EAAE;iBACR;gBACD,cAAc,EAAE;oBACf,IAAI,EAAE;wBACL,MAAM,EAAE,CAAC,QAAQ,CAAC;qBAClB;iBACD;aACD;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,+GAA+G;gBACrH,cAAc,EAAE;oBACf,IAAI,EAAE;wBACL,MAAM,EAAE,CAAC,MAAM,CAAC;qBAChB;iBACD;aACD;SACD,CAAC;IACH,CAAC;CAAA;AApDD,gEAoDC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class GlobalConstants implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalConstants = void 0;
|
|
4
|
+
const GlobalConstantsCredentials_credentials_1 = require("../../credentials/GlobalConstantsCredentials.credentials");
|
|
5
|
+
const CredentialsUtils_1 = require("../../credentials/CredentialsUtils");
|
|
6
|
+
class GlobalConstants {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.description = {
|
|
9
|
+
displayName: 'Global Constants',
|
|
10
|
+
name: 'globalConstants',
|
|
11
|
+
icon: 'file:globals-icon-60px.png',
|
|
12
|
+
group: ['transform', 'output'],
|
|
13
|
+
version: 1,
|
|
14
|
+
description: 'Global Constants',
|
|
15
|
+
subtitle: '={{$parameter["resource"]}}',
|
|
16
|
+
defaults: {
|
|
17
|
+
name: 'Global Constants',
|
|
18
|
+
},
|
|
19
|
+
inputs: ['main'],
|
|
20
|
+
outputs: ['main'],
|
|
21
|
+
credentials: [
|
|
22
|
+
{
|
|
23
|
+
name: GlobalConstantsCredentials_credentials_1.GLOBAL_CONSTANTS_CREDENTIALS_NAME,
|
|
24
|
+
required: true,
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
properties: [
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Put All Constants in One Key',
|
|
30
|
+
name: 'putAllInOneKey',
|
|
31
|
+
type: "boolean",
|
|
32
|
+
default: true,
|
|
33
|
+
description: "Whether to put all constants in one key or use separate keys for each constant",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
displayName: "Constants Key Name",
|
|
37
|
+
name: "constantsKeyName",
|
|
38
|
+
type: "string",
|
|
39
|
+
default: "constants",
|
|
40
|
+
displayOptions: {
|
|
41
|
+
show: {
|
|
42
|
+
putAllInOneKey: [true],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
async execute() {
|
|
50
|
+
const credentials = await this.getCredentials(GlobalConstantsCredentials_credentials_1.GLOBAL_CONSTANTS_CREDENTIALS_NAME);
|
|
51
|
+
const globalConstants = (0, CredentialsUtils_1.splitConstants)(credentials.globalConstants);
|
|
52
|
+
var constantsData = {};
|
|
53
|
+
const putAllInOneKey = this.getNodeParameter('putAllInOneKey', 0);
|
|
54
|
+
if (putAllInOneKey) {
|
|
55
|
+
const constantsKeyName = this.getNodeParameter('constantsKeyName', 0);
|
|
56
|
+
constantsData = {
|
|
57
|
+
[constantsKeyName]: globalConstants,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
constantsData = globalConstants;
|
|
62
|
+
}
|
|
63
|
+
const returnData = this.getInputData();
|
|
64
|
+
if (returnData.length === 0) {
|
|
65
|
+
returnData.push({ json: constantsData });
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
returnData.forEach((item) => {
|
|
69
|
+
item.json = {
|
|
70
|
+
...item.json,
|
|
71
|
+
...constantsData,
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return [returnData];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.GlobalConstants = GlobalConstants;
|
|
79
|
+
//# sourceMappingURL=GlobalConstants.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalConstants.node.js","sourceRoot":"","sources":["../../../nodes/GlobalConstants/GlobalConstants.node.ts"],"names":[],"mappings":";;;AACA,qHAA6I;AAC7I,yEAAoE;AAGpE,MAAa,eAAe;IAA5B;QACE,gBAAW,GAAyB;YAClC,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,iBAAiB;YAEvB,IAAI,EAAE,4BAA4B;YAClC,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC9B,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,6BAA6B;YACvC,QAAQ,EAAE;gBACR,IAAI,EAAE,kBAAkB;aACzB;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,0EAAiC;oBACvC,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,UAAU,EAAE;gBACV;oBACE,WAAW,EAAE,8BAA8B;oBAC3C,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,gFAAgF;iBAC9F;gBACD;oBACE,WAAW,EAAE,oBAAoB;oBACjC,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,WAAW;oBACpB,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,cAAc,EAAE,CAAC,IAAI,CAAC;yBACvB;qBACF;iBACF;aACF;SACF,CAAC;IAsCJ,CAAC;IApCC,KAAK,CAAC,OAAO;QACX,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,0EAAiC,CAA8C,CAAC;QAC9H,MAAM,eAAe,GAAG,IAAA,iCAAc,EAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAEpE,IAAI,aAAa,GAA0B,EAAE,CAAC;QAE9C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAY,CAAC;QAE7E,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAW,CAAC;YAChF,aAAa,GAAG;gBACd,CAAC,gBAAgB,CAAC,EAAE,eAAe;aACpC,CAAC;QACJ,CAAC;aAAM,CAAC;YAEN,aAAa,GAAG,eAAe,CAAC;QAElC,CAAC;QAGD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAE5B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YAEN,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,IAAI,CAAC,IAAI,GAAG;oBACV,GAAG,IAAI,CAAC,IAAI;oBACZ,GAAG,aAAa;iBACjB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;CACF;AA/ED,0CA+EC"}
|
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-globals-fork-test",
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"description": "Security-hardened fork of n8n-nodes-globals — global constants node for n8n",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"n8n-community-node-package",
|
|
8
|
+
"n8n",
|
|
9
|
+
"globals",
|
|
10
|
+
"constants"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"author": {
|
|
14
|
+
"name": "fork-test maintainer"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": ""
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=20.0.0",
|
|
22
|
+
"npm": ">=10.0.0"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist",
|
|
26
|
+
"LICENSE.md",
|
|
27
|
+
"NOTICE",
|
|
28
|
+
"README.md"
|
|
29
|
+
],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc && node scripts/copy-icons.mjs",
|
|
32
|
+
"dev": "tsc --watch",
|
|
33
|
+
"format": "prettier nodes credentials --write",
|
|
34
|
+
"lint": "eslint nodes credentials package.json",
|
|
35
|
+
"lintfix": "eslint nodes credentials package.json --fix",
|
|
36
|
+
"test": "jest",
|
|
37
|
+
"test:coverage": "jest --coverage",
|
|
38
|
+
"audit:signatures": "npm audit signatures",
|
|
39
|
+
"audit:lockfile": "lockfile-lint --path package-lock.json --allowed-hosts npm --validate-https --validate-integrity",
|
|
40
|
+
"audit:pkg": "publint",
|
|
41
|
+
"sbom": "cyclonedx-npm --output-format JSON --output-file sbom.json --omit dev",
|
|
42
|
+
"prepublishOnly": "npm run build && npm run lint && npm run test && npm run audit:lockfile && npm run audit:pkg"
|
|
43
|
+
},
|
|
44
|
+
"n8n": {
|
|
45
|
+
"n8nNodesApiVersion": 1,
|
|
46
|
+
"credentials": [
|
|
47
|
+
"dist/credentials/GlobalConstantsCredentials.credentials.js"
|
|
48
|
+
],
|
|
49
|
+
"nodes": [
|
|
50
|
+
"dist/nodes/GlobalConstants/GlobalConstants.node.js"
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@cyclonedx/cyclonedx-npm": "4.2.1",
|
|
55
|
+
"@types/jest": "29.5.14",
|
|
56
|
+
"@typescript-eslint/parser": "6.20.0",
|
|
57
|
+
"eslint": "8.57.0",
|
|
58
|
+
"eslint-plugin-n8n-nodes-base": "1.16.1",
|
|
59
|
+
"jest": "29.7.0",
|
|
60
|
+
"lockfile-lint": "5.0.0",
|
|
61
|
+
"n8n-workflow": "2.20.3",
|
|
62
|
+
"prettier": "3.3.3",
|
|
63
|
+
"publint": "0.3.21",
|
|
64
|
+
"ts-jest": "29.4.5",
|
|
65
|
+
"typescript": "5.3.3"
|
|
66
|
+
},
|
|
67
|
+
"peerDependencies": {
|
|
68
|
+
"n8n-workflow": ">=1.0.0"
|
|
69
|
+
},
|
|
70
|
+
"overrides": {
|
|
71
|
+
"@typescript-eslint/typescript-estree": {
|
|
72
|
+
"minimatch": "9.0.9"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|