TODO _headers file place.wisp.settings lexicon as a lexiconal way of configuring this
REVERTED
README.md
REVERTED
README.md
···-The hosting service supports Netlify-style `_redirects` files for managing URLs. Place a `_redirects` file in your site root to enable:
REVERTED
hosting-service/EXAMPLE.md
REVERTED
hosting-service/EXAMPLE.md
···+This document demonstrates how HTML path rewriting works when serving sites via the `/s/:identifier/:site/*` route.+When you create a static site with absolute paths like `/style.css` or `/images/logo.png`, these paths work fine when served from the root domain. However, when served from a subdirectory like `/s/alice.bsky.social/mysite/`, these absolute paths break because they resolve to the server root instead of the site root.+The hosting service automatically rewrites absolute paths in HTML files to work correctly in the subdirectory context.+srcset="/s/alice.bsky.social/mysite/images/hero.jpg 1x, /s/alice.bsky.social/mysite/images/hero@2x.jpg 2x"+If you're using relative paths already (like `./style.css` or `../images/logo.png`), they'll work without any rewriting.
REVERTED
hosting-service/example-_redirects
REVERTED
hosting-service/example-_redirects
···
REVERTED
hosting-service/src/lib/redirects.test.ts
REVERTED
hosting-service/src/lib/redirects.test.ts
···
REVERTED
hosting-service/src/lib/redirects.ts
REVERTED
hosting-service/src/lib/redirects.ts
···-if ([200, 301, 302].includes(rule.status) && context?.queryParams && !targetPath.includes('?')) {
REVERTED
hosting-service/src/server.ts
REVERTED
hosting-service/src/server.ts
···import { logger, observabilityMiddleware, observabilityErrorHandler, logCollector, errorTracker, metricsCollector } from './lib/observability';import { fileCache, metadataCache, rewrittenHtmlCache, getCacheKey, type FileMetadata } from './lib/cache';-import { loadRedirectRules, matchRedirectRule, parseCookies, parseQueryString, type RedirectRule } from './lib/redirects';······-async function serveFileInternalWithRewrite(did: string, rkey: string, filePath: string, basePath: string) {···············
ERROR
cli/.gitignore
ERROR
cli/.gitignore
Failed to calculate interdiff for this file.
ERROR
cli/Cargo.lock
ERROR
cli/Cargo.lock
Failed to calculate interdiff for this file.
ERROR
cli/Cargo.toml
ERROR
cli/Cargo.toml
Failed to calculate interdiff for this file.
REVERTED
cli/src/blob_map.rs
REVERTED
cli/src/blob_map.rs
···
ERROR
cli/src/cid.rs
ERROR
cli/src/cid.rs
Failed to calculate interdiff for this file.
REVERTED
cli/src/main.rs
REVERTED
cli/src/main.rs
···-use jacquard::client::{Agent, FileAuthStore, AgentSessionExt, MemoryCredentialSession, AgentSession};······-let existing_blob_map: HashMap<String, (jacquard_common::types::blob::BlobRef<'static>, String)> = {-let (root_dir, total_files, reused_count) = build_directory(agent, &path, &existing_blob_map).await?;···-println!(" Total files: {} ({} reused, {} uploaded)", total_files, reused_count, uploaded_count);···+) -> std::pin::Pin<Box<dyn std::future::Future<Output = miette::Result<Directory<'static>>> + 'a>>-existing_blobs: &'a HashMap<String, (jacquard_common::types::blob::BlobRef<'static>, String)>,-) -> std::pin::Pin<Box<dyn std::future::Future<Output = miette::Result<(Directory<'static>, usize, usize)>> + 'a>>······