@steerprotocol/app-loader 2.1.1 → 3.0.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.
package/package.json CHANGED
@@ -1,30 +1,43 @@
1
1
  {
2
2
  "name": "@steerprotocol/app-loader",
3
- "version": "2.1.1",
3
+ "version": "3.0.0",
4
4
  "description": "App Loader for Steer Protocol",
5
- "main": "lib/index.js",
6
- "module": "lib/esm/index.js",
7
- "types": "lib/index.d.ts",
5
+ "main": "./lib/index.cjs",
6
+ "module": "./lib/index.mjs",
7
+ "types": "./lib/index.d.ts",
8
+ "engines": {
9
+ "node": ">=18"
10
+ },
8
11
  "exports": {
9
12
  ".": {
10
13
  "types": "./lib/index.d.ts",
11
- "import": "./lib/esm/index.js",
12
- "require": "./lib/index.js"
14
+ "browser": "./lib/browser.mjs",
15
+ "import": "./lib/index.mjs",
16
+ "require": "./lib/index.cjs",
17
+ "default": "./lib/index.mjs"
18
+ },
19
+ "./browser": {
20
+ "types": "./lib/browser.d.mts",
21
+ "import": "./lib/browser.mjs",
22
+ "default": "./lib/browser.mjs"
13
23
  },
14
- "./*": "./lib/*"
24
+ "./node": {
25
+ "types": "./lib/node.d.ts",
26
+ "import": "./lib/node.mjs",
27
+ "require": "./lib/node.cjs",
28
+ "default": "./lib/node.mjs"
29
+ }
15
30
  },
16
31
  "publishConfig": {
17
32
  "access": "public"
18
33
  },
19
34
  "scripts": {
20
- "build": "rm -rf lib && npm run build:cjs && npm run build:esm && npm run build:post",
21
- "build:cjs": "tsc",
22
- "build:esm": "tsc -p tsconfig.esm.json",
23
- "build:post": "echo '{\"type\": \"module\"}' > lib/esm/package.json",
35
+ "build": "tsup",
24
36
  "format": "prettier --write \"src/**/*.(js|ts)\"",
25
37
  "lint": "eslint src --ext .js,.ts",
26
38
  "lint:fix": "eslint src --fix --ext .js,.ts",
27
39
  "test": "jest --config jest.config.js",
40
+ "test:consumers": "node scripts/test-consumers.mjs",
28
41
  "prepare": "npm run build",
29
42
  "prepublishOnly": "npm test && npm run lint",
30
43
  "preversion": "npm run lint",
@@ -56,6 +69,7 @@
56
69
  "@semantic-release/npm": "^13.1.3",
57
70
  "@semantic-release/release-notes-generator": "^14.1.0",
58
71
  "@types/jest": "29.5.6",
72
+ "@types/node": "24.7.2",
59
73
  "@typescript-eslint/eslint-plugin": "6.8.0",
60
74
  "@typescript-eslint/parser": "6.8.0",
61
75
  "eslint": "8.51.0",
@@ -64,6 +78,7 @@
64
78
  "prettier": "3.0.3",
65
79
  "semantic-release": "^24.2.9",
66
80
  "ts-jest": "29.1.1",
81
+ "tsup": "^8.5.0",
67
82
  "typescript": "5.2.2"
68
83
  },
69
84
  "files": [
@@ -71,7 +86,6 @@
71
86
  ],
72
87
  "dependencies": {
73
88
  "ccxt": "^4.1.19",
74
- "ethers": "^6.12.1",
75
- "undici": "^5.26.4"
89
+ "ethers": "^6.12.1"
76
90
  }
77
91
  }
