Initial commit: n8n Strike API node

- Add Strike API credentials configuration
- Implement Strike node with 9 resources (Account, Balance, Currency Exchange, Deposit, Invoice, Payment, Payment Method, Payout, Rates)
- Add comprehensive operation descriptions for all resources
- Include CLAUDE.MD documentation
- Set up build configuration with TypeScript, ESLint, and Prettier

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-10 11:00:38 +01:00
commit 5605b9b49a
8925 changed files with 1417728 additions and 0 deletions

View File

@ -0,0 +1,75 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createInputBuffer = createInputBuffer;
function createInputBuffer() {
let buffer = '';
let offset = 0;
let currentLength = 0;
let closed = false;
function ensure(index) {
if (index < offset) {
throw new Error(`${indexOutOfRangeMessage} (index: ${index}, offset: ${offset})`);
}
if (index >= currentLength) {
if (!closed) {
throw new Error(`${indexOutOfRangeMessage} (index: ${index})`);
}
}
}
function push(chunk) {
buffer += chunk;
currentLength += chunk.length;
}
function flush(position) {
if (position > currentLength) {
return;
}
buffer = buffer.substring(position - offset);
offset = position;
}
function charAt(index) {
ensure(index);
return buffer.charAt(index - offset);
}
function charCodeAt(index) {
ensure(index);
return buffer.charCodeAt(index - offset);
}
function substring(start, end) {
ensure(end - 1); // -1 because end is excluded
ensure(start);
return buffer.slice(start - offset, end - offset);
}
function length() {
if (!closed) {
throw new Error('Cannot get length: input is not yet closed');
}
return currentLength;
}
function isEnd(index) {
if (!closed) {
ensure(index);
}
return index >= currentLength;
}
function close() {
closed = true;
}
return {
push,
flush,
charAt,
charCodeAt,
substring,
length,
currentLength: () => currentLength,
currentBufferSize: () => buffer.length,
isEnd,
close
};
}
const indexOutOfRangeMessage = 'Index out of range, please configure a larger buffer size';
//# sourceMappingURL=InputBuffer.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"InputBuffer.js","names":["createInputBuffer","buffer","offset","currentLength","closed","ensure","index","Error","indexOutOfRangeMessage","push","chunk","length","flush","position","substring","charAt","charCodeAt","start","end","slice","isEnd","close","currentBufferSize"],"sources":["../../../../src/streaming/buffer/InputBuffer.ts"],"sourcesContent":["export interface InputBuffer {\n push: (chunk: string) => void\n flush: (position: number) => void\n charAt: (index: number) => string\n charCodeAt: (index: number) => number\n substring: (start: number, end: number) => string\n length: () => number\n currentLength: () => number\n currentBufferSize: () => number\n isEnd: (index: number) => boolean\n close: () => void\n}\n\nexport function createInputBuffer(): InputBuffer {\n let buffer = ''\n let offset = 0\n let currentLength = 0\n let closed = false\n\n function ensure(index: number) {\n if (index < offset) {\n throw new Error(`${indexOutOfRangeMessage} (index: ${index}, offset: ${offset})`)\n }\n\n if (index >= currentLength) {\n if (!closed) {\n throw new Error(`${indexOutOfRangeMessage} (index: ${index})`)\n }\n }\n }\n\n function push(chunk: string) {\n buffer += chunk\n currentLength += chunk.length\n }\n\n function flush(position: number) {\n if (position > currentLength) {\n return\n }\n\n buffer = buffer.substring(position - offset)\n offset = position\n }\n\n function charAt(index: number): string {\n ensure(index)\n\n return buffer.charAt(index - offset)\n }\n\n function charCodeAt(index: number): number {\n ensure(index)\n\n return buffer.charCodeAt(index - offset)\n }\n\n function substring(start: number, end: number): string {\n ensure(end - 1) // -1 because end is excluded\n ensure(start)\n\n return buffer.slice(start - offset, end - offset)\n }\n\n function length(): number {\n if (!closed) {\n throw new Error('Cannot get length: input is not yet closed')\n }\n\n return currentLength\n }\n\n function isEnd(index: number): boolean {\n if (!closed) {\n ensure(index)\n }\n\n return index >= currentLength\n }\n\n function close() {\n closed = true\n }\n\n return {\n push,\n flush,\n charAt,\n charCodeAt,\n substring,\n length,\n currentLength: () => currentLength,\n currentBufferSize: () => buffer.length,\n isEnd,\n close\n }\n}\n\nconst indexOutOfRangeMessage = 'Index out of range, please configure a larger buffer size'\n"],"mappings":";;;;;;AAaO,SAASA,iBAAiBA,CAAA,EAAgB;EAC/C,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIC,MAAM,GAAG,CAAC;EACd,IAAIC,aAAa,GAAG,CAAC;EACrB,IAAIC,MAAM,GAAG,KAAK;EAElB,SAASC,MAAMA,CAACC,KAAa,EAAE;IAC7B,IAAIA,KAAK,GAAGJ,MAAM,EAAE;MAClB,MAAM,IAAIK,KAAK,CAAC,GAAGC,sBAAsB,YAAYF,KAAK,aAAaJ,MAAM,GAAG,CAAC;IACnF;IAEA,IAAII,KAAK,IAAIH,aAAa,EAAE;MAC1B,IAAI,CAACC,MAAM,EAAE;QACX,MAAM,IAAIG,KAAK,CAAC,GAAGC,sBAAsB,YAAYF,KAAK,GAAG,CAAC;MAChE;IACF;EACF;EAEA,SAASG,IAAIA,CAACC,KAAa,EAAE;IAC3BT,MAAM,IAAIS,KAAK;IACfP,aAAa,IAAIO,KAAK,CAACC,MAAM;EAC/B;EAEA,SAASC,KAAKA,CAACC,QAAgB,EAAE;IAC/B,IAAIA,QAAQ,GAAGV,aAAa,EAAE;MAC5B;IACF;IAEAF,MAAM,GAAGA,MAAM,CAACa,SAAS,CAACD,QAAQ,GAAGX,MAAM,CAAC;IAC5CA,MAAM,GAAGW,QAAQ;EACnB;EAEA,SAASE,MAAMA,CAACT,KAAa,EAAU;IACrCD,MAAM,CAACC,KAAK,CAAC;IAEb,OAAOL,MAAM,CAACc,MAAM,CAACT,KAAK,GAAGJ,MAAM,CAAC;EACtC;EAEA,SAASc,UAAUA,CAACV,KAAa,EAAU;IACzCD,MAAM,CAACC,KAAK,CAAC;IAEb,OAAOL,MAAM,CAACe,UAAU,CAACV,KAAK,GAAGJ,MAAM,CAAC;EAC1C;EAEA,SAASY,SAASA,CAACG,KAAa,EAAEC,GAAW,EAAU;IACrDb,MAAM,CAACa,GAAG,GAAG,CAAC,CAAC,EAAC;IAChBb,MAAM,CAACY,KAAK,CAAC;IAEb,OAAOhB,MAAM,CAACkB,KAAK,CAACF,KAAK,GAAGf,MAAM,EAAEgB,GAAG,GAAGhB,MAAM,CAAC;EACnD;EAEA,SAASS,MAAMA,CAAA,EAAW;IACxB,IAAI,CAACP,MAAM,EAAE;MACX,MAAM,IAAIG,KAAK,CAAC,4CAA4C,CAAC;IAC/D;IAEA,OAAOJ,aAAa;EACtB;EAEA,SAASiB,KAAKA,CAACd,KAAa,EAAW;IACrC,IAAI,CAACF,MAAM,EAAE;MACXC,MAAM,CAACC,KAAK,CAAC;IACf;IAEA,OAAOA,KAAK,IAAIH,aAAa;EAC/B;EAEA,SAASkB,KAAKA,CAAA,EAAG;IACfjB,MAAM,GAAG,IAAI;EACf;EAEA,OAAO;IACLK,IAAI;IACJG,KAAK;IACLG,MAAM;IACNC,UAAU;IACVF,SAAS;IACTH,MAAM;IACNR,aAAa,EAAEA,CAAA,KAAMA,aAAa;IAClCmB,iBAAiB,EAAEA,CAAA,KAAMrB,MAAM,CAACU,MAAM;IACtCS,KAAK;IACLC;EACF,CAAC;AACH;AAEA,MAAMb,sBAAsB,GAAG,2DAA2D","ignoreList":[]}

