2024-12-18 15:53:45 -05:00
|
|
|
package embed
|
2024-12-02 14:27:18 -05:00
|
|
|
|
2024-12-05 20:36:58 -05:00
|
|
|
import "encoding/json"
|
|
|
|
|
2024-12-16 15:29:54 -05:00
|
|
|
func NewWebManifest() ([]byte, error) {
|
2024-12-05 20:36:58 -05:00
|
|
|
return json.Marshal(baseWebManifest)
|
2024-12-02 14:27:18 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
var baseWebManifest = WebManifest{
|
|
|
|
Name: "Sonr Vault",
|
|
|
|
ShortName: "Sonr.ID",
|
|
|
|
StartURL: "/index.html",
|
|
|
|
Display: "standalone",
|
|
|
|
DisplayOverride: []string{
|
|
|
|
"fullscreen",
|
|
|
|
"minimal-ui",
|
|
|
|
},
|
|
|
|
Icons: []IconDefinition{
|
|
|
|
{
|
|
|
|
Src: "/icons/icon-192x192.png",
|
|
|
|
Sizes: "192x192",
|
|
|
|
Type: "image/png",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
ServiceWorker: ServiceWorker{
|
|
|
|
Scope: "/",
|
|
|
|
Src: "/sw.js",
|
|
|
|
UseCache: true,
|
|
|
|
},
|
|
|
|
ProtocolHandlers: []ProtocolHandler{
|
|
|
|
{
|
|
|
|
Scheme: "did.sonr",
|
|
|
|
URL: "/resolve/sonr/%s",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Scheme: "did.eth",
|
|
|
|
URL: "/resolve/eth/%s",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Scheme: "did.btc",
|
|
|
|
URL: "/resolve/btc/%s",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Scheme: "did.usdc",
|
|
|
|
URL: "/resolve/usdc/%s",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Scheme: "did.ipfs",
|
|
|
|
URL: "/resolve/ipfs/%s",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
type WebManifest struct {
|
|
|
|
// Required fields
|
|
|
|
Name string `json:"name"` // Full name of the application
|
|
|
|
ShortName string `json:"short_name"` // Short version of the name
|
|
|
|
|
|
|
|
// Display and appearance
|
|
|
|
Description string `json:"description,omitempty"` // Purpose and features of the application
|
|
|
|
Display string `json:"display,omitempty"` // Preferred display mode: fullscreen, standalone, minimal-ui, browser
|
|
|
|
DisplayOverride []string `json:"display_override,omitempty"`
|
|
|
|
ThemeColor string `json:"theme_color,omitempty"` // Default theme color for the application
|
|
|
|
BackgroundColor string `json:"background_color,omitempty"` // Background color during launch
|
|
|
|
Orientation string `json:"orientation,omitempty"` // Default orientation: any, natural, landscape, portrait
|
|
|
|
|
|
|
|
// URLs and scope
|
|
|
|
StartURL string `json:"start_url"` // Starting URL when launching
|
|
|
|
Scope string `json:"scope,omitempty"` // Navigation scope of the web application
|
|
|
|
ServiceWorker ServiceWorker `json:"service_worker,omitempty"`
|
|
|
|
|
|
|
|
// Icons
|
|
|
|
Icons []IconDefinition `json:"icons,omitempty"`
|
|
|
|
|
|
|
|
// Optional features
|
|
|
|
RelatedApplications []RelatedApplication `json:"related_applications,omitempty"`
|
|
|
|
PreferRelatedApplications bool `json:"prefer_related_applications,omitempty"`
|
|
|
|
Shortcuts []Shortcut `json:"shortcuts,omitempty"`
|
|
|
|
|
|
|
|
// Experimental features (uncomment if needed)
|
|
|
|
FileHandlers []FileHandler `json:"file_handlers,omitempty"`
|
|
|
|
ProtocolHandlers []ProtocolHandler `json:"protocol_handlers,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type FileHandler struct {
|
|
|
|
Action string `json:"action"`
|
|
|
|
Accept map[string][]string `json:"accept"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type LaunchHandler struct {
|
|
|
|
Action string `json:"action"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type IconDefinition struct {
|
|
|
|
Src string `json:"src"`
|
|
|
|
Sizes string `json:"sizes"`
|
|
|
|
Type string `json:"type,omitempty"`
|
|
|
|
Purpose string `json:"purpose,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type ProtocolHandler struct {
|
|
|
|
Scheme string `json:"scheme"`
|
|
|
|
URL string `json:"url"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type RelatedApplication struct {
|
|
|
|
Platform string `json:"platform"`
|
|
|
|
URL string `json:"url,omitempty"`
|
|
|
|
ID string `json:"id,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Shortcut struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
ShortName string `json:"short_name,omitempty"`
|
|
|
|
Description string `json:"description,omitempty"`
|
|
|
|
URL string `json:"url"`
|
|
|
|
Icons []IconDefinition `json:"icons,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type ServiceWorker struct {
|
|
|
|
Scope string `json:"scope"`
|
|
|
|
Src string `json:"src"`
|
|
|
|
UseCache bool `json:"use_cache"`
|
|
|
|
}
|