Makelore 2.0 initial clean snapshot

This commit is contained in:
inman
2026-07-29 17:22:35 +08:00
commit b8ca3f8eea
694 changed files with 139782 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
export const NIANCODE_APP_PROTOCOL = 'niancode';
export type NianCodeDeepLink = {
type: 'desktop-auth-callback';
requestId: string;
url: string;
};
const SENSITIVE_QUERY_KEYS = new Set([
'access_token',
'refresh_token',
'device_secret',
'token',
]);
export function parseNianCodeDeepLinkUrl(rawUrl: string): NianCodeDeepLink | null {
let url: URL;
try {
url = new URL(rawUrl);
} catch {
return null;
}
if (url.protocol !== `${NIANCODE_APP_PROTOCOL}:`) {
return null;
}
if (url.hostname !== 'auth' || url.pathname !== '/callback') {
return null;
}
for (const key of SENSITIVE_QUERY_KEYS) {
if (url.searchParams.has(key)) {
return null;
}
}
const requestId = url.searchParams.get('request_id')?.trim();
if (!requestId || requestId.length > 128) {
return null;
}
return {
type: 'desktop-auth-callback',
requestId,
url: rawUrl,
};
}
export function findNianCodeDeepLinkUrl(args: readonly string[]): string | null {
return args.find((arg) => parseNianCodeDeepLinkUrl(arg) !== null) ?? null;
}