View File

@ -0,0 +1,117 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createOutputBuffer = createOutputBuffer;
var _stringUtils = require("../../utils/stringUtils.js");
function createOutputBuffer(_ref) {
let {
write,
chunkSize,
bufferSize
} = _ref;
let buffer = '';
let offset = 0;
function flushChunks() {
let minSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bufferSize;
while (buffer.length >= minSize + chunkSize) {
const chunk = buffer.substring(0, chunkSize);
write(chunk);
offset += chunkSize;
buffer = buffer.substring(chunkSize);
}
}
function flush() {
flushChunks(0);
if (buffer.length > 0) {
write(buffer);
offset += buffer.length;
buffer = '';
}
}
function push(text) {
buffer += text;
flushChunks();
}
function unshift(text) {
if (offset > 0) {
throw new Error(`Cannot unshift: ${flushedMessage}`);
}
buffer = text + buffer;
flushChunks();
}
function remove(start, end) {
if (start < offset) {
throw new Error(`Cannot remove: ${flushedMessage}`);
}
if (end !== undefined) {
buffer = buffer.substring(0, start - offset) + buffer.substring(end - offset);
} else {
buffer = buffer.substring(0, start - offset);
}
}
function insertAt(index, text) {
if (index < offset) {
throw new Error(`Cannot insert: ${flushedMessage}`);
}
buffer = buffer.substring(0, index - offset) + text + buffer.substring(index - offset);
}
function length() {
return offset + buffer.length;
}
function stripLastOccurrence(textToStrip) {
let stripRemainingText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
const bufferIndex = buffer.lastIndexOf(textToStrip);
if (bufferIndex !== -1) {
if (stripRemainingText) {
buffer = buffer.substring(0, bufferIndex);
} else {
buffer = buffer.substring(0, bufferIndex) + buffer.substring(bufferIndex + textToStrip.length);
}
}
}
function insertBeforeLastWhitespace(textToInsert) {
let bufferIndex = buffer.length; // index relative to the start of the buffer, not taking `offset` into account
if (!(0, _stringUtils.isWhitespace)(buffer, bufferIndex - 1)) {
// no trailing whitespaces
push(textToInsert);
return;
}
while ((0, _stringUtils.isWhitespace)(buffer, bufferIndex - 1)) {
bufferIndex--;
}
if (bufferIndex <= 0) {
throw new Error(`Cannot insert: ${flushedMessage}`);
}
buffer = buffer.substring(0, bufferIndex) + textToInsert + buffer.substring(bufferIndex);
flushChunks();
}
function endsWithIgnoringWhitespace(char) {
let i = buffer.length - 1;
while (i > 0) {
if (char === buffer.charAt(i)) {
return true;
}
if (!(0, _stringUtils.isWhitespace)(buffer, i)) {
return false;
}
i--;
}
return false;
}
return {
push,
unshift,
remove,
insertAt,
length,
flush,
stripLastOccurrence,
insertBeforeLastWhitespace,
endsWithIgnoringWhitespace
};
}
const flushedMessage = 'start of the output is already flushed from the buffer';
//# sourceMappingURL=OutputBuffer.js.map

File diff suppressed because one or more lines are too long