n8n-nodes-siftingio 0.1.0

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.
Files changed (49) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +108 -0
  3. package/dist/credentials/SiftingIoApi.credentials.d.ts +9 -0
  4. package/dist/credentials/SiftingIoApi.credentials.js +44 -0
  5. package/dist/credentials/SiftingIoApi.credentials.js.map +1 -0
  6. package/dist/nodes/SiftingIo/SiftingIo.node.d.ts +4 -0
  7. package/dist/nodes/SiftingIo/SiftingIo.node.js +85 -0
  8. package/dist/nodes/SiftingIo/SiftingIo.node.js.map +1 -0
  9. package/dist/nodes/SiftingIo/SiftingIo.node.json +18 -0
  10. package/dist/nodes/SiftingIo/descriptions/ConvertDescription.d.ts +3 -0
  11. package/dist/nodes/SiftingIo/descriptions/ConvertDescription.js +59 -0
  12. package/dist/nodes/SiftingIo/descriptions/ConvertDescription.js.map +1 -0
  13. package/dist/nodes/SiftingIo/descriptions/DexWalletDescription.d.ts +3 -0
  14. package/dist/nodes/SiftingIo/descriptions/DexWalletDescription.js +55 -0
  15. package/dist/nodes/SiftingIo/descriptions/DexWalletDescription.js.map +1 -0
  16. package/dist/nodes/SiftingIo/descriptions/DiscoveryDescription.d.ts +3 -0
  17. package/dist/nodes/SiftingIo/descriptions/DiscoveryDescription.js +60 -0
  18. package/dist/nodes/SiftingIo/descriptions/DiscoveryDescription.js.map +1 -0
  19. package/dist/nodes/SiftingIo/descriptions/EconomicCalendarDescription.d.ts +3 -0
  20. package/dist/nodes/SiftingIo/descriptions/EconomicCalendarDescription.js +108 -0
  21. package/dist/nodes/SiftingIo/descriptions/EconomicCalendarDescription.js.map +1 -0
  22. package/dist/nodes/SiftingIo/descriptions/FilingDescription.d.ts +3 -0
  23. package/dist/nodes/SiftingIo/descriptions/FilingDescription.js +134 -0
  24. package/dist/nodes/SiftingIo/descriptions/FilingDescription.js.map +1 -0
  25. package/dist/nodes/SiftingIo/descriptions/FilingTextDescription.d.ts +3 -0
  26. package/dist/nodes/SiftingIo/descriptions/FilingTextDescription.js +91 -0
  27. package/dist/nodes/SiftingIo/descriptions/FilingTextDescription.js.map +1 -0
  28. package/dist/nodes/SiftingIo/descriptions/FinancialsDescription.d.ts +3 -0
  29. package/dist/nodes/SiftingIo/descriptions/FinancialsDescription.js +123 -0
  30. package/dist/nodes/SiftingIo/descriptions/FinancialsDescription.js.map +1 -0
  31. package/dist/nodes/SiftingIo/descriptions/HistoricalDescription.d.ts +3 -0
  32. package/dist/nodes/SiftingIo/descriptions/HistoricalDescription.js +142 -0
  33. package/dist/nodes/SiftingIo/descriptions/HistoricalDescription.js.map +1 -0
  34. package/dist/nodes/SiftingIo/descriptions/HoldingsDescription.d.ts +3 -0
  35. package/dist/nodes/SiftingIo/descriptions/HoldingsDescription.js +66 -0
  36. package/dist/nodes/SiftingIo/descriptions/HoldingsDescription.js.map +1 -0
  37. package/dist/nodes/SiftingIo/descriptions/LiveDescription.d.ts +3 -0
  38. package/dist/nodes/SiftingIo/descriptions/LiveDescription.js +141 -0
  39. package/dist/nodes/SiftingIo/descriptions/LiveDescription.js.map +1 -0
  40. package/dist/nodes/SiftingIo/descriptions/MarketDescription.d.ts +3 -0
  41. package/dist/nodes/SiftingIo/descriptions/MarketDescription.js +116 -0
  42. package/dist/nodes/SiftingIo/descriptions/MarketDescription.js.map +1 -0
  43. package/dist/nodes/SiftingIo/shared.d.ts +6 -0
  44. package/dist/nodes/SiftingIo/shared.js +68 -0
  45. package/dist/nodes/SiftingIo/shared.js.map +1 -0
  46. package/dist/nodes/SiftingIo/siftingio.svg +38 -0
  47. package/dist/package.json +65 -0
  48. package/index.js +3 -0
  49. package/package.json +65 -0
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.liveFields = exports.liveOperations = void 0;
4
+ const shared_1 = require("../shared");
5
+ const tradeVenues = [
6
+ { name: 'Commodities', value: 'commodities' },
7
+ { name: 'Crypto', value: 'crypto' },
8
+ { name: 'DEX', value: 'dex' },
9
+ { name: 'Forex', value: 'forex' },
10
+ { name: 'Stocks', value: 'stocks' },
11
+ ];
12
+ const chains = [
13
+ { name: 'Arbitrum', value: 'arbitrum' },
14
+ { name: 'Base', value: 'base' },
15
+ { name: 'BSC', value: 'bsc' },
16
+ { name: 'Ethereum', value: 'eth' },
17
+ { name: 'Polygon', value: 'polygon' },
18
+ ];
19
+ exports.liveOperations = [
20
+ {
21
+ displayName: 'Operation',
22
+ name: 'operation',
23
+ type: 'options',
24
+ noDataExpression: true,
25
+ displayOptions: { show: { resource: ['live'] } },
26
+ options: [
27
+ {
28
+ name: 'Get Last Trade',
29
+ value: 'getTrade',
30
+ action: 'Get the last trade',
31
+ description: 'Most recent trade price and size for a symbol',
32
+ routing: {
33
+ request: {
34
+ method: 'GET',
35
+ url: '=/v1/last/trade/{{$parameter.venue}}/{{$parameter.symbol}}',
36
+ },
37
+ },
38
+ },
39
+ {
40
+ name: 'Get Last Quote',
41
+ value: 'getQuote',
42
+ action: 'Get the last quote',
43
+ description: 'Most recent top-of-book bid/ask for a symbol',
44
+ routing: {
45
+ request: {
46
+ method: 'GET',
47
+ url: '=/v1/last/quote/{{$parameter.venue}}/{{$parameter.symbol}}',
48
+ },
49
+ },
50
+ },
51
+ {
52
+ name: 'Get Snapshot',
53
+ value: 'getSnapshot',
54
+ action: 'Get a full venue snapshot',
55
+ description: 'Full-venue market snapshot, optionally narrowed to specific symbols',
56
+ routing: {
57
+ request: { method: 'GET', url: '=/v1/snapshot/{{$parameter.venue}}' },
58
+ output: (0, shared_1.splitArray)('data'),
59
+ },
60
+ },
61
+ {
62
+ name: 'Get DEX TVL',
63
+ value: 'getTvl',
64
+ action: 'Get DEX total value locked',
65
+ description: 'Total value locked for a DEX pair on a chain',
66
+ routing: {
67
+ request: {
68
+ method: 'GET',
69
+ url: '=/v1/last/tvl/{{$parameter.chain}}/{{$parameter.pair}}',
70
+ },
71
+ },
72
+ },
73
+ ],
74
+ default: 'getQuote',
75
+ },
76
+ ];
77
+ exports.liveFields = [
78
+ {
79
+ displayName: 'Venue',
80
+ name: 'venue',
81
+ type: 'options',
82
+ default: 'crypto',
83
+ description: 'Asset class / venue',
84
+ displayOptions: { show: { resource: ['live'], operation: ['getTrade', 'getQuote'] } },
85
+ options: tradeVenues,
86
+ },
87
+ {
88
+ displayName: 'Venue',
89
+ name: 'venue',
90
+ type: 'options',
91
+ default: 'crypto',
92
+ description: 'Asset class / venue',
93
+ displayOptions: { show: { resource: ['live'], operation: ['getSnapshot'] } },
94
+ options: [
95
+ { name: 'Crypto', value: 'crypto' },
96
+ { name: 'DEX', value: 'dex' },
97
+ { name: 'Forex', value: 'forex' },
98
+ { name: 'Stocks', value: 'stocks' },
99
+ ],
100
+ },
101
+ {
102
+ displayName: 'Symbol',
103
+ name: 'symbol',
104
+ type: 'string',
105
+ required: true,
106
+ default: '',
107
+ placeholder: 'BTCUSD',
108
+ description: 'Instrument symbol (no separators), e.g. BTCUSD, EURUSD, AAPL',
109
+ displayOptions: { show: { resource: ['live'], operation: ['getTrade', 'getQuote'] } },
110
+ },
111
+ {
112
+ displayName: 'Symbols',
113
+ name: 'symbols',
114
+ type: 'string',
115
+ default: '',
116
+ placeholder: 'BTCUSD,ETHUSD,SOLUSD',
117
+ description: 'Optional comma-separated list (up to 250). Omit to return the whole venue.',
118
+ displayOptions: { show: { resource: ['live'], operation: ['getSnapshot'] } },
119
+ routing: { send: { type: 'query', property: 'symbols' } },
120
+ },
121
+ {
122
+ displayName: 'Chain',
123
+ name: 'chain',
124
+ type: 'options',
125
+ default: 'eth',
126
+ description: 'Blockchain network',
127
+ displayOptions: { show: { resource: ['live'], operation: ['getTvl'] } },
128
+ options: chains,
129
+ },
130
+ {
131
+ displayName: 'Pair',
132
+ name: 'pair',
133
+ type: 'string',
134
+ required: true,
135
+ default: '',
136
+ placeholder: 'WETH-USDC',
137
+ description: 'DEX pair as TOKEN0-TOKEN1 (single hyphen)',
138
+ displayOptions: { show: { resource: ['live'], operation: ['getTvl'] } },
139
+ },
140
+ ];
141
+ //# sourceMappingURL=LiveDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveDescription.js","sourceRoot":"","sources":["../../../../nodes/SiftingIo/descriptions/LiveDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const marketOperations: INodeProperties[];
3
+ export declare const marketFields: INodeProperties[];
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.marketFields = exports.marketOperations = void 0;
4
+ const shared_1 = require("../shared");
5
+ exports.marketOperations = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: { show: { resource: ['market'] } },
12
+ options: [
13
+ {
14
+ name: 'List Markets',
15
+ value: 'listMarkets',
16
+ action: 'List trading venues',
17
+ description: 'Reference metadata for global trading venues',
18
+ routing: {
19
+ request: { method: 'GET', url: '=/v1/fnd/markets' },
20
+ output: (0, shared_1.splitArray)('data'),
21
+ },
22
+ },
23
+ {
24
+ name: 'Get Status (All Markets)',
25
+ value: 'getStatusAll',
26
+ action: 'Get open closed status for all markets',
27
+ description: 'Open / closed snapshot for every market',
28
+ routing: {
29
+ request: { method: 'GET', url: '=/v1/fnd/markets/status' },
30
+ output: (0, shared_1.splitArray)('data'),
31
+ },
32
+ },
33
+ {
34
+ name: 'Get Status (One Market)',
35
+ value: 'getStatus',
36
+ action: 'Get open closed status for one market',
37
+ description: 'Open / closed snapshot for a single market',
38
+ routing: {
39
+ request: { method: 'GET', url: '=/v1/fnd/markets/{{$parameter.market}}/status' },
40
+ },
41
+ },
42
+ {
43
+ name: 'Get Hours',
44
+ value: 'getHours',
45
+ action: 'Get weekly trading hours',
46
+ description: 'Weekly trading-hours schedule for a market',
47
+ routing: {
48
+ request: { method: 'GET', url: '=/v1/fnd/markets/{{$parameter.market}}/hours' },
49
+ },
50
+ },
51
+ {
52
+ name: 'Get Calendar',
53
+ value: 'getCalendar',
54
+ action: 'Get holiday calendar',
55
+ description: 'Holiday and half-day calendar for a market',
56
+ routing: {
57
+ request: { method: 'GET', url: '=/v1/fnd/markets/{{$parameter.market}}/calendar' },
58
+ output: (0, shared_1.splitArray)('data'),
59
+ },
60
+ },
61
+ ],
62
+ default: 'getStatusAll',
63
+ },
64
+ ];
65
+ exports.marketFields = [
66
+ {
67
+ displayName: 'Region',
68
+ name: 'region',
69
+ type: 'options',
70
+ default: '',
71
+ description: 'Filter markets by region',
72
+ displayOptions: { show: { resource: ['market'], operation: ['listMarkets', 'getStatusAll'] } },
73
+ options: [
74
+ { name: 'All', value: '' },
75
+ { name: 'Asia-Pacific', value: 'asia_pacific' },
76
+ { name: 'Europe', value: 'europe' },
77
+ { name: 'Global (Forex / Crypto)', value: 'global' },
78
+ { name: 'LATAM', value: 'latam' },
79
+ { name: 'North America', value: 'north_america' },
80
+ ],
81
+ routing: { send: { type: 'query', property: 'region' } },
82
+ },
83
+ {
84
+ displayName: 'Market',
85
+ name: 'market',
86
+ type: 'string',
87
+ required: true,
88
+ default: '',
89
+ placeholder: 'us_equities',
90
+ description: 'Market slug, e.g. us_equities, jp_equities, forex, crypto',
91
+ displayOptions: {
92
+ show: { resource: ['market'], operation: ['getStatus', 'getHours', 'getCalendar'] },
93
+ },
94
+ },
95
+ {
96
+ displayName: 'From',
97
+ name: 'from',
98
+ type: 'string',
99
+ default: '',
100
+ placeholder: '2026-01-01',
101
+ description: 'Inclusive lower bound (YYYY-MM-DD). Defaults to today.',
102
+ displayOptions: { show: { resource: ['market'], operation: ['getCalendar'] } },
103
+ routing: { send: { type: 'query', property: 'from' } },
104
+ },
105
+ {
106
+ displayName: 'To',
107
+ name: 'to',
108
+ type: 'string',
109
+ default: '',
110
+ placeholder: '2026-12-31',
111
+ description: 'Inclusive upper bound (YYYY-MM-DD). Defaults to From + 90 days (max range 730 days).',
112
+ displayOptions: { show: { resource: ['market'], operation: ['getCalendar'] } },
113
+ routing: { send: { type: 'query', property: 'to' } },
114
+ },
115
+ ];
116
+ //# sourceMappingURL=MarketDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarketDescription.js","sourceRoot":"","sources":["../../../../nodes/SiftingIo/descriptions/MarketDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { IN8nRequestOperations, INodeProperties, INodeRequestOutput } from 'n8n-workflow';
2
+ export declare const cursorPagination: IN8nRequestOperations;
3
+ export declare function splitArray(property: string): INodeRequestOutput;
4
+ export declare function returnAllField(resource: string, operation: string | string[]): INodeProperties;
5
+ export declare function limitField(resource: string, operation: string | string[], maxValue: number, defaultValue?: number): INodeProperties;
6
+ export declare function simpleLimitField(resource: string, operation: string | string[], maxValue: number, defaultValue?: number): INodeProperties;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cursorPagination = void 0;
4
+ exports.splitArray = splitArray;
5
+ exports.returnAllField = returnAllField;
6
+ exports.limitField = limitField;
7
+ exports.simpleLimitField = simpleLimitField;
8
+ exports.cursorPagination = {
9
+ pagination: {
10
+ type: 'generic',
11
+ properties: {
12
+ continue: '={{ ($response.body.meta || {}).next_cursor ? true : false }}',
13
+ request: {
14
+ qs: {
15
+ cursor: '={{ $response.body.meta.next_cursor }}',
16
+ },
17
+ },
18
+ },
19
+ },
20
+ };
21
+ function splitArray(property) {
22
+ return {
23
+ postReceive: [
24
+ {
25
+ type: 'rootProperty',
26
+ properties: { property },
27
+ },
28
+ ],
29
+ };
30
+ }
31
+ const toArray = (operation) => Array.isArray(operation) ? operation : [operation];
32
+ function returnAllField(resource, operation) {
33
+ return {
34
+ displayName: 'Return All',
35
+ name: 'returnAll',
36
+ type: 'boolean',
37
+ default: false,
38
+ description: 'Whether to return all results or only up to a given limit',
39
+ displayOptions: { show: { resource: [resource], operation: toArray(operation) } },
40
+ };
41
+ }
42
+ function limitField(resource, operation, maxValue, defaultValue = 50) {
43
+ return {
44
+ displayName: 'Limit',
45
+ name: 'limit',
46
+ type: 'number',
47
+ typeOptions: { minValue: 1, maxValue },
48
+ default: defaultValue,
49
+ description: 'Max number of results to return',
50
+ displayOptions: {
51
+ show: { resource: [resource], operation: toArray(operation), returnAll: [false] },
52
+ },
53
+ routing: { send: { type: 'query', property: 'limit' } },
54
+ };
55
+ }
56
+ function simpleLimitField(resource, operation, maxValue, defaultValue = 50) {
57
+ return {
58
+ displayName: 'Limit',
59
+ name: 'limit',
60
+ type: 'number',
61
+ typeOptions: { minValue: 1, maxValue },
62
+ default: defaultValue,
63
+ description: 'Max number of results to return',
64
+ displayOptions: { show: { resource: [resource], operation: toArray(operation) } },
65
+ routing: { send: { type: 'query', property: 'limit' } },
66
+ };
67
+ }
68
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../nodes/SiftingIo/shared.ts"],"names":[],"mappings":";;;AAyBA,gCASC;AAMD,wCASC;AAGD,gCAqBC;AAGD,4CAiBC;AAnFY,QAAA,gBAAgB,GAA0B;IACtD,UAAU,EAAE;QACX,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACX,QAAQ,EAAE,+DAA+D;YACzE,OAAO,EAAE;gBACR,EAAE,EAAE;oBACH,MAAM,EAAE,wCAAwC;iBAChD;aACD;SACD;KACD;CACD,CAAC;AAGF,SAAgB,UAAU,CAAC,QAAgB;IAC1C,OAAO;QACN,WAAW,EAAE;YACZ;gBACC,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,EAAE,QAAQ,EAAE;aACxB;SACD;KACD,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,SAA4B,EAAY,EAAE,CAC1D,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAGpD,SAAgB,cAAc,CAAC,QAAgB,EAAE,SAA4B;IAC5E,OAAO;QACN,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,2DAA2D;QACxE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE;KACjF,CAAC;AACH,CAAC;AAGD,SAAgB,UAAU,CACzB,QAAgB,EAChB,SAA4B,EAC5B,QAAgB,EAChB,YAAY,GAAG,EAAE;IAEjB,OAAO;QACN,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE;QAItC,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE;YACf,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE;SACjF;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;KACvD,CAAC;AACH,CAAC;AAGD,SAAgB,gBAAgB,CAC/B,QAAgB,EAChB,SAA4B,EAC5B,QAAgB,EAChB,YAAY,GAAG,EAAE;IAEjB,OAAO;QACN,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE;QAEtC,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE;QACjF,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;KACvD,CAAC;AACH,CAAC"}
@@ -0,0 +1,38 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="192" height="192" shape-rendering="geometricPrecision">
2
+ <defs>
3
+ <!-- Each blade: brighter at outer tip, subtly dimmer toward inner apex —
4
+ evokes light catching a folded surface. Very subtle (≤15% variation). -->
5
+ <linearGradient id="gTop" gradientUnits="userSpaceOnUse" x1="16" y1="4" x2="16" y2="16">
6
+ <stop offset="0" stop-color="#ffffff" stop-opacity="0.82"/>
7
+ <stop offset="1" stop-color="#ffffff" stop-opacity="0.74"/>
8
+ </linearGradient>
9
+ <linearGradient id="gRight" gradientUnits="userSpaceOnUse" x1="28" y1="16" x2="16" y2="16">
10
+ <stop offset="0" stop-color="#ffffff" stop-opacity="0.46"/>
11
+ <stop offset="1" stop-color="#ffffff" stop-opacity="0.40"/>
12
+ </linearGradient>
13
+ <linearGradient id="gBottom" gradientUnits="userSpaceOnUse" x1="16" y1="28" x2="16" y2="16">
14
+ <stop offset="0" stop-color="#ffffff" stop-opacity="0.82"/>
15
+ <stop offset="1" stop-color="#ffffff" stop-opacity="0.74"/>
16
+ </linearGradient>
17
+ <linearGradient id="gAmber" gradientUnits="userSpaceOnUse" x1="4" y1="16" x2="16" y2="16">
18
+ <stop offset="0" stop-color="#d3a13a"/>
19
+ <stop offset="1" stop-color="#c19337"/>
20
+ </linearGradient>
21
+ </defs>
22
+
23
+ <rect width="32" height="32" fill="#0f1115"/>
24
+
25
+ <g transform="translate(16 16) scale(1 -1) translate(-16 -16) rotate(-45 16 16)">
26
+ <!-- Top blade -->
27
+ <path d="M 16 16 L 16 4.72 Q 16 4 16.322 4.644 Q 19.312 9.374 21.678 15.356 Q 22 16 21.28 16 Z" fill="url(#gTop)"/>
28
+
29
+ <!-- Right blade -->
30
+ <path d="M 16 16 L 27.28 16 Q 28 16 27.356 16.322 Q 22.626 19.312 16.644 21.678 Q 16 22 16 21.28 Z" fill="url(#gRight)"/>
31
+
32
+ <!-- Bottom blade -->
33
+ <path d="M 16 16 L 16 27.28 Q 16 28 15.678 27.356 Q 12.688 22.626 10.322 16.644 Q 10 16 10.72 16 Z" fill="url(#gBottom)"/>
34
+
35
+ <!-- Left blade (amber focal) -->
36
+ <path d="M 16 16 L 4.72 16 Q 4 16 4.644 15.678 Q 9.374 12.688 15.356 10.322 Q 16 10 16 10.72 Z" fill="url(#gAmber)"/>
37
+ </g>
38
+ </svg>
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "n8n-nodes-siftingio",
3
+ "version": "0.1.0",
4
+ "description": "n8n community node for the SiftingIO financial-data API (SEC filings, XBRL financials, economic calendar, market hours, historical OHLCV, live quotes, currency conversion, DEX wallets).",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "siftingio",
9
+ "sifting",
10
+ "finance",
11
+ "sec",
12
+ "edgar",
13
+ "xbrl",
14
+ "stocks",
15
+ "crypto",
16
+ "forex"
17
+ ],
18
+ "license": "MIT",
19
+ "homepage": "https://sifting.io",
20
+ "author": {
21
+ "name": "SiftingIO",
22
+ "email": "info@sifting.io"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/SiftingIO/n8n-nodes-siftingio.git"
27
+ },
28
+ "engines": {
29
+ "node": ">=20.15"
30
+ },
31
+ "main": "index.js",
32
+ "scripts": {
33
+ "build": "npx rimraf dist && tsc && gulp build:assets",
34
+ "dev": "tsc --watch",
35
+ "format": "prettier nodes credentials --write",
36
+ "lint": "eslint nodes credentials package.json",
37
+ "lintfix": "eslint nodes credentials package.json --fix",
38
+ "prepublishOnly": "npm run build && npm run lint"
39
+ },
40
+ "files": [
41
+ "dist"
42
+ ],
43
+ "n8n": {
44
+ "n8nNodesApiVersion": 1,
45
+ "credentials": [
46
+ "dist/credentials/SiftingIoApi.credentials.js"
47
+ ],
48
+ "nodes": [
49
+ "dist/nodes/SiftingIo/SiftingIo.node.js"
50
+ ]
51
+ },
52
+ "devDependencies": {
53
+ "@typescript-eslint/parser": "^7.18.0",
54
+ "eslint": "^8.57.0",
55
+ "eslint-plugin-n8n-nodes-base": "^1.16.3",
56
+ "gulp": "^5.0.0",
57
+ "n8n-workflow": "2.16.0",
58
+ "prettier": "^3.3.3",
59
+ "rimraf": "^5.0.10",
60
+ "typescript": "^5.6.3"
61
+ },
62
+ "peerDependencies": {
63
+ "n8n-workflow": "2.16.0"
64
+ }
65
+ }
package/index.js ADDED
@@ -0,0 +1,3 @@
1
+ // n8n discovers nodes and credentials through the "n8n" field in package.json.
2
+ // This entry point is intentionally empty.
3
+ module.exports = {};
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "n8n-nodes-siftingio",
3
+ "version": "0.1.0",
4
+ "description": "n8n community node for the SiftingIO financial-data API (SEC filings, XBRL financials, economic calendar, market hours, historical OHLCV, live quotes, currency conversion, DEX wallets).",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "siftingio",
9
+ "sifting",
10
+ "finance",
11
+ "sec",
12
+ "edgar",
13
+ "xbrl",
14
+ "stocks",
15
+ "crypto",
16
+ "forex"
17
+ ],
18
+ "license": "MIT",
19
+ "homepage": "https://sifting.io",
20
+ "author": {
21
+ "name": "SiftingIO",
22
+ "email": "info@sifting.io"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/SiftingIO/n8n-nodes-siftingio.git"
27
+ },
28
+ "engines": {
29
+ "node": ">=20.15"
30
+ },
31
+ "main": "index.js",
32
+ "scripts": {
33
+ "build": "npx rimraf dist && tsc && gulp build:assets",
34
+ "dev": "tsc --watch",
35
+ "format": "prettier nodes credentials --write",
36
+ "lint": "eslint nodes credentials package.json",
37
+ "lintfix": "eslint nodes credentials package.json --fix",
38
+ "prepublishOnly": "npm run build && npm run lint"
39
+ },
40
+ "files": [
41
+ "dist"
42
+ ],
43
+ "n8n": {
44
+ "n8nNodesApiVersion": 1,
45
+ "credentials": [
46
+ "dist/credentials/SiftingIoApi.credentials.js"
47
+ ],
48
+ "nodes": [
49
+ "dist/nodes/SiftingIo/SiftingIo.node.js"
50
+ ]
51
+ },
52
+ "devDependencies": {
53
+ "@typescript-eslint/parser": "^7.18.0",
54
+ "eslint": "^8.57.0",
55
+ "eslint-plugin-n8n-nodes-base": "^1.16.3",
56
+ "gulp": "^5.0.0",
57
+ "n8n-workflow": "2.16.0",
58
+ "prettier": "^3.3.3",
59
+ "rimraf": "^5.0.10",
60
+ "typescript": "^5.6.3"
61
+ },
62
+ "peerDependencies": {
63
+ "n8n-workflow": "2.16.0"
64
+ }
65
+ }