package/lib/Candle.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import { RawTradeData } from './RawTradeData';
2
- export declare class Candle {
3
- timestamp: number;
4
- high: number;
5
- low: number;
6
- open: number;
7
- close: number;
8
- volume: number;
9
- constructor(timestamp: number, high: number, low: number, open: number, close: number, volume: number);
10
- toString(): string;
11
- }
12
- export declare function encodeCandle(candle: Candle): Uint32Array;
13
- export declare function decodeCandle(buffer: Uint32Array): Candle;
14
- export declare function generateCandles(data: RawTradeData[], candleSize: string): Candle[];
package/lib/Candle.js DELETED
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateCandles = exports.decodeCandle = exports.encodeCandle = exports.Candle = void 0;
7
- const timestring_1 = __importDefault(require("./timestring"));
8
- class Candle {
9
- constructor(timestamp, high, low, open, close, volume) {
10
- this.timestamp = timestamp;
11
- this.high = high;
12
- this.low = low;
13
- this.open = open;
14
- this.close = close;
15
- this.volume = volume;
16
- }
17
- toString() {
18
- return JSON.stringify(this);
19
- }
20
- }
21
- exports.Candle = Candle;
22
- function encodeCandle(candle) {
23
- return new Uint32Array([candle.timestamp, candle.high, candle.low, candle.open, candle.close, candle.volume]);
24
- }
25
- exports.encodeCandle = encodeCandle;
26
- function decodeCandle(buffer) {
27
- return new Candle(buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5]);
28
- }
29
- exports.decodeCandle = decodeCandle;
30
- function generateCandles(data, candleSize) {
31
- const candleWidth = (0, timestring_1.default)(candleSize, 'ms', {});
32
- if (data.length === 0) {
33
- throw new Error('Input data is empty');
34
- }
35
- const _data = data.map((point) => {
36
- return Object.assign(Object.assign({}, point), {
37
- // This will convert the timestamp to milliseconds if it's in seconds
38
- timestamp: point.timestamp && String(point.timestamp).length == 10 ? point.timestamp * 1000 : point.timestamp,
39
- });
40
- });
41
- if (_data[0] === undefined || Object.keys(_data[0]).length === 0) {
42
- return [];
43
- }
44
- const ohlcvData = [];
45
- let i = 0;
46
- let currentTimestamp = Math.floor(_data[0].timestamp / candleWidth) * candleWidth;
47
- let open = _data[0].price;
48
- let high = _data[0].price;
49
- let low = _data[0].price;
50
- let close = _data[0].price;
51
- let volume = 0.0;
52
- while (i < _data.length) {
53
- open = close;
54
- high = close;
55
- low = close;
56
- volume = 0.0;
57
- let innerI = i;
58
- while (innerI < _data.length && _data[innerI].timestamp < currentTimestamp + candleWidth) {
59
- open = innerI === 0 ? _data[innerI].price : open;
60
- high = Math.max(high, _data[innerI].price);
61
- low = Math.min(low, _data[innerI].price);
62
- close = _data[innerI].price;
63
- volume += _data[innerI].volume;
64
- innerI++;
65
- }
66
- ohlcvData.push({
67
- timestamp: currentTimestamp,
68
- high,
69
- low,
70
- open,
71
- close,
72
- volume,
73
- });
74
- currentTimestamp += candleWidth;
75
- i = innerI;
76
- }
77
- return ohlcvData;
78
- }
79
- exports.generateCandles = generateCandles;
@@ -1,6 +0,0 @@
1
- export declare class RawTradeData {
2
- timestamp: number;
3
- price: number;
4
- volume: number;
5
- constructor(timestamp: number, price: number, volume: number);
6
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RawTradeData = void 0;
4
- class RawTradeData {
5
- constructor(timestamp, price, volume) {
6
- this.timestamp = timestamp;
7
- this.price = price;
8
- this.volume = volume;
9
- }
10
- }
11
- exports.RawTradeData = RawTradeData;
package/lib/WasmModule.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,14 +0,0 @@
1
- import { RawTradeData } from './RawTradeData';
2
- export declare class Candle {
3
- timestamp: number;
4
- high: number;
5
- low: number;
6
- open: number;
7
- close: number;
8
- volume: number;
9
- constructor(timestamp: number, high: number, low: number, open: number, close: number, volume: number);
10
- toString(): string;
11
- }
12
- export declare function encodeCandle(candle: Candle): Uint32Array;
13
- export declare function decodeCandle(buffer: Uint32Array): Candle;
14
- export declare function generateCandles(data: RawTradeData[], candleSize: string): Candle[];
package/lib/esm/Candle.js DELETED
@@ -1,75 +0,0 @@
1
- import timestring from './timestring';
2
- export class Candle {
3
- timestamp;
4
- high;
5
- low;
6
- open;
7
- close;
8
- volume;
9
- constructor(timestamp, high, low, open, close, volume) {
10
- this.timestamp = timestamp;
11
- this.high = high;
12
- this.low = low;
13
- this.open = open;
14
- this.close = close;
15
- this.volume = volume;
16
- }
17
- toString() {
18
- return JSON.stringify(this);
19
- }
20
- }
21
- export function encodeCandle(candle) {
22
- return new Uint32Array([candle.timestamp, candle.high, candle.low, candle.open, candle.close, candle.volume]);
23
- }
24
- export function decodeCandle(buffer) {
25
- return new Candle(buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5]);
26
- }
27
- export function generateCandles(data, candleSize) {
28
- const candleWidth = timestring(candleSize, 'ms', {});
29
- if (data.length === 0) {
30
- throw new Error('Input data is empty');
31
- }
32
- const _data = data.map((point) => {
33
- return Object.assign(Object.assign({}, point), {
34
- // This will convert the timestamp to milliseconds if it's in seconds
35
- timestamp: point.timestamp && String(point.timestamp).length == 10 ? point.timestamp * 1000 : point.timestamp,
36
- });
37
- });
38
- if (_data[0] === undefined || Object.keys(_data[0]).length === 0) {
39
- return [];
40
- }
41
- const ohlcvData = [];
42
- let i = 0;
43
- let currentTimestamp = Math.floor(_data[0].timestamp / candleWidth) * candleWidth;
44
- let open = _data[0].price;
45
- let high = _data[0].price;
46
- let low = _data[0].price;
47
- let close = _data[0].price;
48
- let volume = 0.0;
49
- while (i < _data.length) {
50
- open = close;
51
- high = close;
52
- low = close;
53
- volume = 0.0;
54
- let innerI = i;
55
- while (innerI < _data.length && _data[innerI].timestamp < currentTimestamp + candleWidth) {
56
- open = innerI === 0 ? _data[innerI].price : open;
57
- high = Math.max(high, _data[innerI].price);
58
- low = Math.min(low, _data[innerI].price);
59
- close = _data[innerI].price;
60
- volume += _data[innerI].volume;
61
- innerI++;
62
- }
63
- ohlcvData.push({
64
- timestamp: currentTimestamp,
65
- high,
66
- low,
67
- open,
68
- close,
69
- volume,
70
- });
71
- currentTimestamp += candleWidth;
72
- i = innerI;
73
- }
74
- return ohlcvData;
75
- }
@@ -1,6 +0,0 @@
1
- export declare class RawTradeData {
2
- timestamp: number;
3
- price: number;
4
- volume: number;
5
- constructor(timestamp: number, price: number, volume: number);
6
- }
@@ -1,10 +0,0 @@
1
- export class RawTradeData {
2
- timestamp;
3
- price;
4
- volume;
5
- constructor(timestamp, price, volume) {
6
- this.timestamp = timestamp;
7
- this.price = price;
8
- this.volume = volume;
9
- }
10
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,18 +0,0 @@
1
- import { Candle } from './Candle';
2
- import { RawTradeData } from './RawTradeData';
3
- import { WasmModule } from './WasmModule';
4
- export { Candle, RawTradeData, WasmModule };
5
- /**
6
- * Load a wasm bundle synchronously. Only accepts the actual binary data.
7
- * @param input - Wasm bundle data
8
- * @param imports - Imports
9
- * @returns
10
- */
11
- export declare function loadWasmSync(input: ArrayBuffer, imports?: {}): WasmModule;
12
- /**
13
- * Load a wasm bundle asynchronously. Accepts the actual binary data or file path.
14
- * @param input - Wasm bundle data or path
15
- * @param imports - Imports
16
- * @returns
17
- */
18
- export declare function loadWasm(input: string | ArrayBuffer, imports?: {}): Promise<WasmModule>;