@oceanprotocol/lib 7.0.0-next.9 → 8.0.1
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/lib.cjs +4 -4
- package/dist/lib.module.mjs +4 -4
- package/dist/lib.umd.js +4 -4
- package/dist/types/@types/Provider.d.ts +16 -0
- package/dist/types/services/providers/BaseProvider.d.ts +12 -5
- package/dist/types/services/providers/HttpProvider.d.ts +3 -3
- package/dist/types/services/providers/P2pProvider.d.ts +27 -8
- package/package.json +3 -3
|
@@ -118,3 +118,19 @@ export declare const PROTOCOL_COMMANDS: {
|
|
|
118
118
|
GET_LOGS: string;
|
|
119
119
|
JOBS: string;
|
|
120
120
|
};
|
|
121
|
+
export interface NodeLogsParams {
|
|
122
|
+
logId?: string;
|
|
123
|
+
startTime?: string;
|
|
124
|
+
endTime?: string;
|
|
125
|
+
maxLogs?: number;
|
|
126
|
+
moduleName?: string;
|
|
127
|
+
level?: string;
|
|
128
|
+
page?: number;
|
|
129
|
+
}
|
|
130
|
+
export interface NodeLogEntry {
|
|
131
|
+
timestamp: string;
|
|
132
|
+
level: string;
|
|
133
|
+
moduleName: string;
|
|
134
|
+
message: string;
|
|
135
|
+
meta?: Record<string, any>;
|
|
136
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
|
2
2
|
import { Signer } from 'ethers';
|
|
3
|
-
import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ComputeResultStream, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, DownloadResponse, NodeStatus, NodeComputeJob } from '../../@types/index.js';
|
|
3
|
+
import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ComputeResultStream, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, DownloadResponse, NodeStatus, NodeComputeJob, NodeLogsParams, NodeLogEntry } from '../../@types/index.js';
|
|
4
4
|
import { type DDO, type ValidateMetadata } from '@oceanprotocol/ddo-js';
|
|
5
5
|
import { type P2PConfig } from './P2pProvider.js';
|
|
6
6
|
export { OCEAN_P2P_PROTOCOL, type P2PConfig } from './P2pProvider.js';
|
|
@@ -18,7 +18,7 @@ export declare class BaseProvider {
|
|
|
18
18
|
getFileInfo(file: StorageObject, nodeUri: string | Multiaddr[], withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
|
|
19
19
|
getComputeEnvironments(nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<ComputeEnvironment[]>;
|
|
20
20
|
initialize(did: string, serviceId: string, fileIndex: number, consumerAddress: string, nodeUri: string | Multiaddr[], signal?: AbortSignal, userCustomParameters?: UserCustomParameters, computeEnv?: string, validUntil?: number): Promise<ProviderInitialize>;
|
|
21
|
-
initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string | Multiaddr[], consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal): Promise<ProviderComputeInitializeResults>;
|
|
21
|
+
initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string | Multiaddr[], consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuthData?: dockerRegistryAuth, output?: ComputeOutput): Promise<ProviderComputeInitializeResults>;
|
|
22
22
|
getDownloadUrl(did: string, serviceId: string, fileIndex: number, transferTxId: string, nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, policyServer?: any, userCustomParameters?: UserCustomParameters): Promise<string | DownloadResponse>;
|
|
23
23
|
computeStart(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, maxJobDuration: number, token: string, resources: ComputeResourceRequest[], chainId: number, metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth): Promise<ComputeJob | ComputeJob[]>;
|
|
24
24
|
freeComputeStart(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, resources?: ComputeResourceRequest[], metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth): Promise<ComputeJob | ComputeJob[]>;
|
|
@@ -28,6 +28,7 @@ export declare class BaseProvider {
|
|
|
28
28
|
getComputeResultUrl(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number): Promise<string>;
|
|
29
29
|
getComputeResult(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number, offset?: number): Promise<ComputeResultStream>;
|
|
30
30
|
generateAuthToken(consumer: Signer, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<string>;
|
|
31
|
+
generateSignedAuthToken(address: string, signature: string, nonce: string, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<string>;
|
|
31
32
|
invalidateAuthToken(consumer: Signer, token: string, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<{
|
|
32
33
|
success: boolean;
|
|
33
34
|
}>;
|
|
@@ -36,15 +37,21 @@ export declare class BaseProvider {
|
|
|
36
37
|
isValidProvider(url: string | Multiaddr[], signal?: AbortSignal): Promise<boolean>;
|
|
37
38
|
PolicyServerPassthrough(nodeUri: string | Multiaddr[], request: PolicyServerPassthroughCommand, signal?: AbortSignal): Promise<any>;
|
|
38
39
|
initializePSVerification(nodeUri: string | Multiaddr[], request: PolicyServerInitializeCommand, signal?: AbortSignal): Promise<any>;
|
|
39
|
-
downloadNodeLogs(nodeUri: string | Multiaddr[], signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<
|
|
40
|
+
downloadNodeLogs(nodeUri: string | Multiaddr[], signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<NodeLogEntry[]>;
|
|
40
41
|
getNodeStatus(nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<NodeStatus>;
|
|
41
42
|
getNodeJobs(nodeUri: string | Multiaddr[], fromTimestamp?: number, signal?: AbortSignal): Promise<NodeComputeJob[]>;
|
|
42
43
|
setupP2P(config: P2PConfig): Promise<void>;
|
|
43
|
-
|
|
44
|
+
getLibp2pNode(): import("libp2p").Libp2p<import("@libp2p/interface").ServiceMap>;
|
|
45
|
+
getDiscoveredNodes(): Promise<Array<{
|
|
44
46
|
peerId: string;
|
|
45
47
|
multiaddrs: string[];
|
|
46
|
-
}
|
|
48
|
+
}>>;
|
|
47
49
|
getMultiaddrFromPeerId(peerId: string): Promise<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Fetch node logs via P2P with a pre-signed payload.
|
|
52
|
+
* For auto-signed log fetching (HTTP or P2P), use downloadNodeLogs().
|
|
53
|
+
*/
|
|
54
|
+
fetchNodeLogs(nodeUri: string | Multiaddr[], address: string, signature: string, nonce: string, logParams?: NodeLogsParams): Promise<NodeLogEntry[]>;
|
|
48
55
|
fetchConfig(nodeUri: string | Multiaddr[], payload: Record<string, any>): Promise<any>;
|
|
49
56
|
pushConfig(nodeUri: string | Multiaddr[], payload: Record<string, any>): Promise<any>;
|
|
50
57
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Signer } from 'ethers';
|
|
2
|
-
import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, ComputeResultStream, NodeStatus, NodeComputeJob } from '../../@types/index.js';
|
|
2
|
+
import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, ComputeResultStream, NodeStatus, NodeComputeJob, NodeLogEntry } from '../../@types/index.js';
|
|
3
3
|
import { type DDO, type ValidateMetadata } from '@oceanprotocol/ddo-js';
|
|
4
4
|
export declare class HttpProvider {
|
|
5
5
|
protected getConsumerAddress(s: Signer | string): Promise<string>;
|
|
@@ -106,7 +106,7 @@ export declare class HttpProvider {
|
|
|
106
106
|
* @param {dockerRegistryAuth} dockerRegistryAuth Docker registry authentication data.
|
|
107
107
|
* @return {Promise<ProviderComputeInitialize>} ProviderComputeInitialize data
|
|
108
108
|
*/
|
|
109
|
-
initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string, consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal): Promise<ProviderComputeInitializeResults>;
|
|
109
|
+
initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string, consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuthData?: dockerRegistryAuth, output?: ComputeOutput): Promise<ProviderComputeInitializeResults>;
|
|
110
110
|
/**
|
|
111
111
|
* Gets the download URL.
|
|
112
112
|
* @param {string} did - The DID.
|
|
@@ -238,7 +238,7 @@ export declare class HttpProvider {
|
|
|
238
238
|
* @param {AbortSignal} [signal] - An optional abort signal.
|
|
239
239
|
* @returns {Promise<any>} The logs response body stream.
|
|
240
240
|
*/
|
|
241
|
-
downloadNodeLogs(nodeUri: string, signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<
|
|
241
|
+
downloadNodeLogs(nodeUri: string, signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<NodeLogEntry[]>;
|
|
242
242
|
private noZeroX;
|
|
243
243
|
private zeroXTransformer;
|
|
244
244
|
private inputMatch;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { type Libp2pOptions } from 'libp2p';
|
|
1
|
+
import { type Libp2p, type Libp2pOptions } from 'libp2p';
|
|
2
2
|
import { type Multiaddr } from '@multiformats/multiaddr';
|
|
3
3
|
import { Signer } from 'ethers';
|
|
4
4
|
import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, DownloadResponse, ComputeResultStream, NodeStatus, NodeComputeJob } from '../../@types/index.js';
|
|
5
|
+
import { NodeLogsParams, NodeLogEntry } from '../../@types/Provider.js';
|
|
5
6
|
import { type DDO, type ValidateMetadata } from '@oceanprotocol/ddo-js';
|
|
6
7
|
export declare const OCEAN_P2P_PROTOCOL = "/ocean/nodes/1.0.0";
|
|
8
|
+
/**
|
|
9
|
+
* Optional request payload sent as LP frames after the command JSON; ends with an empty LP frame.
|
|
10
|
+
* This mirrors ocean-node's `p2pStreamBody` mechanism introduced for true streaming uploads.
|
|
11
|
+
*/
|
|
12
|
+
export type P2PRequestBodyStream = AsyncIterable<Uint8Array | ArrayBufferView | string>;
|
|
7
13
|
export interface P2PConfig {
|
|
8
14
|
/**
|
|
9
15
|
* Bootstrap peer multiaddrs for DHT peer discovery.
|
|
@@ -35,11 +41,12 @@ export interface P2PConfig {
|
|
|
35
41
|
* Unset fields keep ocean.js defaults.
|
|
36
42
|
*/
|
|
37
43
|
libp2p?: Partial<Libp2pOptions>;
|
|
44
|
+
/** Additional roles to be marked. Will be used in the future */
|
|
45
|
+
additionalRoles?: string[];
|
|
38
46
|
}
|
|
39
47
|
export declare class P2pProvider {
|
|
40
48
|
private p2pConfig;
|
|
41
49
|
private libp2pNode;
|
|
42
|
-
private discoveredNodes;
|
|
43
50
|
/**
|
|
44
51
|
* Configure the internal libp2p node used for P2P transport.
|
|
45
52
|
* Call this once before making P2P requests, e.g.:
|
|
@@ -50,12 +57,15 @@ export declare class P2pProvider {
|
|
|
50
57
|
*/
|
|
51
58
|
setupP2P(config: P2PConfig): Promise<void>;
|
|
52
59
|
getMultiaddrFromPeerId(peerId: string): Promise<string>;
|
|
53
|
-
/** Returns
|
|
54
|
-
|
|
60
|
+
/** Returns the underlying libp2p node instance, or null if P2P is not initialized. */
|
|
61
|
+
getLibp2pNode(): Libp2p | null;
|
|
62
|
+
/** Returns all peers known to the peerStore (discovered via bootstrap, DHT, or connections). */
|
|
63
|
+
getDiscoveredNodes(): Promise<Array<{
|
|
55
64
|
peerId: string;
|
|
56
65
|
multiaddrs: string[];
|
|
57
|
-
}
|
|
66
|
+
}>>;
|
|
58
67
|
private bufToHex;
|
|
68
|
+
private handleProtocolCommands;
|
|
59
69
|
private getOrCreateLibp2pNode;
|
|
60
70
|
private toUint8Array;
|
|
61
71
|
private isDialable;
|
|
@@ -103,7 +113,7 @@ export declare class P2pProvider {
|
|
|
103
113
|
* Initializes compute request via P2P. No auth required -- the node only
|
|
104
114
|
* validates parameters and applies rate limits.
|
|
105
115
|
*/
|
|
106
|
-
initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string | Multiaddr[], consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal): Promise<ProviderComputeInitializeResults>;
|
|
116
|
+
initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string | Multiaddr[], consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuthData?: dockerRegistryAuth, output?: ComputeOutput): Promise<ProviderComputeInitializeResults>;
|
|
107
117
|
/**
|
|
108
118
|
* Sends a DOWNLOAD command to the peer via P2P, reads the binary stream
|
|
109
119
|
* directly from the lpStream, and returns a DownloadResponse.
|
|
@@ -137,9 +147,13 @@ export declare class P2pProvider {
|
|
|
137
147
|
getComputeResult(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number, offset?: number): Promise<ComputeResultStream>;
|
|
138
148
|
getComputeResultUrl(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number): Promise<string>;
|
|
139
149
|
/**
|
|
140
|
-
* Generate an auth token via P2P.
|
|
150
|
+
* Generate an auth token via P2P (auto-signs with Signer).
|
|
141
151
|
*/
|
|
142
152
|
generateAuthToken(consumer: Signer, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<string>;
|
|
153
|
+
/**
|
|
154
|
+
* Generate an auth token from a pre-signed request (no Signer needed).
|
|
155
|
+
*/
|
|
156
|
+
generateSignedAuthToken(address: string, signature: string, nonce: string, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<string>;
|
|
143
157
|
/**
|
|
144
158
|
* Resolve a DDO by DID via P2P GET_DDO command.
|
|
145
159
|
*/
|
|
@@ -169,7 +183,12 @@ export declare class P2pProvider {
|
|
|
169
183
|
/**
|
|
170
184
|
* Download node logs via P2P.
|
|
171
185
|
*/
|
|
172
|
-
downloadNodeLogs(nodeUri: string | Multiaddr[], signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<
|
|
186
|
+
downloadNodeLogs(nodeUri: string | Multiaddr[], signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<NodeLogEntry[]>;
|
|
187
|
+
/**
|
|
188
|
+
* Fetch node logs via P2P with a pre-signed payload.
|
|
189
|
+
* P2P only — use downloadNodeLogs() for the auto-signed variant.
|
|
190
|
+
*/
|
|
191
|
+
fetchNodeLogs(nodeUri: string | Multiaddr[], address: string, signature: string, nonce: string, logParams?: NodeLogsParams): Promise<NodeLogEntry[]>;
|
|
173
192
|
/**
|
|
174
193
|
* Fetch node configuration via P2P. Accepts a pre-signed payload —
|
|
175
194
|
* the caller is responsible for nonce retrieval and signing.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oceanprotocol/lib",
|
|
3
3
|
"source": "./src/index.ts",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "8.0.1",
|
|
5
5
|
"description": "JavaScript client library for Ocean Protocol",
|
|
6
6
|
"main": "./dist/lib.cjs",
|
|
7
7
|
"umd:main": "dist/lib.umd.js",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"web3": "^1.8.0"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@oceanprotocol/ddo-js": "^0.
|
|
68
|
+
"@oceanprotocol/ddo-js": "^0.3.0",
|
|
69
69
|
"@oasisprotocol/sapphire-paratime": "^1.3.2",
|
|
70
70
|
"bignumber.js": "^9.3.1",
|
|
71
71
|
"cross-fetch": "^4.0.0",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"c8": "^10.1.3",
|
|
104
104
|
"chai": "^6.2.2",
|
|
105
105
|
"chai-spies": "^1.0.0",
|
|
106
|
-
"cross-env": "^
|
|
106
|
+
"cross-env": "^10.1.0",
|
|
107
107
|
"eslint": "^8.23.1",
|
|
108
108
|
"eslint-config-oceanprotocol": "^2.0.3",
|
|
109
109
|
"eslint-config-prettier": "^10.1.5",
|