@aura3d/asset-index 1.0.5
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/CanonicalAsset.d.ts +79 -0
- package/dist/CanonicalAsset.d.ts.map +1 -0
- package/dist/CanonicalAsset.js +50 -0
- package/dist/CanonicalAsset.js.map +1 -0
- package/dist/IndexStore.d.ts +67 -0
- package/dist/IndexStore.d.ts.map +1 -0
- package/dist/IndexStore.js +112 -0
- package/dist/IndexStore.js.map +1 -0
- package/dist/SourceAdapter.d.ts +54 -0
- package/dist/SourceAdapter.d.ts.map +1 -0
- package/dist/SourceAdapter.js +9 -0
- package/dist/SourceAdapter.js.map +1 -0
- package/dist/adapters/aura-index.d.ts +11 -0
- package/dist/adapters/aura-index.d.ts.map +1 -0
- package/dist/adapters/aura-index.js +64 -0
- package/dist/adapters/aura-index.js.map +1 -0
- package/dist/adapters/jsdelivr-mirror.d.ts +7 -0
- package/dist/adapters/jsdelivr-mirror.d.ts.map +1 -0
- package/dist/adapters/jsdelivr-mirror.js +80 -0
- package/dist/adapters/jsdelivr-mirror.js.map +1 -0
- package/dist/adapters/khronos.d.ts +3 -0
- package/dist/adapters/khronos.d.ts.map +1 -0
- package/dist/adapters/khronos.js +78 -0
- package/dist/adapters/khronos.js.map +1 -0
- package/dist/adapters/marketplace.d.ts +3 -0
- package/dist/adapters/marketplace.d.ts.map +1 -0
- package/dist/adapters/marketplace.js +70 -0
- package/dist/adapters/marketplace.js.map +1 -0
- package/dist/adapters/os3a.d.ts +3 -0
- package/dist/adapters/os3a.d.ts.map +1 -0
- package/dist/adapters/os3a.js +110 -0
- package/dist/adapters/os3a.js.map +1 -0
- package/dist/adapters/poly-haven.d.ts +3 -0
- package/dist/adapters/poly-haven.d.ts.map +1 -0
- package/dist/adapters/poly-haven.js +110 -0
- package/dist/adapters/poly-haven.js.map +1 -0
- package/dist/adapters/poly-pizza.d.ts +35 -0
- package/dist/adapters/poly-pizza.d.ts.map +1 -0
- package/dist/adapters/poly-pizza.js +109 -0
- package/dist/adapters/poly-pizza.js.map +1 -0
- package/dist/adapters/sketchfab.d.ts +20 -0
- package/dist/adapters/sketchfab.d.ts.map +1 -0
- package/dist/adapters/sketchfab.js +183 -0
- package/dist/adapters/sketchfab.js.map +1 -0
- package/dist/embedding.d.ts +56 -0
- package/dist/embedding.d.ts.map +1 -0
- package/dist/embedding.js +121 -0
- package/dist/embedding.js.map +1 -0
- package/dist/federate.d.ts +56 -0
- package/dist/federate.d.ts.map +1 -0
- package/dist/federate.js +80 -0
- package/dist/federate.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/ranking.d.ts +6 -0
- package/dist/ranking.d.ts.map +1 -0
- package/dist/ranking.js +71 -0
- package/dist/ranking.js.map +1 -0
- package/dist/refresh.d.ts +54 -0
- package/dist/refresh.d.ts.map +1 -0
- package/dist/refresh.js +48 -0
- package/dist/refresh.js.map +1 -0
- package/package.json +19 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AuraCanonicalAsset } from "./CanonicalAsset.js";
|
|
2
|
+
import type { ResolveConstraints } from "./SourceAdapter.js";
|
|
3
|
+
export declare function scoreAsset(asset: AuraCanonicalAsset, text: string): number;
|
|
4
|
+
/** True when an asset satisfies every supplied constraint. */
|
|
5
|
+
export declare function matchesConstraints(asset: AuraCanonicalAsset, constraints: ResolveConstraints | undefined): boolean;
|
|
6
|
+
//# sourceMappingURL=ranking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranking.d.ts","sourceRoot":"","sources":["../../../../packages/asset-index/src/ranking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAoB7D,wBAAgB,UAAU,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAoB1E;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,kBAAkB,GAAG,SAAS,GAC1C,OAAO,CAkCT"}
|
package/dist/ranking.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight, dependency-free relevance scoring for v1.
|
|
3
|
+
*
|
|
4
|
+
* Scores an asset against the query terms by weighted field hits:
|
|
5
|
+
* title match > tag match > description match.
|
|
6
|
+
*
|
|
7
|
+
* This is deliberately a keyword baseline. The intended upgrade is vector
|
|
8
|
+
* embeddings (semantic match on `title`+`tags`+`description`); the federation
|
|
9
|
+
* layer calls `scoreAsset` through a single seam so that swap is local.
|
|
10
|
+
*/
|
|
11
|
+
function queryTerms(text) {
|
|
12
|
+
return text
|
|
13
|
+
.toLowerCase()
|
|
14
|
+
.split(/[^a-z0-9]+/)
|
|
15
|
+
.filter((t) => t.length > 1);
|
|
16
|
+
}
|
|
17
|
+
export function scoreAsset(asset, text) {
|
|
18
|
+
const terms = queryTerms(text);
|
|
19
|
+
if (terms.length === 0)
|
|
20
|
+
return 0;
|
|
21
|
+
const title = asset.title.toLowerCase();
|
|
22
|
+
const description = (asset.description ?? "").toLowerCase();
|
|
23
|
+
const tagSet = new Set(asset.tags);
|
|
24
|
+
let score = 0;
|
|
25
|
+
for (const term of terms) {
|
|
26
|
+
if (title.includes(term))
|
|
27
|
+
score += 5;
|
|
28
|
+
if (tagSet.has(term))
|
|
29
|
+
score += 3;
|
|
30
|
+
if (description.includes(term))
|
|
31
|
+
score += 1;
|
|
32
|
+
}
|
|
33
|
+
// Reward breadth of coverage so an asset hitting many query terms ranks above
|
|
34
|
+
// one that hits a single term repeatedly.
|
|
35
|
+
const covered = terms.filter((t) => title.includes(t) || tagSet.has(t) || description.includes(t)).length;
|
|
36
|
+
return score + covered * 2;
|
|
37
|
+
}
|
|
38
|
+
/** True when an asset satisfies every supplied constraint. */
|
|
39
|
+
export function matchesConstraints(asset, constraints) {
|
|
40
|
+
if (!constraints)
|
|
41
|
+
return true;
|
|
42
|
+
if (constraints.redistributableOnly) {
|
|
43
|
+
if (asset.access !== "direct-download" || !asset.license.verified || !asset.license.redistributable) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (constraints.format && asset.format !== constraints.format) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
if (constraints.license && constraints.license.length > 0) {
|
|
51
|
+
const family = asset.license.spdx.startsWith("CC0")
|
|
52
|
+
? "CC0"
|
|
53
|
+
: asset.license.spdx.startsWith("CC-BY")
|
|
54
|
+
? "CC-BY"
|
|
55
|
+
: null;
|
|
56
|
+
if (!family || !constraints.license.includes(family))
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (typeof constraints.maxTriangles === "number" &&
|
|
60
|
+
typeof asset.triangles === "number" &&
|
|
61
|
+
asset.triangles > constraints.maxTriangles) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (typeof constraints.animated === "boolean" &&
|
|
65
|
+
typeof asset.hasAnimations === "boolean" &&
|
|
66
|
+
asset.hasAnimations !== constraints.animated) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=ranking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ranking.js","sourceRoot":"","sources":["../../../../packages/asset-index/src/ranking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { AdapterContext, SourceAdapter } from "./SourceAdapter.js";
|
|
2
|
+
import type { AuraCanonicalAsset } from "./CanonicalAsset.js";
|
|
3
|
+
/**
|
|
4
|
+
* The minimal write surface {@link refreshIndex} needs from a store. The
|
|
5
|
+
* file-backed `IndexStore` satisfies this structurally, and so does a
|
|
6
|
+
* storage-backed implementation (e.g. an R2-backed store in a Cloudflare
|
|
7
|
+
* Worker) — so the cron logic is decoupled from `node:fs` and runs unchanged in
|
|
8
|
+
* a serverless runtime.
|
|
9
|
+
*/
|
|
10
|
+
export interface WritableAssetIndex {
|
|
11
|
+
getWatermark(source: string): string | null;
|
|
12
|
+
setWatermark(source: string, watermark: string): void;
|
|
13
|
+
upsertMany(source: string, assets: Iterable<AuraCanonicalAsset>): void;
|
|
14
|
+
save(updatedAt?: string): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Outcome of a single {@link refreshIndex} pass.
|
|
18
|
+
*
|
|
19
|
+
* - `upserted` is the total number of canonical records written across sources.
|
|
20
|
+
* - `perSource` breaks that down by adapter id (0 for an adapter that failed).
|
|
21
|
+
* - `warnings` collects per-adapter failures so one flaky source cannot collapse
|
|
22
|
+
* the whole refresh; the store is still saved with whatever succeeded.
|
|
23
|
+
*/
|
|
24
|
+
export interface RefreshResult {
|
|
25
|
+
readonly upserted: number;
|
|
26
|
+
readonly perSource: Record<string, number>;
|
|
27
|
+
readonly warnings: string[];
|
|
28
|
+
}
|
|
29
|
+
export interface RefreshOptions {
|
|
30
|
+
/**
|
|
31
|
+
* Caller-supplied timestamp threaded into {@link IndexStore.save} so the
|
|
32
|
+
* refresh stays deterministic (no internal wall-clock read). Typically an
|
|
33
|
+
* ISO-8601 string captured by the cron at the top of the run.
|
|
34
|
+
*/
|
|
35
|
+
readonly updatedAt?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Refresh the durable asset index from every adapter, then persist it.
|
|
39
|
+
*
|
|
40
|
+
* This is the engine of the "live" catalog: a scheduled cron / CI job calls
|
|
41
|
+
* {@link refreshIndex} on a cadence to pull new/changed assets into the
|
|
42
|
+
* {@link IndexStore}, and the resolver reads candidates back out of that same
|
|
43
|
+
* store at query time (decoupling user-facing latency from source fetches).
|
|
44
|
+
*
|
|
45
|
+
* For each adapter:
|
|
46
|
+
* - if it exposes `fetchSince`, call it with the source's stored watermark to
|
|
47
|
+
* pull only what changed, then advance the watermark;
|
|
48
|
+
* - otherwise fall back to a broad `search({ text: "" })` to (re)load its
|
|
49
|
+
* catalog.
|
|
50
|
+
* Failures are caught per-adapter and recorded as warnings; surviving results
|
|
51
|
+
* are upserted (last-write-wins by id) and the store is saved once at the end.
|
|
52
|
+
*/
|
|
53
|
+
export declare function refreshIndex(adapters: readonly SourceAdapter[], store: WritableAssetIndex, ctx: AdapterContext, opts?: RefreshOptions): Promise<RefreshResult>;
|
|
54
|
+
//# sourceMappingURL=refresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../../packages/asset-index/src/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACvE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,KAAK,EAAE,kBAAkB,EACzB,GAAG,EAAE,cAAc,EACnB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,CA8BxB"}
|
package/dist/refresh.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refresh the durable asset index from every adapter, then persist it.
|
|
3
|
+
*
|
|
4
|
+
* This is the engine of the "live" catalog: a scheduled cron / CI job calls
|
|
5
|
+
* {@link refreshIndex} on a cadence to pull new/changed assets into the
|
|
6
|
+
* {@link IndexStore}, and the resolver reads candidates back out of that same
|
|
7
|
+
* store at query time (decoupling user-facing latency from source fetches).
|
|
8
|
+
*
|
|
9
|
+
* For each adapter:
|
|
10
|
+
* - if it exposes `fetchSince`, call it with the source's stored watermark to
|
|
11
|
+
* pull only what changed, then advance the watermark;
|
|
12
|
+
* - otherwise fall back to a broad `search({ text: "" })` to (re)load its
|
|
13
|
+
* catalog.
|
|
14
|
+
* Failures are caught per-adapter and recorded as warnings; surviving results
|
|
15
|
+
* are upserted (last-write-wins by id) and the store is saved once at the end.
|
|
16
|
+
*/
|
|
17
|
+
export async function refreshIndex(adapters, store, ctx, opts = {}) {
|
|
18
|
+
const perSource = {};
|
|
19
|
+
const warnings = [];
|
|
20
|
+
let upserted = 0;
|
|
21
|
+
for (const adapter of adapters) {
|
|
22
|
+
perSource[adapter.id] = 0;
|
|
23
|
+
try {
|
|
24
|
+
if (adapter.fetchSince) {
|
|
25
|
+
const { watermark, assets } = await adapter.fetchSince(store.getWatermark(adapter.id), ctx);
|
|
26
|
+
store.upsertMany(adapter.id, assets);
|
|
27
|
+
store.setWatermark(adapter.id, watermark);
|
|
28
|
+
perSource[adapter.id] = assets.length;
|
|
29
|
+
upserted += assets.length;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const assets = await adapter.search({ text: "" }, ctx);
|
|
33
|
+
store.upsertMany(adapter.id, assets);
|
|
34
|
+
perSource[adapter.id] = assets.length;
|
|
35
|
+
upserted += assets.length;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
warnings.push(`${adapter.id}: ${errorMessage(err)}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
await store.save(opts.updatedAt);
|
|
43
|
+
return { upserted, perSource, warnings };
|
|
44
|
+
}
|
|
45
|
+
function errorMessage(err) {
|
|
46
|
+
return err instanceof Error ? err.message : String(err);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=refresh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../../packages/asset-index/src/refresh.ts"],"names":[],"mappings":"AAwCA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAkC,EAClC,KAAyB,EACzB,GAAmB,EACnB,OAAuB,EAAE;IAEzB,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CACpD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAC9B,GAAG,CACJ,CAAC;gBACF,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACrC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC1C,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBACvD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACrC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aura3d/asset-index",
|
|
3
|
+
"version": "1.0.5",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
}
|
|
19
|
+
}
|