import type { SavedImage } from './image.js'; import type { HTMLMeta } from './meta.js'; export interface ManifestJsonIcon { /** A URL from which a user agent can fetch the image's data @tutorial https://www.w3.org/TR/appmanifest/#dom-imageresource-src @example //icons.example.com/lowres */ src: string; /** A string consisting of an unordered set of unique space-separated tokens @tutorial https://www.w3.org/TR/appmanifest/#sizes-member @example 192x192 */ sizes?: string; /** Media type of the image The purpose of this member is to allow a user agent to ignore images of media types it does not support @tutorial https://www.w3.org/TR/appmanifest/#dom-imageresource-type @example image/png */ type?: string; /** When an ImageResource is used as an icon, a developer can hint that the image is intended to serve some special purpose in the context of the host OS @tutorial https://www.w3.org/TR/appmanifest/#dfn-icon-purposes @default any */ purpose?: string; /** The platform member represents the platform to which a containing object applies @tutorial https://github.com/w3c/manifest/wiki/Platforms */ platform?: 'chrome_web_store' | 'play' | 'itunes' | 'windows'; } export interface Result { /** Saved images array that keeps both splash screens and icons, with image properties @example ```javascript [{ name: 'apple-splash-1136-640', width: 1136, height: 640, scaleFactor: 2, path: 'temp/apple-splash-1136-640.png', orientation: 'landscape' }, { name: 'apple-icon-180', width: 180, height: 180, scaleFactor: null, path: 'temp/apple-icon-180.png', orientation: null }] ``` */ savedImages: SavedImage[]; /** Meta tags to be added to index.html file @example ```javascript { favicon: '\n', appleTouchIcon: '\n'; appleMobileWebAppCapable: '\n'; appleLaunchImage: '\n'; appleLaunchImageDarkMode: '\n' } ``` */ htmlMeta: HTMLMeta; /** Icons to be added to manifest.json's icons property @example ```json [{ "src": "assets/pwa/manifest-icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "assets/pwa/manifest-icon-512.png", "sizes": "512x512", "type": "image/png" }] ``` */ manifestJsonContent: ManifestJsonIcon[]; }