mirror of
https://github.com/hanzoai/bot.git
synced 2026-10-30 17:24:26 +00:00
Comprehensive rename of all openclaw references to hanzo-bot equivalents: - Package: openclaw → @hanzo/bot - Binary: openclaw → hanzo-bot - Types: OpenClaw* → Bot* - Env vars: OPENCLAW_* → BOT_* - Android: ai.openclaw.android → ai.hanzo.bot.android - iOS/macOS: ai.openclaw.* → ai.hanzo.* - Swift modules: OpenClaw* → Bot* - Plugins: openclaw.plugin.json → bot.plugin.json - Paths: .openclaw/ → .hanzo/bot/ - URLs: github.com/openclaw → github.com/hanzoai
43 lines
1.4 KiB
Swift
43 lines
1.4 KiB
Swift
import Foundation
|
|
|
|
enum CanvasScheme {
|
|
static let scheme = "hanzo-bot-canvas"
|
|
static let allSchemes = [scheme]
|
|
|
|
static func makeURL(session: String, path: String? = nil) -> URL? {
|
|
var comps = URLComponents()
|
|
comps.scheme = Self.scheme
|
|
comps.host = session
|
|
let p = (path ?? "/").trimmingCharacters(in: .whitespacesAndNewlines)
|
|
if p.isEmpty || p == "/" {
|
|
comps.path = "/"
|
|
} else if p.hasPrefix("/") {
|
|
comps.path = p
|
|
} else {
|
|
comps.path = "/" + p
|
|
}
|
|
return comps.url
|
|
}
|
|
|
|
static func mimeType(forExtension ext: String) -> String {
|
|
switch ext.lowercased() {
|
|
// Note: WKURLSchemeHandler uses URLResponse(mimeType:), which expects a bare MIME type
|
|
// (no `; charset=...`). Encoding is provided via URLResponse(textEncodingName:).
|
|
case "html", "htm": "text/html"
|
|
case "js", "mjs": "application/javascript"
|
|
case "css": "text/css"
|
|
case "json", "map": "application/json"
|
|
case "svg": "image/svg+xml"
|
|
case "png": "image/png"
|
|
case "jpg", "jpeg": "image/jpeg"
|
|
case "gif": "image/gif"
|
|
case "ico": "image/x-icon"
|
|
case "woff2": "font/woff2"
|
|
case "woff": "font/woff"
|
|
case "ttf": "font/ttf"
|
|
case "wasm": "application/wasm"
|
|
default: "application/octet-stream"
|
|
}
|
|
}
|
|
}
|