@shard-for-obsidian/lib 0.2.4 → 0.3.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/dist/adapters/index.d.ts +3 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +2 -0
- package/dist/adapters/node.d.ts +9 -0
- package/dist/adapters/node.d.ts.map +1 -0
- package/dist/adapters/node.js +10 -0
- package/dist/adapters/obsidian.d.ts +13 -0
- package/dist/adapters/obsidian.d.ts.map +1 -0
- package/dist/adapters/obsidian.js +90 -0
- package/dist/client/OciRegistryClient.d.ts +23 -2
- package/dist/client/OciRegistryClient.d.ts.map +1 -1
- package/dist/client/OciRegistryClient.js +52 -3
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +2 -2
- package/dist/marketplace/client.d.ts +48 -0
- package/dist/marketplace/client.d.ts.map +1 -0
- package/dist/marketplace/client.js +104 -0
- package/dist/marketplace/index.d.ts +2 -0
- package/dist/marketplace/index.d.ts.map +1 -0
- package/dist/marketplace/index.js +1 -0
- package/dist/oci/index.d.ts +2 -0
- package/dist/oci/index.d.ts.map +1 -0
- package/dist/oci/index.js +1 -0
- package/dist/oci/tags.d.ts +26 -0
- package/dist/oci/tags.d.ts.map +1 -0
- package/dist/oci/tags.js +134 -0
- package/dist/schemas/annotations.d.ts +78 -0
- package/dist/schemas/annotations.d.ts.map +1 -0
- package/dist/schemas/annotations.js +39 -0
- package/dist/schemas/index.d.ts +5 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +6 -0
- package/dist/schemas/manifest.d.ts +50 -0
- package/dist/schemas/manifest.d.ts.map +1 -0
- package/dist/schemas/manifest.js +25 -0
- package/dist/schemas/marketplace.d.ts +379 -0
- package/dist/schemas/marketplace.d.ts.map +1 -0
- package/dist/schemas/marketplace.js +67 -0
- package/dist/schemas/transforms.d.ts +60 -0
- package/dist/schemas/transforms.d.ts.map +1 -0
- package/dist/schemas/transforms.js +148 -0
- package/dist/types/ManifestTypes.d.ts +2 -23
- package/dist/types/ManifestTypes.d.ts.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FetchAdapter } from "../client/FetchAdapter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Adapter for Node.js native fetch API.
|
|
4
|
+
* Thin wrapper that passes through to native fetch.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeFetchAdapter implements FetchAdapter {
|
|
7
|
+
fetch(input: string | Request, init?: RequestInit): Promise<Response>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/adapters/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IAC7C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAI5E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FetchAdapter } from "../client/FetchAdapter.js";
|
|
2
|
+
import type { RequestUrlParam, RequestUrlResponse } from "../types/RequestTypes.js";
|
|
3
|
+
/**
|
|
4
|
+
* Adapter for Obsidian's requestUrl API.
|
|
5
|
+
* Converts between fetch API and Obsidian's request format.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ObsidianFetchAdapter implements FetchAdapter {
|
|
8
|
+
private requestUrl;
|
|
9
|
+
constructor(requestUrl: (request: RequestUrlParam | string) => Promise<RequestUrlResponse>);
|
|
10
|
+
fetch(input: string | Request, init?: RequestInit): Promise<Response>;
|
|
11
|
+
private convertToResponse;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=obsidian.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obsidian.d.ts","sourceRoot":"","sources":["../../src/adapters/obsidian.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEpF;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IAErD,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,CAClB,OAAO,EAAE,eAAe,GAAG,MAAM,KAC9B,OAAO,CAAC,kBAAkB,CAAC;IAG5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmE3E,OAAO,CAAC,iBAAiB;CAc1B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter for Obsidian's requestUrl API.
|
|
3
|
+
* Converts between fetch API and Obsidian's request format.
|
|
4
|
+
*/
|
|
5
|
+
export class ObsidianFetchAdapter {
|
|
6
|
+
requestUrl;
|
|
7
|
+
constructor(requestUrl) {
|
|
8
|
+
this.requestUrl = requestUrl;
|
|
9
|
+
}
|
|
10
|
+
async fetch(input, init) {
|
|
11
|
+
// Convert Request to string URL
|
|
12
|
+
const url = typeof input === "string" ? input : input.url;
|
|
13
|
+
// Merge headers from Request and init
|
|
14
|
+
const headers = {};
|
|
15
|
+
if (typeof input !== "string" && input.headers) {
|
|
16
|
+
input.headers.forEach((value, key) => {
|
|
17
|
+
headers[key] = value;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
if (init?.headers) {
|
|
21
|
+
if (init.headers instanceof Headers) {
|
|
22
|
+
init.headers.forEach((value, key) => {
|
|
23
|
+
headers[key] = value;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else if (Array.isArray(init.headers)) {
|
|
27
|
+
for (const [key, value] of init.headers) {
|
|
28
|
+
headers[key] = value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
Object.assign(headers, init.headers);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Get method from init or Request
|
|
36
|
+
const method = init?.method || (typeof input !== "string" ? input.method : "GET");
|
|
37
|
+
// Get body from init or Request
|
|
38
|
+
let body;
|
|
39
|
+
if (init?.body) {
|
|
40
|
+
if (typeof init.body === "string") {
|
|
41
|
+
body = init.body;
|
|
42
|
+
}
|
|
43
|
+
else if (init.body instanceof ArrayBuffer) {
|
|
44
|
+
body = init.body;
|
|
45
|
+
}
|
|
46
|
+
else if (init.body instanceof Uint8Array) {
|
|
47
|
+
body = init.body.buffer.slice(0);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Convert other body types to ArrayBuffer
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
|
+
const blob = new Blob([init.body]);
|
|
53
|
+
body = await blob.arrayBuffer();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (typeof input !== "string" && input.body) {
|
|
57
|
+
if (input.body instanceof ArrayBuffer) {
|
|
58
|
+
body = input.body;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
const blob = new Blob([input.body]);
|
|
63
|
+
body = await blob.arrayBuffer();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Make the request using Obsidian's requestUrl
|
|
67
|
+
const response = await this.requestUrl({
|
|
68
|
+
url,
|
|
69
|
+
method,
|
|
70
|
+
headers,
|
|
71
|
+
body,
|
|
72
|
+
throw: false, // Handle errors ourselves
|
|
73
|
+
});
|
|
74
|
+
// Convert RequestUrlResponse to Response
|
|
75
|
+
return this.convertToResponse(response);
|
|
76
|
+
}
|
|
77
|
+
convertToResponse(response) {
|
|
78
|
+
// Convert headers object to Headers
|
|
79
|
+
const headers = new Headers();
|
|
80
|
+
for (const [key, value] of Object.entries(response.headers)) {
|
|
81
|
+
headers.set(key, value);
|
|
82
|
+
}
|
|
83
|
+
// Create Response with arrayBuffer body
|
|
84
|
+
return new Response(response.arrayBuffer, {
|
|
85
|
+
status: response.status,
|
|
86
|
+
statusText: "", // requestUrl doesn't provide statusText
|
|
87
|
+
headers,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -131,14 +131,16 @@ export declare class OciRegistryClient {
|
|
|
131
131
|
* <https://github.com/opencontainers/distribution-spec/blob/main/spec.md#post-then-put>
|
|
132
132
|
*
|
|
133
133
|
* @param opts.data The blob data as ArrayBuffer or Uint8Array
|
|
134
|
-
* @param opts.
|
|
135
|
-
* @returns Object with digest and
|
|
134
|
+
* @param opts.annotations Optional annotations for the blob
|
|
135
|
+
* @returns Object with digest, size, and annotations (with auto-added ORAS title if applicable)
|
|
136
136
|
*/
|
|
137
137
|
pushBlob(opts: {
|
|
138
138
|
data: ArrayBuffer | Uint8Array;
|
|
139
|
+
annotations?: Record<string, string>;
|
|
139
140
|
}): Promise<{
|
|
140
141
|
digest: string;
|
|
141
142
|
size: number;
|
|
143
|
+
annotations?: Record<string, string>;
|
|
142
144
|
}>;
|
|
143
145
|
/**
|
|
144
146
|
* Upload an image manifest.
|
|
@@ -157,6 +159,25 @@ export declare class OciRegistryClient {
|
|
|
157
159
|
digest: string;
|
|
158
160
|
size: number;
|
|
159
161
|
}>;
|
|
162
|
+
/**
|
|
163
|
+
* Push a manifest with multiple tags atomically.
|
|
164
|
+
* Pushes the manifest once with the first tag, then tags the remaining tags
|
|
165
|
+
* by pushing the same manifest content.
|
|
166
|
+
*
|
|
167
|
+
* @param opts.tags Array of tags to apply (must not be empty)
|
|
168
|
+
* @param opts.manifest The manifest object to upload
|
|
169
|
+
* @param opts.annotations Optional annotations to merge with manifest annotations
|
|
170
|
+
* @returns Object with digest, tags array, and size
|
|
171
|
+
*/
|
|
172
|
+
pushManifestWithTags(opts: {
|
|
173
|
+
tags: string[];
|
|
174
|
+
manifest: ManifestOCI;
|
|
175
|
+
annotations?: Record<string, string>;
|
|
176
|
+
}): Promise<{
|
|
177
|
+
digest: string;
|
|
178
|
+
tags: string[];
|
|
179
|
+
size: number;
|
|
180
|
+
}>;
|
|
160
181
|
/**
|
|
161
182
|
* Push a plugin manifest as a config blob and create an OCI manifest.
|
|
162
183
|
* This follows the OCI spec where the Obsidian manifest is stored as the config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OciRegistryClient.d.ts","sourceRoot":"","sources":["../../src/client/OciRegistryClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"OciRegistryClient.d.ts","sourceRoot":"","sources":["../../src/client/OciRegistryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -536,8 +536,8 @@ export class OciRegistryClient {
|
|
|
536
536
|
* <https://github.com/opencontainers/distribution-spec/blob/main/spec.md#post-then-put>
|
|
537
537
|
*
|
|
538
538
|
* @param opts.data The blob data as ArrayBuffer or Uint8Array
|
|
539
|
-
* @param opts.
|
|
540
|
-
* @returns Object with digest and
|
|
539
|
+
* @param opts.annotations Optional annotations for the blob
|
|
540
|
+
* @returns Object with digest, size, and annotations (with auto-added ORAS title if applicable)
|
|
541
541
|
*/
|
|
542
542
|
async pushBlob(opts) {
|
|
543
543
|
await this.login();
|
|
@@ -589,7 +589,14 @@ export class OciRegistryClient {
|
|
|
589
589
|
if (returnedDigest && returnedDigest !== digest) {
|
|
590
590
|
throw new e.BadDigestError(`Digest mismatch: expected ${digest}, got ${returnedDigest}`);
|
|
591
591
|
}
|
|
592
|
-
|
|
592
|
+
// Handle annotations - automatically add ORAS-compatible title from filename
|
|
593
|
+
const annotations = opts.annotations && opts.annotations['vnd.obsidianmd.layer.filename']
|
|
594
|
+
? {
|
|
595
|
+
...opts.annotations,
|
|
596
|
+
'org.opencontainers.image.title': opts.annotations['vnd.obsidianmd.layer.filename']
|
|
597
|
+
}
|
|
598
|
+
: opts.annotations ? { ...opts.annotations } : undefined;
|
|
599
|
+
return { digest, size: buffer.byteLength, annotations };
|
|
593
600
|
}
|
|
594
601
|
/**
|
|
595
602
|
* Upload an image manifest.
|
|
@@ -628,6 +635,48 @@ export class OciRegistryClient {
|
|
|
628
635
|
}
|
|
629
636
|
return { digest, size: manifestBuffer.byteLength };
|
|
630
637
|
}
|
|
638
|
+
/**
|
|
639
|
+
* Push a manifest with multiple tags atomically.
|
|
640
|
+
* Pushes the manifest once with the first tag, then tags the remaining tags
|
|
641
|
+
* by pushing the same manifest content.
|
|
642
|
+
*
|
|
643
|
+
* @param opts.tags Array of tags to apply (must not be empty)
|
|
644
|
+
* @param opts.manifest The manifest object to upload
|
|
645
|
+
* @param opts.annotations Optional annotations to merge with manifest annotations
|
|
646
|
+
* @returns Object with digest, tags array, and size
|
|
647
|
+
*/
|
|
648
|
+
async pushManifestWithTags(opts) {
|
|
649
|
+
if (opts.tags.length === 0) {
|
|
650
|
+
throw new Error('tags array cannot be empty');
|
|
651
|
+
}
|
|
652
|
+
// Merge annotations: manifest.annotations + opts.annotations
|
|
653
|
+
const mergedManifest = {
|
|
654
|
+
...opts.manifest,
|
|
655
|
+
annotations: {
|
|
656
|
+
...(opts.manifest.annotations || {}),
|
|
657
|
+
...(opts.annotations || {}),
|
|
658
|
+
},
|
|
659
|
+
};
|
|
660
|
+
// Push manifest with first tag
|
|
661
|
+
const result = await this.pushManifest({
|
|
662
|
+
ref: opts.tags[0],
|
|
663
|
+
manifest: mergedManifest,
|
|
664
|
+
mediaType: opts.manifest.mediaType || MEDIATYPE_OCI_MANIFEST_V1,
|
|
665
|
+
});
|
|
666
|
+
// Tag remaining tags by pushing the same manifest
|
|
667
|
+
for (let i = 1; i < opts.tags.length; i++) {
|
|
668
|
+
await this.pushManifest({
|
|
669
|
+
ref: opts.tags[i],
|
|
670
|
+
manifest: mergedManifest,
|
|
671
|
+
mediaType: opts.manifest.mediaType || MEDIATYPE_OCI_MANIFEST_V1,
|
|
672
|
+
});
|
|
673
|
+
}
|
|
674
|
+
return {
|
|
675
|
+
digest: result.digest,
|
|
676
|
+
tags: opts.tags,
|
|
677
|
+
size: result.size,
|
|
678
|
+
};
|
|
679
|
+
}
|
|
631
680
|
/**
|
|
632
681
|
* Push a plugin manifest as a config blob and create an OCI manifest.
|
|
633
682
|
* This follows the OCI spec where the Obsidian manifest is stored as the config.
|
package/dist/index.d.ts
CHANGED
|
@@ -12,4 +12,8 @@ export * from "./errors/RegistryErrors.js";
|
|
|
12
12
|
export * from "./ghcr/GhcrConstants.js";
|
|
13
13
|
export type { FetchAdapter } from "./client/FetchAdapter.js";
|
|
14
14
|
export type { RegistryClientOptions } from "./client/RegistryClientOptions.js";
|
|
15
|
+
export * from "./schemas/index.js";
|
|
16
|
+
export * from "./oci/index.js";
|
|
17
|
+
export * from "./marketplace/index.js";
|
|
18
|
+
export * from "./adapters/index.js";
|
|
15
19
|
//# 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":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,3 +11,11 @@ export * from "./utils/ValidationUtils.js";
|
|
|
11
11
|
export * from "./utils/DigestUtils.js";
|
|
12
12
|
export * from "./errors/RegistryErrors.js";
|
|
13
13
|
export * from "./ghcr/GhcrConstants.js";
|
|
14
|
+
// Schema exports
|
|
15
|
+
export * from "./schemas/index.js";
|
|
16
|
+
// OCI exports
|
|
17
|
+
export * from "./oci/index.js";
|
|
18
|
+
// Marketplace exports
|
|
19
|
+
export * from "./marketplace/index.js";
|
|
20
|
+
// Adapter exports
|
|
21
|
+
export * from "./adapters/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["// Re-export everything from new structure\nexport * from \"./client/OciRegistryClient.js\";\nexport * from \"./types/ManifestTypes.js\";\nexport * from \"./types/RegistryTypes.js\";\nexport * from \"./types/AuthTypes.js\";\nexport * from \"./types/RequestTypes.js\";\nexport * from \"./parsing/RepoParser.js\";\nexport * from \"./parsing/IndexParser.js\";\nexport * from \"./parsing/LinkHeaderParser.js\";\nexport * from \"./utils/ValidationUtils.js\";\nexport * from \"./utils/DigestUtils.js\";\nexport * from \"./errors/RegistryErrors.js\";\nexport * from \"./ghcr/GhcrConstants.js\";\nexport type { FetchAdapter } from \"./client/FetchAdapter.js\";\nexport type { RegistryClientOptions } from \"./client/RegistryClientOptions.js\";\n"],
|
|
5
|
-
"mappings": "AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
4
|
+
"sourcesContent": ["// Re-export everything from new structure\nexport * from \"./client/OciRegistryClient.js\";\nexport * from \"./types/ManifestTypes.js\";\nexport * from \"./types/RegistryTypes.js\";\nexport * from \"./types/AuthTypes.js\";\nexport * from \"./types/RequestTypes.js\";\nexport * from \"./parsing/RepoParser.js\";\nexport * from \"./parsing/IndexParser.js\";\nexport * from \"./parsing/LinkHeaderParser.js\";\nexport * from \"./utils/ValidationUtils.js\";\nexport * from \"./utils/DigestUtils.js\";\nexport * from \"./errors/RegistryErrors.js\";\nexport * from \"./ghcr/GhcrConstants.js\";\nexport type { FetchAdapter } from \"./client/FetchAdapter.js\";\nexport type { RegistryClientOptions } from \"./client/RegistryClientOptions.js\";\n\n// Schema exports\nexport * from \"./schemas/index.js\";\n\n// OCI exports\nexport * from \"./oci/index.js\";\n\n// Marketplace exports\nexport * from \"./marketplace/index.js\";\n\n// Adapter exports\nexport * from \"./adapters/index.js\";\n"],
|
|
5
|
+
"mappings": "AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAKd,cAAc;AAGd,cAAc;AAGd,cAAc;AAGd,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { FetchAdapter } from "../client/FetchAdapter.js";
|
|
2
|
+
import type { MarketplacePlugin } from "../schemas/marketplace.js";
|
|
3
|
+
export declare const DEFAULT_MARKETPLACE_URL = "https://shard-for-obsidian.github.io/shard/plugins.json";
|
|
4
|
+
export interface MarketplaceClientOptions {
|
|
5
|
+
marketplaceUrl?: string;
|
|
6
|
+
adapter: FetchAdapter;
|
|
7
|
+
cache?: {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
ttl: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Client for fetching marketplace data from the registry.
|
|
14
|
+
* Supports optional caching with configurable TTL.
|
|
15
|
+
*/
|
|
16
|
+
export declare class MarketplaceClient {
|
|
17
|
+
private marketplaceUrl;
|
|
18
|
+
private adapter;
|
|
19
|
+
private cache?;
|
|
20
|
+
private cacheTTL?;
|
|
21
|
+
constructor(options: MarketplaceClientOptions);
|
|
22
|
+
/**
|
|
23
|
+
* Fetch all plugins from the marketplace.
|
|
24
|
+
* Uses cached data if available and not expired.
|
|
25
|
+
*/
|
|
26
|
+
fetchPlugins(): Promise<MarketplacePlugin[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Find a plugin by ID.
|
|
29
|
+
*/
|
|
30
|
+
findPluginById(pluginId: string): Promise<MarketplacePlugin | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Search plugins by keyword (searches in name, description, author, tags).
|
|
33
|
+
*/
|
|
34
|
+
searchPlugins(keyword: string): Promise<MarketplacePlugin[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Clear the cache and force a fresh fetch on next call.
|
|
37
|
+
*/
|
|
38
|
+
clearCache(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Update the marketplace URL.
|
|
41
|
+
*/
|
|
42
|
+
setMarketplaceUrl(url: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* Update the cache TTL.
|
|
45
|
+
*/
|
|
46
|
+
setCacheTTL(ttl: number): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/marketplace/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,uBAAuB,4DACuB,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAOD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,KAAK,CAAC,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,OAAO,EAAE,wBAAwB;IAU7C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuDlD;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAKzE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAclE;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG/B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
export const DEFAULT_MARKETPLACE_URL = "https://shard-for-obsidian.github.io/shard/plugins.json";
|
|
2
|
+
/**
|
|
3
|
+
* Client for fetching marketplace data from the registry.
|
|
4
|
+
* Supports optional caching with configurable TTL.
|
|
5
|
+
*/
|
|
6
|
+
export class MarketplaceClient {
|
|
7
|
+
marketplaceUrl;
|
|
8
|
+
adapter;
|
|
9
|
+
cache;
|
|
10
|
+
cacheTTL;
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.marketplaceUrl = options.marketplaceUrl || DEFAULT_MARKETPLACE_URL;
|
|
13
|
+
this.adapter = options.adapter;
|
|
14
|
+
if (options.cache?.enabled) {
|
|
15
|
+
this.cache = new Map();
|
|
16
|
+
this.cacheTTL = options.cache.ttl;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Fetch all plugins from the marketplace.
|
|
21
|
+
* Uses cached data if available and not expired.
|
|
22
|
+
*/
|
|
23
|
+
async fetchPlugins() {
|
|
24
|
+
// Check cache if enabled
|
|
25
|
+
if (this.cache && this.cacheTTL) {
|
|
26
|
+
const cached = this.cache.get(this.marketplaceUrl);
|
|
27
|
+
if (cached) {
|
|
28
|
+
const age = Date.now() - cached.fetchedAt;
|
|
29
|
+
if (age < this.cacheTTL) {
|
|
30
|
+
return cached.plugins;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Fetch fresh data
|
|
35
|
+
try {
|
|
36
|
+
const response = await this.adapter.fetch(this.marketplaceUrl);
|
|
37
|
+
if (!response.ok) {
|
|
38
|
+
throw new Error(`Failed to fetch marketplace data: ${response.status} ${response.statusText}`);
|
|
39
|
+
}
|
|
40
|
+
const data = (await response.json());
|
|
41
|
+
if (!data.plugins || !Array.isArray(data.plugins)) {
|
|
42
|
+
throw new Error("Invalid marketplace data format");
|
|
43
|
+
}
|
|
44
|
+
// Update cache if enabled
|
|
45
|
+
if (this.cache) {
|
|
46
|
+
this.cache.set(this.marketplaceUrl, {
|
|
47
|
+
plugins: data.plugins,
|
|
48
|
+
fetchedAt: Date.now(),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return data.plugins;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// If fetch fails but we have stale cache, use it
|
|
55
|
+
if (this.cache) {
|
|
56
|
+
const cached = this.cache.get(this.marketplaceUrl);
|
|
57
|
+
if (cached) {
|
|
58
|
+
console.warn("[MarketplaceClient] Using stale cache due to fetch error:", error);
|
|
59
|
+
return cached.plugins;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Otherwise, rethrow the error
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Find a plugin by ID.
|
|
68
|
+
*/
|
|
69
|
+
async findPluginById(pluginId) {
|
|
70
|
+
const plugins = await this.fetchPlugins();
|
|
71
|
+
return plugins.find((p) => p.id === pluginId) || null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Search plugins by keyword (searches in name, description, author, tags).
|
|
75
|
+
*/
|
|
76
|
+
async searchPlugins(keyword) {
|
|
77
|
+
const plugins = await this.fetchPlugins();
|
|
78
|
+
const lowerKeyword = keyword.toLowerCase();
|
|
79
|
+
return plugins.filter((p) => p.name.toLowerCase().includes(lowerKeyword) ||
|
|
80
|
+
p.description.toLowerCase().includes(lowerKeyword) ||
|
|
81
|
+
p.author.toLowerCase().includes(lowerKeyword) ||
|
|
82
|
+
p.id.toLowerCase().includes(lowerKeyword) ||
|
|
83
|
+
p.tags?.some((tag) => tag.toLowerCase().includes(lowerKeyword)));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Clear the cache and force a fresh fetch on next call.
|
|
87
|
+
*/
|
|
88
|
+
clearCache() {
|
|
89
|
+
this.cache?.clear();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Update the marketplace URL.
|
|
93
|
+
*/
|
|
94
|
+
setMarketplaceUrl(url) {
|
|
95
|
+
this.marketplaceUrl = url;
|
|
96
|
+
this.clearCache();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Update the cache TTL.
|
|
100
|
+
*/
|
|
101
|
+
setCacheTTL(ttl) {
|
|
102
|
+
this.cacheTTL = ttl;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/marketplace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MarketplaceClient, DEFAULT_MARKETPLACE_URL, } from "./client.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oci/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { queryOciTags, queryTagMetadata, } from "./tags.js";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { FetchAdapter } from "../client/FetchAdapter.js";
|
|
2
|
+
export interface QueryOciTagsOptions {
|
|
3
|
+
registryUrl: string;
|
|
4
|
+
adapter: FetchAdapter;
|
|
5
|
+
token?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface QueryTagMetadataOptions {
|
|
8
|
+
registryUrl: string;
|
|
9
|
+
tag: string;
|
|
10
|
+
adapter: FetchAdapter;
|
|
11
|
+
token?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TagMetadata {
|
|
14
|
+
publishedAt: string;
|
|
15
|
+
size: number;
|
|
16
|
+
annotations: Record<string, string>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Query all available tags from an OCI registry.
|
|
20
|
+
*/
|
|
21
|
+
export declare function queryOciTags(opts: QueryOciTagsOptions): Promise<string[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Query metadata for a specific tag.
|
|
24
|
+
*/
|
|
25
|
+
export declare function queryTagMetadata(opts: QueryTagMetadataOptions): Promise<TagMetadata>;
|
|
26
|
+
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/oci/tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAyED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAqDtB"}
|