@hatk/hatk 0.0.1-alpha.63 → 0.0.1-alpha.65
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/backfill.d.ts +10 -0
- package/dist/backfill.d.ts.map +1 -1
- package/dist/backfill.js +21 -8
- package/dist/car.d.ts.map +1 -1
- package/dist/car.js +2 -2
- package/dist/cbor.js +1 -1
- package/dist/cli.js +3 -3
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/database/adapter-factory.js +4 -4
- package/dist/database/adapters/duckdb-search.d.ts.map +1 -1
- package/dist/database/adapters/duckdb.d.ts.map +1 -1
- package/dist/database/adapters/sqlite-search.d.ts.map +1 -1
- package/dist/database/adapters/sqlite.d.ts.map +1 -1
- package/dist/database/db.js +5 -5
- package/dist/database/fts.js +4 -4
- package/dist/database/index.js +4 -4
- package/dist/database/schema.js +1 -1
- package/dist/dev-entry.d.ts.map +1 -1
- package/dist/dev-entry.js +23 -21
- package/dist/feeds.d.ts +4 -4
- package/dist/feeds.d.ts.map +1 -1
- package/dist/feeds.js +3 -3
- package/dist/hooks.js +6 -6
- package/dist/hydrate.js +2 -2
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +17 -10
- package/dist/labels.d.ts +1 -1
- package/dist/labels.d.ts.map +1 -1
- package/dist/labels.js +2 -2
- package/dist/main.js +27 -25
- package/dist/mst.js +1 -1
- package/dist/oauth/db.js +1 -1
- package/dist/oauth/dpop.js +1 -1
- package/dist/oauth/server.d.ts +3 -3
- package/dist/oauth/server.d.ts.map +1 -1
- package/dist/oauth/server.js +11 -11
- package/dist/oauth/session.js +1 -1
- package/dist/opengraph.d.ts +1 -1
- package/dist/opengraph.d.ts.map +1 -1
- package/dist/opengraph.js +2 -2
- package/dist/pds-proxy.d.ts.map +1 -1
- package/dist/pds-proxy.js +7 -7
- package/dist/private-collections.d.ts +8 -0
- package/dist/private-collections.d.ts.map +1 -0
- package/dist/private-collections.js +22 -0
- package/dist/push.js +2 -2
- package/dist/renderer.d.ts +1 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +1 -1
- package/dist/response.js +1 -1
- package/dist/scanner.js +1 -1
- package/dist/seed.js +1 -1
- package/dist/server-init.js +9 -9
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +36 -19
- package/dist/setup.d.ts +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +2 -2
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +16 -14
- package/dist/views.js +2 -2
- package/dist/vite-plugin.js +1 -1
- package/dist/xrpc-client.d.ts.map +1 -1
- package/dist/xrpc.d.ts.map +1 -1
- package/dist/xrpc.js +5 -5
- package/package.json +3 -2
package/dist/oauth/server.d.ts
CHANGED
|
@@ -42,6 +42,9 @@ export declare function getProtectedResourceMetadata(issuer: string, config: OAu
|
|
|
42
42
|
};
|
|
43
43
|
export declare function getJwks(): {
|
|
44
44
|
keys: {
|
|
45
|
+
kid: string;
|
|
46
|
+
use: string;
|
|
47
|
+
alg: string;
|
|
45
48
|
crv?: string;
|
|
46
49
|
d?: string;
|
|
47
50
|
dp?: string;
|
|
@@ -58,9 +61,6 @@ export declare function getJwks(): {
|
|
|
58
61
|
qi?: string;
|
|
59
62
|
x?: string;
|
|
60
63
|
y?: string;
|
|
61
|
-
kid: string;
|
|
62
|
-
use: string;
|
|
63
|
-
alg: string;
|
|
64
64
|
}[];
|
|
65
65
|
};
|
|
66
66
|
export declare function getClientMetadata(issuer: string, config: OAuthConfig): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/oauth/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AA4C/C;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAEjB,IAAI,EAChB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB,wBAAwB,GACxB,eAAe;aACH,WAAW,EAAE,MAAM;aACnB,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/oauth/server.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth/server.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// packages/hatk/src/oauth/server.ts
|
|
2
|
-
import { generateKeyPair, importPrivateKey, computeJwkThumbprint, signJwt, parseJwt, verifyEs256, importPublicKey, randomToken, sha256, base64UrlEncode, } from
|
|
3
|
-
import { parseDpopProof, createDpopProof } from
|
|
4
|
-
import { initSession } from
|
|
5
|
-
import { resolveClient, validateRedirectUri, isLoopbackClient } from
|
|
6
|
-
import { discoverAuthServer, resolveHandle, fetchProtectedResourceMetadata, fetchAuthServerMetadata, } from
|
|
7
|
-
import { getServerKey, storeServerKey, storeOAuthRequest, getOAuthRequest, deleteOAuthRequest, storeAuthCode, consumeAuthCode, storeSession, deleteSession, checkAndStoreDpopJti, cleanupExpiredOAuth, storeRefreshToken, getRefreshToken, revokeRefreshToken, } from
|
|
8
|
-
import { emit } from
|
|
9
|
-
import { querySQL } from
|
|
10
|
-
import { fireOnLoginHook } from
|
|
2
|
+
import { generateKeyPair, importPrivateKey, computeJwkThumbprint, signJwt, parseJwt, verifyEs256, importPublicKey, randomToken, sha256, base64UrlEncode, } from "./crypto.js";
|
|
3
|
+
import { parseDpopProof, createDpopProof } from "./dpop.js";
|
|
4
|
+
import { initSession } from "./session.js";
|
|
5
|
+
import { resolveClient, validateRedirectUri, isLoopbackClient } from "./client.js";
|
|
6
|
+
import { discoverAuthServer, resolveHandle, fetchProtectedResourceMetadata, fetchAuthServerMetadata, } from "./discovery.js";
|
|
7
|
+
import { getServerKey, storeServerKey, storeOAuthRequest, getOAuthRequest, deleteOAuthRequest, storeAuthCode, consumeAuthCode, storeSession, deleteSession, checkAndStoreDpopJti, cleanupExpiredOAuth, storeRefreshToken, getRefreshToken, revokeRefreshToken, } from "./db.js";
|
|
8
|
+
import { emit } from "../logger.js";
|
|
9
|
+
import { querySQL } from "../database/db.js";
|
|
10
|
+
import { fireOnLoginHook } from "../hooks.js";
|
|
11
11
|
const SERVER_KEY_KID = 'appview-oauth-key';
|
|
12
12
|
/**
|
|
13
13
|
* RFC 6749 §5.2 OAuth token-endpoint error.
|
|
@@ -447,7 +447,7 @@ export async function serverLogin(config, handle, options) {
|
|
|
447
447
|
// --- OAuth Callback (PDS redirects here) ---
|
|
448
448
|
export async function handleCallback(config, code, state, iss) {
|
|
449
449
|
// Find the matching OAuth request by pds_state (unique per PAR)
|
|
450
|
-
const { querySQL } = await import(
|
|
450
|
+
const { querySQL } = await import("../database/db.js");
|
|
451
451
|
let request = null;
|
|
452
452
|
if (state) {
|
|
453
453
|
const rows = await querySQL(`SELECT * FROM _oauth_requests WHERE pds_state = $1 AND expires_at > $2`, [
|
|
@@ -536,7 +536,7 @@ export async function handleCallback(config, code, state, iss) {
|
|
|
536
536
|
await storeAuthCode(clientCode, request.request_uri);
|
|
537
537
|
// Update the request with the DID (in case it wasn't set during PAR)
|
|
538
538
|
if (!request.did && did) {
|
|
539
|
-
const { runSQL } = await import(
|
|
539
|
+
const { runSQL } = await import("../database/db.js");
|
|
540
540
|
await runSQL('UPDATE _oauth_requests SET did = $1 WHERE request_uri = $2', [did, request.request_uri]);
|
|
541
541
|
}
|
|
542
542
|
// Build redirect back to client
|
package/dist/oauth/session.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SSR session cookie — AES-GCM encrypted HttpOnly cookie for server-side viewer resolution.
|
|
2
2
|
// Separate from OAuth protocol flows but uses the same server keypair for key derivation.
|
|
3
|
-
import { base64UrlEncode, base64UrlDecode } from
|
|
3
|
+
import { base64UrlEncode, base64UrlDecode } from "./crypto.js";
|
|
4
4
|
let _privateJwk;
|
|
5
5
|
let _cookieName = '__hatk_session';
|
|
6
6
|
const MAX_AGE = 30 * 24 * 60 * 60; // 30 days in seconds
|
package/dist/opengraph.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface OpengraphResult {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
export declare function defineOG(path: string, generate: (ctx: OpengraphContext) => Promise<OpengraphResult>): {
|
|
32
|
-
__type:
|
|
32
|
+
__type: "og";
|
|
33
33
|
path: string;
|
|
34
34
|
generate: (ctx: OpengraphContext) => Promise<OpengraphResult>;
|
|
35
35
|
};
|
package/dist/opengraph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opengraph.d.ts","sourceRoot":"","sources":["../src/opengraph.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC3B,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAA;QAC3C,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACF;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACpD;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,CAAA;IACnB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAA;IAC5D,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAChD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"opengraph.d.ts","sourceRoot":"","sources":["../src/opengraph.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC3B,QAAQ,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAA;QAC3C,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACF;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACpD;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,CAAA;IACnB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAA;IAC5D,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAChD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,eAAe,CAAC;;;oBAA7C,gBAAgB,KAAK,OAAO,CAAC,eAAe,CAAC;EAEnG;AAkCD,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0EhE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;CAC9D,GAAG,IAAI,CAsDP;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BrF;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyC3E"}
|
package/dist/opengraph.js
CHANGED
|
@@ -8,7 +8,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
8
8
|
};
|
|
9
9
|
import { resolve } from 'node:path';
|
|
10
10
|
import { readFileSync, readdirSync } from 'node:fs';
|
|
11
|
-
import { log } from
|
|
11
|
+
import { log } from "./logger.js";
|
|
12
12
|
// Lazy-imported to avoid CJS require() issues in Vite's module runner
|
|
13
13
|
let _satori = null;
|
|
14
14
|
let _Resvg = null;
|
|
@@ -22,7 +22,7 @@ async function getResvg() {
|
|
|
22
22
|
_Resvg = (await import('@resvg/resvg-js')).Resvg;
|
|
23
23
|
return _Resvg;
|
|
24
24
|
}
|
|
25
|
-
import { buildXrpcContext } from
|
|
25
|
+
import { buildXrpcContext } from "./xrpc.js";
|
|
26
26
|
export function defineOG(path, generate) {
|
|
27
27
|
return { __type: 'og', path, generate };
|
|
28
28
|
}
|
package/dist/pds-proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds-proxy.d.ts","sourceRoot":"","sources":["../src/pds-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAU9C,qBAAa,UAAW,SAAQ,KAAK;IAE1B,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"pds-proxy.d.ts","sourceRoot":"","sources":["../src/pds-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAU9C,qBAAa,UAAW,SAAQ,KAAK;IAE1B,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAIlB;AAED,qBAAa,sBAAuB,SAAQ,UAAU;;CAIrD;AAuHD,wBAAsB,eAAe,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACvB,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC3F,OAAO,CAAC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwCzC;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACvB,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyBlC;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACvB,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1F,OAAO,CAAC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqCzC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAYD,wBAAsB,cAAc,CAClC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACvB,KAAK,EAAE;IAAE,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,GACjC,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAgE5C;AAED,wBAAsB,aAAa,CACjC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACvB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAS5B"}
|
package/dist/pds-proxy.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Shared PDS proxy functions — used by both HTTP route handlers and XRPC handlers.
|
|
2
|
-
import { getSession, getServerKey, deleteSession } from
|
|
3
|
-
import { createDpopProof } from
|
|
4
|
-
import { refreshPdsSession } from
|
|
2
|
+
import { getSession, getServerKey, deleteSession } from "./oauth/db.js";
|
|
3
|
+
import { createDpopProof } from "./oauth/dpop.js";
|
|
4
|
+
import { refreshPdsSession } from "./oauth/server.js";
|
|
5
5
|
import { validateRecord } from '@bigmoves/lexicon';
|
|
6
|
-
import { getLexiconArray } from
|
|
7
|
-
import { insertRecord, deleteRecord as dbDeleteRecord } from
|
|
8
|
-
import { emit } from
|
|
9
|
-
import { runLabelRules } from
|
|
6
|
+
import { getLexiconArray } from "./database/schema.js";
|
|
7
|
+
import { insertRecord, deleteRecord as dbDeleteRecord } from "./database/db.js";
|
|
8
|
+
import { emit } from "./logger.js";
|
|
9
|
+
import { runLabelRules } from "./labels.js";
|
|
10
10
|
export class ProxyError extends Error {
|
|
11
11
|
status;
|
|
12
12
|
constructor(status, message) {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function setPrivateCollections(list: string[]): void;
|
|
2
|
+
export declare function isPrivateCollection(nsid: string | null | undefined): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* The collection segment of an AT-URI: at://{did}/{collection}/{rkey}.
|
|
5
|
+
* Splitting yields ['at:', '', did, collection, rkey].
|
|
6
|
+
*/
|
|
7
|
+
export declare function collectionFromUri(uri: string): string | undefined;
|
|
8
|
+
//# sourceMappingURL=private-collections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-collections.d.ts","sourceRoot":"","sources":["../src/private-collections.ts"],"names":[],"mappings":"AASA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGjE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collections that are indexed and queryable in-process but must never be
|
|
3
|
+
* served by the built-in dev.hatk.* record endpoints.
|
|
4
|
+
*
|
|
5
|
+
* Held module-level, mirroring the schema registry, so the guard can be applied
|
|
6
|
+
* inside handlers without threading config through every signature.
|
|
7
|
+
*/
|
|
8
|
+
let privateCollections = new Set();
|
|
9
|
+
export function setPrivateCollections(list) {
|
|
10
|
+
privateCollections = new Set(list);
|
|
11
|
+
}
|
|
12
|
+
export function isPrivateCollection(nsid) {
|
|
13
|
+
return nsid != null && privateCollections.has(nsid);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The collection segment of an AT-URI: at://{did}/{collection}/{rkey}.
|
|
17
|
+
* Splitting yields ['at:', '', did, collection, rkey].
|
|
18
|
+
*/
|
|
19
|
+
export function collectionFromUri(uri) {
|
|
20
|
+
const parts = uri.split('/');
|
|
21
|
+
return parts.length > 4 ? parts[3] : undefined;
|
|
22
|
+
}
|
package/dist/push.js
CHANGED
|
@@ -10,8 +10,8 @@ import { connect } from 'node:http2';
|
|
|
10
10
|
import { readFileSync } from 'node:fs';
|
|
11
11
|
import { createSign } from 'node:crypto';
|
|
12
12
|
import { resolve } from 'node:path';
|
|
13
|
-
import { emit } from
|
|
14
|
-
import { runSQL, querySQL } from
|
|
13
|
+
import { emit } from "./logger.js";
|
|
14
|
+
import { runSQL, querySQL } from "./database/db.js";
|
|
15
15
|
let pushConfig = null;
|
|
16
16
|
let apnsKey = null;
|
|
17
17
|
let cachedJwt = null;
|
package/dist/renderer.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface RenderResult {
|
|
|
7
7
|
}
|
|
8
8
|
export type RendererHandler = (request: Request, manifest: SSRManifest) => Promise<RenderResult>;
|
|
9
9
|
export declare function defineRenderer(handler: RendererHandler): {
|
|
10
|
-
__type:
|
|
10
|
+
__type: "renderer";
|
|
11
11
|
handler: RendererHandler;
|
|
12
12
|
};
|
|
13
13
|
export declare function registerRenderer(handler: RendererHandler): void;
|
package/dist/renderer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;AAKhG,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;AAKhG,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe;;;EAEtD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAG/D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAE1D;AAED,wBAAgB,WAAW,IAAI,eAAe,GAAG,IAAI,CAEpD;AAED,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBnH"}
|
package/dist/renderer.js
CHANGED
package/dist/response.js
CHANGED
package/dist/scanner.js
CHANGED
|
@@ -8,7 +8,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
8
8
|
};
|
|
9
9
|
import { resolve, relative } from 'node:path';
|
|
10
10
|
import { readdirSync, statSync, existsSync } from 'node:fs';
|
|
11
|
-
import { log } from
|
|
11
|
+
import { log } from "./logger.js";
|
|
12
12
|
/** Recursively collect .ts/.js files, skipping _ prefixed and dot files */
|
|
13
13
|
function walkDir(dir) {
|
|
14
14
|
const results = [];
|
package/dist/seed.js
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* )
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
import { loadLexicons } from
|
|
26
|
+
import { loadLexicons } from "./database/schema.js";
|
|
27
27
|
import { validateRecord } from '@bigmoves/lexicon';
|
|
28
28
|
import { resolve } from 'node:path';
|
|
29
29
|
import { readFileSync } from 'node:fs';
|
package/dist/server-init.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { log } from
|
|
3
|
-
import { scanServerDir } from
|
|
4
|
-
import { registerFeed, listFeeds } from
|
|
5
|
-
import { registerXrpcHandler, listXrpc } from
|
|
6
|
-
import { registerLabelModule, getLabelDefinitions, clearLabels } from
|
|
7
|
-
import { registerOgHandler } from
|
|
8
|
-
import { registerHook } from
|
|
9
|
-
import { runSetupHandler } from
|
|
10
|
-
import { registerRenderer } from
|
|
2
|
+
import { log } from "./logger.js";
|
|
3
|
+
import { scanServerDir } from "./scanner.js";
|
|
4
|
+
import { registerFeed, listFeeds } from "./feeds.js";
|
|
5
|
+
import { registerXrpcHandler, listXrpc } from "./xrpc.js";
|
|
6
|
+
import { registerLabelModule, getLabelDefinitions, clearLabels } from "./labels.js";
|
|
7
|
+
import { registerOgHandler } from "./opengraph.js";
|
|
8
|
+
import { registerHook } from "./hooks.js";
|
|
9
|
+
import { runSetupHandler } from "./setup.js";
|
|
10
|
+
import { registerRenderer } from "./renderer.js";
|
|
11
11
|
/**
|
|
12
12
|
* Scan the server/ directory and register all discovered handlers.
|
|
13
13
|
* Setup scripts run immediately (in sorted order).
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AA4B9C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAqM3F;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAk3B5F;AAGD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,WAAW,GAAG,IAAI,EACzB,MAAM,GAAE,MAAM,EAAO,EACrB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,OAAO,WAAW,EAAE,MAAM,CAG5B"}
|
package/dist/server.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
3
|
import { join, extname } from 'node:path';
|
|
4
|
-
import { queryRecords, getRecordByUri, searchRecords, getSchema, reshapeRow, setRepoStatus, getRepoStatus, getRepoRetryInfo, queryLabelsForUris, insertLabels, searchAccounts, listReposPaginated, getCollectionCounts, getRepoStatusCounts, getDatabaseSize, deleteLabels, getRecentRecords, listActiveRepoDids, removeRepo, getRepoHandle, getPreferences, putPreference, insertReport, queryReports, resolveReport, getOpenReportCount, } from
|
|
5
|
-
import { executeFeed, listFeeds } from
|
|
6
|
-
import { executeXrpc, InvalidRequestError, NotFoundError, registerCoreXrpcHandler } from
|
|
7
|
-
import { resolveRecords } from
|
|
8
|
-
import { handleOpengraphRequest, buildOgMeta } from
|
|
9
|
-
import { getLabelDefinitions, rescanLabels } from
|
|
10
|
-
import { triggerAutoBackfill } from
|
|
11
|
-
import { emit, timer } from
|
|
12
|
-
import { getAuthServerMetadata, getProtectedResourceMetadata, getJwks, getClientMetadata, handlePar, buildAuthorizeRedirect, handleCallback, serverLogin, handleToken, authenticate, OAuthError, } from
|
|
13
|
-
import { createSessionCookie, sessionCookieHeader, clearSessionCookieHeader, parseSessionCookie, } from
|
|
14
|
-
import { getOAuthRequest } from
|
|
15
|
-
import { pdsCreateRecord, pdsDeleteRecord, pdsPutRecord, pdsApplyWrites, pdsUploadBlob, ProxyError, ScopeMissingProxyError, } from
|
|
16
|
-
import { json, jsonError, cors, withCors, file, notFound } from
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
4
|
+
import { queryRecords, getRecordByUri, searchRecords, getSchema, reshapeRow, setRepoStatus, getRepoStatus, getRepoRetryInfo, queryLabelsForUris, insertLabels, searchAccounts, listReposPaginated, getCollectionCounts, getRepoStatusCounts, getDatabaseSize, deleteLabels, getRecentRecords, listActiveRepoDids, removeRepo, getRepoHandle, getPreferences, putPreference, insertReport, queryReports, resolveReport, getOpenReportCount, } from "./database/db.js";
|
|
5
|
+
import { executeFeed, listFeeds } from "./feeds.js";
|
|
6
|
+
import { executeXrpc, InvalidRequestError, NotFoundError, registerCoreXrpcHandler } from "./xrpc.js";
|
|
7
|
+
import { resolveRecords } from "./hydrate.js";
|
|
8
|
+
import { handleOpengraphRequest, buildOgMeta } from "./opengraph.js";
|
|
9
|
+
import { getLabelDefinitions, rescanLabels } from "./labels.js";
|
|
10
|
+
import { triggerAutoBackfill } from "./indexer.js";
|
|
11
|
+
import { emit, timer } from "./logger.js";
|
|
12
|
+
import { getAuthServerMetadata, getProtectedResourceMetadata, getJwks, getClientMetadata, handlePar, buildAuthorizeRedirect, handleCallback, serverLogin, handleToken, authenticate, OAuthError, } from "./oauth/server.js";
|
|
13
|
+
import { createSessionCookie, sessionCookieHeader, clearSessionCookieHeader, parseSessionCookie, } from "./oauth/session.js";
|
|
14
|
+
import { getOAuthRequest } from "./oauth/db.js";
|
|
15
|
+
import { pdsCreateRecord, pdsDeleteRecord, pdsPutRecord, pdsApplyWrites, pdsUploadBlob, ProxyError, ScopeMissingProxyError, } from "./pds-proxy.js";
|
|
16
|
+
import { json, jsonError, cors, withCors, file, notFound } from "./response.js";
|
|
17
|
+
import { collectionFromUri, isPrivateCollection } from "./private-collections.js";
|
|
18
|
+
import { serve } from "./adapter.js";
|
|
19
|
+
import { renderPage } from "./renderer.js";
|
|
19
20
|
function scopeMissingResponse(acceptEncoding, handle) {
|
|
20
21
|
const res = withCors(json({ error: 'ScopeMissingError', ...(handle ? { handle } : {}) }, 401, acceptEncoding));
|
|
21
22
|
res.headers.append('Set-Cookie', clearSessionCookieHeader());
|
|
@@ -36,6 +37,8 @@ export function registerCoreHandlers(collections, oauth) {
|
|
|
36
37
|
const collection = params.collection;
|
|
37
38
|
if (!collection)
|
|
38
39
|
throw new InvalidRequestError('Missing collection parameter');
|
|
40
|
+
if (isPrivateCollection(collection))
|
|
41
|
+
throw new NotFoundError(`Unknown collection: ${collection}`);
|
|
39
42
|
if (!getSchema(collection))
|
|
40
43
|
throw new NotFoundError(`Unknown collection: ${collection}`);
|
|
41
44
|
const sort = params.sort || undefined;
|
|
@@ -61,6 +64,8 @@ export function registerCoreHandlers(collections, oauth) {
|
|
|
61
64
|
const uri = params.uri;
|
|
62
65
|
if (!uri)
|
|
63
66
|
throw new InvalidRequestError('Missing uri parameter');
|
|
67
|
+
if (isPrivateCollection(collectionFromUri(uri)))
|
|
68
|
+
throw new NotFoundError('Record not found');
|
|
64
69
|
const record = await getRecordByUri(uri);
|
|
65
70
|
if (!record)
|
|
66
71
|
throw new NotFoundError('Record not found');
|
|
@@ -86,6 +91,8 @@ export function registerCoreHandlers(collections, oauth) {
|
|
|
86
91
|
throw new InvalidRequestError('Missing collection parameter');
|
|
87
92
|
if (!q)
|
|
88
93
|
throw new InvalidRequestError('Missing q parameter');
|
|
94
|
+
if (isPrivateCollection(collection))
|
|
95
|
+
throw new NotFoundError(`Unknown collection: ${collection}`);
|
|
89
96
|
if (!getSchema(collection))
|
|
90
97
|
throw new NotFoundError(`Unknown collection: ${collection}`);
|
|
91
98
|
const fuzzy = params.fuzzy !== 'false';
|
|
@@ -98,7 +105,9 @@ export function registerCoreHandlers(collections, oauth) {
|
|
|
98
105
|
return { feeds: listFeeds() };
|
|
99
106
|
});
|
|
100
107
|
registerCoreXrpcHandler('dev.hatk.describeCollections', async () => {
|
|
101
|
-
const collectionInfo = collections
|
|
108
|
+
const collectionInfo = collections
|
|
109
|
+
.filter((c) => !isPrivateCollection(c))
|
|
110
|
+
.map((c) => {
|
|
102
111
|
const schema = getSchema(c);
|
|
103
112
|
return {
|
|
104
113
|
collection: c,
|
|
@@ -168,7 +177,7 @@ export function registerCoreHandlers(collections, oauth) {
|
|
|
168
177
|
const platform = body.platform || 'apns';
|
|
169
178
|
if (!['apns', 'fcm', 'web'].includes(platform))
|
|
170
179
|
throw new InvalidRequestError('Invalid platform');
|
|
171
|
-
const { registerToken } = await import(
|
|
180
|
+
const { registerToken } = await import("./push.js");
|
|
172
181
|
await registerToken(viewer.did, body.token, platform);
|
|
173
182
|
return { success: true };
|
|
174
183
|
});
|
|
@@ -178,7 +187,7 @@ export function registerCoreHandlers(collections, oauth) {
|
|
|
178
187
|
const body = input;
|
|
179
188
|
if (!body.token || typeof body.token !== 'string')
|
|
180
189
|
throw new InvalidRequestError('Missing or invalid token');
|
|
181
|
-
const { unregisterToken } = await import(
|
|
190
|
+
const { unregisterToken } = await import("./push.js");
|
|
182
191
|
await unregisterToken(viewer.did, body.token);
|
|
183
192
|
return { success: true };
|
|
184
193
|
});
|
|
@@ -280,6 +289,8 @@ export function createHandler(config) {
|
|
|
280
289
|
const collection = url.searchParams.get('collection');
|
|
281
290
|
if (!collection)
|
|
282
291
|
return withCors(jsonError(400, 'Missing collection parameter', acceptEncoding));
|
|
292
|
+
if (isPrivateCollection(collection))
|
|
293
|
+
return withCors(jsonError(404, `Unknown collection: ${collection}`, acceptEncoding));
|
|
283
294
|
if (!getSchema(collection))
|
|
284
295
|
return withCors(jsonError(404, `Unknown collection: ${collection}`, acceptEncoding));
|
|
285
296
|
const limit = parseInt(url.searchParams.get('limit') || '20');
|
|
@@ -309,6 +320,8 @@ export function createHandler(config) {
|
|
|
309
320
|
const uri = url.searchParams.get('uri');
|
|
310
321
|
if (!uri)
|
|
311
322
|
return withCors(jsonError(400, 'Missing uri parameter', acceptEncoding));
|
|
323
|
+
if (isPrivateCollection(collectionFromUri(uri)))
|
|
324
|
+
return withCors(jsonError(404, 'Record not found', acceptEncoding));
|
|
312
325
|
const record = await getRecordByUri(uri);
|
|
313
326
|
if (!record)
|
|
314
327
|
return withCors(jsonError(404, 'Record not found', acceptEncoding));
|
|
@@ -342,6 +355,8 @@ export function createHandler(config) {
|
|
|
342
355
|
return withCors(jsonError(400, 'Missing collection parameter', acceptEncoding));
|
|
343
356
|
if (!q)
|
|
344
357
|
return withCors(jsonError(400, 'Missing q parameter', acceptEncoding));
|
|
358
|
+
if (isPrivateCollection(collection))
|
|
359
|
+
return withCors(jsonError(404, `Unknown collection: ${collection}`, acceptEncoding));
|
|
345
360
|
if (!getSchema(collection))
|
|
346
361
|
return withCors(jsonError(404, `Unknown collection: ${collection}`, acceptEncoding));
|
|
347
362
|
const limit = parseInt(url.searchParams.get('limit') || '20');
|
|
@@ -358,7 +373,9 @@ export function createHandler(config) {
|
|
|
358
373
|
}
|
|
359
374
|
// GET /xrpc/dev.hatk.describeCollections
|
|
360
375
|
if (url.pathname === coreXrpc('describeCollections')) {
|
|
361
|
-
const collectionInfo = collections
|
|
376
|
+
const collectionInfo = collections
|
|
377
|
+
.filter((c) => !isPrivateCollection(c))
|
|
378
|
+
.map((c) => {
|
|
362
379
|
const schema = getSchema(c);
|
|
363
380
|
return {
|
|
364
381
|
collection: c,
|
package/dist/setup.d.ts
CHANGED
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE;QACF,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACtD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QACnD,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9E,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,KAChE,OAAO,CAAC,YAAY,CAAC,CAAA;KAC3B,CAAA;CACF;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAE/D,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE;QACF,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACtD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QACnD,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,GAAG,EAAE,CAAA;SAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9E,kBAAkB,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,KAChE,OAAO,CAAC,YAAY,CAAC,CAAA;KAC3B,CAAA;CACF;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAE/D,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY;;;EAEhD;AAkBD;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/D;AAED,sDAAsD;AACtD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxF"}
|
package/dist/setup.js
CHANGED
|
@@ -32,8 +32,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
32
32
|
*/
|
|
33
33
|
import { resolve, relative } from 'node:path';
|
|
34
34
|
import { readdirSync, statSync } from 'node:fs';
|
|
35
|
-
import { log } from
|
|
36
|
-
import { querySQL, runSQL, runBatch, createBulkInserterSQL } from
|
|
35
|
+
import { log } from "./logger.js";
|
|
36
|
+
import { querySQL, runSQL, runBatch, createBulkInserterSQL } from "./database/db.js";
|
|
37
37
|
export function defineSetup(handler) {
|
|
38
38
|
return { __type: 'setup', handler };
|
|
39
39
|
}
|
package/dist/test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAkBzD,OAAO,EAAE,IAAI,IAAI,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAkBzD,OAAO,EAAE,IAAI,IAAI,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE;QACF,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACtD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KACpD,CAAA;IACD,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;IAC5E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;IACnE,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAChC,KAAK,WAAW,CAAA;IACjB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAA;IACpC,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9D,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7E,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IAC/D,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClE;AAYD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CA2K9D;AA8BD,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAiD3D"}
|
package/dist/test.js
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { resolve, dirname } from 'node:path';
|
|
2
2
|
import { readdirSync, readFileSync } from 'node:fs';
|
|
3
|
-
import { registerHatkResolveHook } from
|
|
3
|
+
import { registerHatkResolveHook } from "./resolve-hatk.js";
|
|
4
4
|
import YAML from 'yaml';
|
|
5
|
-
import { loadConfig } from
|
|
6
|
-
import { loadLexicons, storeLexicons, discoverCollections, generateTableSchema, generateCreateTableSQL, } from
|
|
7
|
-
import { initDatabase, querySQL, runSQL, insertRecord, closeDatabase } from
|
|
8
|
-
import { createAdapter } from
|
|
9
|
-
import { SQLITE_DIALECT } from
|
|
10
|
-
import { setSearchPort } from
|
|
11
|
-
import { executeFeed, listFeeds, createPaginate } from
|
|
12
|
-
import { executeXrpc, listXrpc, configureRelay, configureCdn } from
|
|
13
|
-
import { initServer } from
|
|
14
|
-
import { discoverViews } from
|
|
5
|
+
import { loadConfig } from "./config.js";
|
|
6
|
+
import { loadLexicons, storeLexicons, discoverCollections, generateTableSchema, generateCreateTableSQL, } from "./database/schema.js";
|
|
7
|
+
import { initDatabase, querySQL, runSQL, insertRecord, closeDatabase } from "./database/db.js";
|
|
8
|
+
import { createAdapter } from "./database/adapter-factory.js";
|
|
9
|
+
import { SQLITE_DIALECT } from "./database/dialect.js";
|
|
10
|
+
import { setSearchPort } from "./database/fts.js";
|
|
11
|
+
import { executeFeed, listFeeds, createPaginate } from "./feeds.js";
|
|
12
|
+
import { executeXrpc, listXrpc, configureRelay, configureCdn } from "./xrpc.js";
|
|
13
|
+
import { initServer } from "./server-init.js";
|
|
14
|
+
import { discoverViews } from "./views.js";
|
|
15
15
|
import { validateLexicons } from '@bigmoves/lexicon';
|
|
16
|
-
import { packCursor, unpackCursor, isTakendownDid, filterTakendownDids } from
|
|
17
|
-
import { seed as createSeedHelpers } from
|
|
16
|
+
import { packCursor, unpackCursor, isTakendownDid, filterTakendownDids } from "./database/db.js";
|
|
17
|
+
import { seed as createSeedHelpers } from "./seed.js";
|
|
18
|
+
import { setPrivateCollections } from "./private-collections.js";
|
|
18
19
|
/**
|
|
19
20
|
* Find the project's hatk.config.ts by walking up from cwd.
|
|
20
21
|
* Returns the resolved config path, or falls back to 'hatk.config.ts'.
|
|
@@ -225,12 +226,13 @@ function interpolateHelpers(value) {
|
|
|
225
226
|
export async function startTestServer() {
|
|
226
227
|
const ctx = await createTestContext();
|
|
227
228
|
// Import startServer — it creates the HTTP server and returns it
|
|
228
|
-
const { startServer } = await import(
|
|
229
|
+
const { startServer } = await import("./server.js");
|
|
229
230
|
// Start server on port 0 (random available port)
|
|
230
231
|
const resolveViewer = (request) => {
|
|
231
232
|
const did = request.headers.get('x-test-viewer');
|
|
232
233
|
return typeof did === 'string' ? { did } : null;
|
|
233
234
|
};
|
|
235
|
+
setPrivateCollections(ctx._config.privateCollections);
|
|
234
236
|
const httpServer = startServer(0, ctx._collections, ctx._config.publicDir, ctx._config.oauth, ctx._config.admins, resolveViewer);
|
|
235
237
|
await new Promise((resolve) => httpServer.on('listening', resolve));
|
|
236
238
|
const port = httpServer.address().port;
|
package/dist/views.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Supports two patterns:
|
|
3
3
|
// 1. Inline views: defined in the record lexicon with ref: "#main" (e.g., playView)
|
|
4
4
|
// 2. Defs views: defined in a defs lexicon, associated by naming convention (e.g., profileView)
|
|
5
|
-
import { log } from
|
|
6
|
-
import { getAllLexicons, getLexicon } from
|
|
5
|
+
import { log } from "./logger.js";
|
|
6
|
+
import { getAllLexicons, getLexicon } from "./database/schema.js";
|
|
7
7
|
// --- Registry ---
|
|
8
8
|
/** All views keyed by full NSID (e.g., "fm.teal.alpha.feed.play#playView") */
|
|
9
9
|
const views = new Map();
|
package/dist/vite-plugin.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createRunnableDevEnvironment } from 'vite';
|
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { execSync } from 'node:child_process';
|
|
5
|
-
import { isHatkRoute } from
|
|
5
|
+
import { isHatkRoute } from "./adapter.js";
|
|
6
6
|
/** Boot the local PDS if a docker-compose.yml exists. */
|
|
7
7
|
async function ensurePds() {
|
|
8
8
|
if (!existsSync(resolve('docker-compose.yml')))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrpc-client.d.ts","sourceRoot":"","sources":["../src/xrpc-client.ts"],"names":[],"mappings":"AAGA,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAClF,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAA;AAE7D,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB;
|
|
1
|
+
{"version":3,"file":"xrpc-client.d.ts","sourceRoot":"","sources":["../src/xrpc-client.ts"],"names":[],"mappings":"AAGA,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAClF,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAA;AAE7D,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB;UAuBzD,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,QAC9B,CAAC,WACE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrD,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAUpB,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,QAC7B,CAAC,UACC,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,SAAS,WAC9C,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;WAclB,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,QAC/B,CAAC,QACD,IAAI,GAAG,WAAW,eACX,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAalC"}
|
package/dist/xrpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrpc.d.ts","sourceRoot":"","sources":["../src/xrpc.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGzD,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;AAI5B,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,QAExD;AAED,gFAAgF;AAChF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,MAAM,SAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"xrpc.d.ts","sourceRoot":"","sources":["../src/xrpc.ts"],"names":[],"mappings":"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"}
|
package/dist/xrpc.js
CHANGED
|
@@ -28,12 +28,12 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
28
28
|
*/
|
|
29
29
|
import { resolve, relative } from 'node:path';
|
|
30
30
|
import { readdirSync, statSync } from 'node:fs';
|
|
31
|
-
import { log, emit, timer } from
|
|
32
|
-
import { querySQL, runSQL, packCursor, unpackCursor, isTakendownDid, filterTakendownDids, searchRecords, findUriByFields, } from
|
|
33
|
-
import { resolveRecords, buildBaseContext } from
|
|
34
|
-
import { getLexicon } from
|
|
31
|
+
import { log, emit, timer } from "./logger.js";
|
|
32
|
+
import { querySQL, runSQL, packCursor, unpackCursor, isTakendownDid, filterTakendownDids, searchRecords, findUriByFields, } from "./database/db.js";
|
|
33
|
+
import { resolveRecords, buildBaseContext } from "./hydrate.js";
|
|
34
|
+
import { getLexicon } from "./database/schema.js";
|
|
35
35
|
import { createHmac } from 'node:crypto';
|
|
36
|
-
import { pdsCreateRecord, pdsPutRecord, pdsDeleteRecord, pdsApplyWrites } from
|
|
36
|
+
import { pdsCreateRecord, pdsPutRecord, pdsDeleteRecord, pdsApplyWrites } from "./pds-proxy.js";
|
|
37
37
|
let _oauthConfig = null;
|
|
38
38
|
/** Set the OAuth config used for record write helpers. Called once during boot. */
|
|
39
39
|
export function configureOAuth(config) {
|