@wovin/connect-nftstorage 0.0.9-RC4 → 0.0.10
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 +661 -0
- package/dist/chunk-2QFX3P3I.min.js +16 -0
- package/dist/chunk-2QFX3P3I.min.js.map +1 -0
- package/dist/chunk-BKKH6BET.min.js +3 -0
- package/dist/chunk-BKKH6BET.min.js.map +1 -0
- package/dist/chunk-CMDKOQ7H.min.js +80 -0
- package/dist/chunk-CMDKOQ7H.min.js.map +1 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/retrieve.d.ts +14 -7
- package/dist/retrieve.d.ts.map +1 -1
- package/dist/retrieve.min.js +1 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.min.js +1 -1
- package/package.json +9 -8
- package/dist/chunk-JGH54UQF.min.js +0 -78
- package/dist/chunk-JGH54UQF.min.js.map +0 -1
- package/dist/chunk-S4T3O5K3.min.js +0 -16
- package/dist/chunk-S4T3O5K3.min.js.map +0 -1
- package/dist/chunk-SOBCOB7T.min.js +0 -3
- package/dist/chunk-SOBCOB7T.min.js.map +0 -1
- package/dist/utils.d.ts +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.min.js +0 -1
- package/dist/utils.min.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type StorageConnector } from '@wovin/core/pubsub';
|
|
|
3
3
|
import { CID } from 'multiformats';
|
|
4
4
|
export * from './retrieve';
|
|
5
5
|
export declare class NftStorageConnector implements StorageConnector {
|
|
6
|
-
serviceDID: string;
|
|
6
|
+
serviceDID: string | null;
|
|
7
7
|
private apiKey;
|
|
8
8
|
private keypair;
|
|
9
9
|
private rootUcan;
|
|
@@ -12,8 +12,12 @@ export declare class NftStorageConnector implements StorageConnector {
|
|
|
12
12
|
keypair?: ucans.DidableKey;
|
|
13
13
|
rootUcan?: ucans.Ucan;
|
|
14
14
|
}): Promise<NftStorageConnector>;
|
|
15
|
-
constructor(serviceDID: string, apiKey: string | null, keypair: ucans.DidableKey | null, rootUcan: ucans.Ucan | null);
|
|
15
|
+
constructor(serviceDID: string | null, apiKey: string | null, keypair: ucans.DidableKey | null, rootUcan: ucans.Ucan | null);
|
|
16
|
+
get isSetup(): boolean;
|
|
17
|
+
get isValid(): boolean;
|
|
16
18
|
storeCar(car: Blob): Promise<CID<unknown, number, number, import("multiformats").Version>>;
|
|
17
|
-
|
|
19
|
+
getGateway(): {
|
|
20
|
+
url: string;
|
|
21
|
+
};
|
|
18
22
|
}
|
|
19
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAMlC,cAAc,YAAY,CAAA;AAG1B,qBAAa,mBAAoB,YAAW,gBAAgB;IAanD,UAAU,EAAE,MAAM,GAAG,IAAI;IAChC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;WAfJ,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QAChD,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,KAAK,CAAC,UAAU,CAAA;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,CAAA;KACrB;gBAQO,UAAU,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,EAChC,QAAQ,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAKpC,IAAI,OAAO,YAEV;IACD,IAAI,OAAO,YAEV;IAEK,QAAQ,CAAC,GAAG,EAAE,IAAI;IA2BxB,UAAU;;;CAGV"}
|
package/dist/index.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as s,b as f}from"./chunk-CMDKOQ7H.min.js";import{a,b as n,c,d as p}from"./chunk-2QFX3P3I.min.js";import{e as i}from"./chunk-BKKH6BET.min.js";var{WARN:l,LOG:v,DEBUG:m,VERBOSE:d,ERROR:y}=i.setup(i.DEBUG),u=class D{constructor(r,t,e,o){this.serviceDID=r;this.apiKey=t;this.keypair=e;this.rootUcan=o;if(!(t||e&&o))throw new Error("Needs apiKey - or keypair and rootUcan")}static async init({apiKey:r,keypair:t,rootUcan:e}){return m("Init NFT.Storage connector:",{apiKey:r,keypair:t,serviceDID:null}),new D(null,r,t,e)}get isSetup(){return!0}get isValid(){return!0}async storeCar(r){if(this.apiKey&&!this.keypair)return a(r,this.apiKey);if(!this.serviceDID){let{value:t}=await(await fetch("https://api.nft.storage/did")).json();this.serviceDID=t}for(let t=1;t<3;t++)try{this.rootUcan||(await c(this.apiKey,this.keypair.did()),this.rootUcan=await p(this.apiKey));let e=await n(this.keypair,this.serviceDID,this.rootUcan);return a(r,e)}catch(e){if(y("[nft-connector.storeCar] error:",e),e.message?.contains?.("ERROR_TOKEN_NOT_FOUND"))l(`Token not found (might be a race condition) (attempt=${t}):`,e);else throw e}}getGateway(){return{url:s}}};export{s as NFTSTORAGE_GATEWAY,u as NftStorageConnector,f as retrieveThread};
|
|
2
2
|
//# sourceMappingURL=index.min.js.map
|
package/dist/index.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import * as ucans from '@ucans/ucans'\nimport { type StorageConnector } from '@wovin/core/pubsub'\nimport { Logger } from 'besonders-logger'\nimport { CID } from 'multiformats'\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import * as ucans from '@ucans/ucans'\nimport type { IpfsGateway } from '@wovin/connect-gateway'\nimport { type StorageConnector } from '@wovin/core/pubsub'\nimport { Logger } from 'besonders-logger'\nimport { CID } from 'multiformats'\nimport { NFTSTORAGE_GATEWAY } from './retrieve'\nimport { createRequestToken, getRootUcan, registerDid, storeCar } from './store'\n\nconst { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.DEBUG) // eslint-disable-line no-unused-vars\n\nexport * from './retrieve'\n// export * from './store'\n\nexport class NftStorageConnector implements StorageConnector {\n\tstatic async init({ apiKey, keypair, rootUcan }: {\n\t\tapiKey?: string\n\t\tkeypair?: ucans.DidableKey\n\t\trootUcan?: ucans.Ucan\n\t}) {\n\t\t// const { value: serviceDID } = await (await fetch('https://api.nft.storage/did')).json() - Unnecessary delay on init (& might fail when no internet)\n\t\tconst serviceDID = null\n\t\t// if (!keypair) keypair = await ucans.EdKeypair.create()\n\t\tDEBUG(`Init NFT.Storage connector:`, { apiKey, keypair, serviceDID })\n\t\treturn new NftStorageConnector(serviceDID, apiKey, keypair, rootUcan)\n\t}\n\tconstructor(\n\t\tpublic serviceDID: string | null,\n\t\tprivate apiKey: string | null,\n\t\tprivate keypair: ucans.DidableKey | null,\n\t\tprivate rootUcan: ucans.Ucan | null,\n\t) {\n\t\tif (!(apiKey || (keypair && rootUcan))) throw new Error(`Needs apiKey - or keypair and rootUcan`)\n\t}\n\n\tget isSetup() {\n\t\treturn true\n\t}\n\tget isValid() {\n\t\treturn true // TODO test ucan etc\n\t}\n\n\tasync storeCar(car: Blob) {\n\t\tif (this.apiKey && !this.keypair) {\n\t\t\treturn storeCar(car, this.apiKey)\n\t\t}\n\t\tif (!this.serviceDID) {\n\t\t\tconst { value: serviceDID } = await (await fetch('https://api.nft.storage/did')).json()\n\t\t\tthis.serviceDID = serviceDID\n\t\t}\n\t\t// NFT.storage allows only one registered DID, so we might have another agent register between our register & push\n\t\tfor (let attempt = 1; attempt < 3; attempt++) {\n\t\t\ttry {\n\t\t\t\tif (!this.rootUcan) {\n\t\t\t\t\tawait registerDid(this.apiKey, this.keypair.did())\n\t\t\t\t\tthis.rootUcan = await getRootUcan(this.apiKey)\n\t\t\t\t\t// TODO: callback to the app - for persisting?\n\t\t\t\t}\n\t\t\t\tconst requestUcan = await createRequestToken(this.keypair, this.serviceDID, this.rootUcan)\n\t\t\t\treturn storeCar(car, requestUcan)\n\t\t\t} catch (err) {\n\t\t\t\tERROR(`[nft-connector.storeCar] error:`, err)\n\t\t\t\tif ((err as any).message?.contains?.('ERROR_TOKEN_NOT_FOUND')) {\n\t\t\t\t\tWARN(`Token not found (might be a race condition) (attempt=${attempt}):`, err)\n\t\t\t\t} else throw err\n\t\t\t}\n\t\t}\n\t}\n\n\tgetGateway() {\n\t\treturn { url: NFTSTORAGE_GATEWAY } satisfies IpfsGateway\n\t}\n}\n"],"mappings":"sJAQA,GAAM,CAAE,KAAAA,EAAM,IAAAC,EAAK,MAAAC,EAAO,QAAAC,EAAS,MAAAC,CAAM,EAAIC,EAAO,MAAMA,EAAO,KAAK,EAKzDC,EAAN,MAAMC,CAAgD,CAY5D,YACQC,EACCC,EACAC,EACAC,EACP,CAJM,gBAAAH,EACC,YAAAC,EACA,aAAAC,EACA,cAAAC,EAER,GAAI,EAAEF,GAAWC,GAAWC,GAAY,MAAM,IAAI,MAAM,wCAAwC,CACjG,CAlBA,aAAa,KAAK,CAAE,OAAAF,EAAQ,QAAAC,EAAS,SAAAC,CAAS,EAI3C,CAIF,OAAAT,EAAM,8BAA+B,CAAE,OAAAO,EAAQ,QAAAC,EAAS,eAAW,CAAC,EAC7D,IAAIH,EAAoB,KAAYE,EAAQC,EAASC,CAAQ,CACrE,CAUA,IAAI,SAAU,CACb,MAAO,EACR,CACA,IAAI,SAAU,CACb,MAAO,EACR,CAEA,MAAM,SAASC,EAAW,CACzB,GAAI,KAAK,QAAU,CAAC,KAAK,QACxB,OAAOC,EAASD,EAAK,KAAK,MAAM,EAEjC,GAAI,CAAC,KAAK,WAAY,CACrB,GAAM,CAAE,MAAOJ,CAAW,EAAI,MAAO,MAAM,MAAM,6BAA6B,GAAG,KAAK,EACtF,KAAK,WAAaA,CACnB,CAEA,QAASM,EAAU,EAAGA,EAAU,EAAGA,IAClC,GAAI,CACE,KAAK,WACT,MAAMC,EAAY,KAAK,OAAQ,KAAK,QAAQ,IAAI,CAAC,EACjD,KAAK,SAAW,MAAMC,EAAY,KAAK,MAAM,GAG9C,IAAMC,EAAc,MAAMC,EAAmB,KAAK,QAAS,KAAK,WAAY,KAAK,QAAQ,EACzF,OAAOL,EAASD,EAAKK,CAAW,CACjC,OAASE,EAAK,CAEb,GADAf,EAAM,kCAAmCe,CAAG,EACvCA,EAAY,SAAS,WAAW,uBAAuB,EAC3DnB,EAAK,wDAAwDc,CAAO,KAAMK,CAAG,MACvE,OAAMA,CACd,CAEF,CAEA,YAAa,CACZ,MAAO,CAAE,IAAKC,CAAmB,CAClC,CACD","names":["WARN","LOG","DEBUG","VERBOSE","ERROR","E","NftStorageConnector","_NftStorageConnector","serviceDID","apiKey","keypair","rootUcan","car","storeCar","attempt","registerDid","getRootUcan","requestUcan","createRequestToken","err","NFTSTORAGE_GATEWAY"]}
|
package/dist/retrieve.d.ts
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
|
-
import { CarReader } from '@ipld/car';
|
|
2
1
|
import { CidString, IpnsString } from '@wovin/core/applog';
|
|
3
|
-
|
|
4
|
-
import { CID } from 'multiformats/cid';
|
|
2
|
+
export declare const NFTSTORAGE_GATEWAY = "https://nftstorage.link";
|
|
5
3
|
export declare function retrieveThread(pubID: IpnsString | CidString | null, { readOnly, pinnedCID }?: {
|
|
6
4
|
readOnly?: boolean;
|
|
7
5
|
pinnedCID?: CidString;
|
|
8
6
|
}): Promise<{
|
|
9
|
-
cid: CID<unknown, number, number, import("multiformats
|
|
10
|
-
|
|
7
|
+
cid: import("multiformats").CID<unknown, number, number, import("multiformats").Version>;
|
|
8
|
+
info: {
|
|
9
|
+
logs: {
|
|
10
|
+
cid: string;
|
|
11
|
+
pv: CidString;
|
|
12
|
+
ts: string;
|
|
13
|
+
ag: import("@wovin/core/applog").AgentHash;
|
|
14
|
+
en: string;
|
|
15
|
+
at: string;
|
|
16
|
+
vl: import("@wovin/core/applog").ApplogValue;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
thread: import("@wovin/core").ThreadInMemory;
|
|
11
20
|
encryptedCount: number;
|
|
12
21
|
}>;
|
|
13
|
-
export declare function resolveIPNS(name: IpnsString): Promise<CID>;
|
|
14
|
-
export declare function retrieveCar(cid: CID): Promise<CarReader>;
|
|
15
22
|
//# sourceMappingURL=retrieve.d.ts.map
|
package/dist/retrieve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieve.d.ts","sourceRoot":"","sources":["../src/retrieve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retrieve.d.ts","sourceRoot":"","sources":["../src/retrieve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAK1D,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAE3D,wBAAsB,cAAc,CACnC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,EACpC,EAAE,QAAe,EAAE,SAAS,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAO;;;;;;;;;;;;;;;GAOlF"}
|
package/dist/retrieve.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b
|
|
1
|
+
import{a,b}from"./chunk-CMDKOQ7H.min.js";import"./chunk-BKKH6BET.min.js";export{a as NFTSTORAGE_GATEWAY,b as retrieveThread};
|
|
2
2
|
//# sourceMappingURL=retrieve.min.js.map
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAIlC,wBAAsB,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAiBlF;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAIlC,wBAAsB,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAiBlF;AAED,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,KAAK,CAAC,IAAI,+BAarB;AACD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAa5D;AACD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,+BAW/C"}
|
package/dist/store.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d}from"./chunk-
|
|
1
|
+
import{a,b,c,d}from"./chunk-2QFX3P3I.min.js";import"./chunk-BKKH6BET.min.js";export{b as createRequestToken,d as getRootUcan,c as registerDid,a as storeCar};
|
|
2
2
|
//# sourceMappingURL=store.min.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wovin/connect-nftstorage",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.min.js",
|
|
6
6
|
"module": "./dist/index.min.js",
|
|
@@ -31,23 +31,24 @@
|
|
|
31
31
|
"bundle": false
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@ipld/car": "^5.2.
|
|
34
|
+
"@ipld/car": "^5.2.6",
|
|
35
35
|
"@ucans/ucans": "^0.12.0",
|
|
36
|
-
"@wovin/
|
|
37
|
-
"
|
|
38
|
-
"
|
|
36
|
+
"@wovin/connect-gateway": "0.0.10",
|
|
37
|
+
"@wovin/core": "0.0.10",
|
|
38
|
+
"besonders-logger": "1.0.1",
|
|
39
|
+
"multiformats": "^13.0.1",
|
|
39
40
|
"ucan-storage": "^1.3.0"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
43
|
"concurrently": "^8.2.2",
|
|
43
44
|
"esbuild-plugin-polyfill-node": "^0.3.0",
|
|
44
|
-
"tsup": "^8.0.
|
|
45
|
-
"typescript": "^5.
|
|
45
|
+
"tsup": "^8.0.2",
|
|
46
|
+
"typescript": "^5.4.5",
|
|
46
47
|
"tsupconfig": "^0.0.0"
|
|
47
48
|
},
|
|
48
49
|
"scripts": {
|
|
49
50
|
"build": "rm -rf dist/ && concurrently \"pnpm build:code\" \"pnpm build:types\"",
|
|
50
|
-
"build:code": "tsup --minify",
|
|
51
|
+
"build:code": "tsup --minify --external esbuild",
|
|
51
52
|
"build:types": "tsc --emitDeclarationOnly --declaration",
|
|
52
53
|
"dev": "concurrently \"pnpm dev:code\" \"pnpm dev:types\"",
|
|
53
54
|
"dev:code": "tsup --watch",
|