| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | interface ESMSInitOptions {  /**   * Enable Shim Mode   */  shimMode?: boolean;  /**   * Enable polyfill features.   * Currently supports ['css-modules', 'json-modules']   */  polyfillEnable?: string[];  /**   * Nonce for CSP build   */  nonce?: boolean;  /**   * Disable retriggering of document readystate   */  noLoadEventRetriggers: true,  /**   * #### Skip Processing Stability   *   * > Non-spec feature   *   * When loading modules that you know will only use baseline modules   * features, it is possible to set a rule to explicitly opt-out modules   * from rewriting. This improves performance because those modules then do   * not need to be processed or transformed at all, so that only local   * application code is handled and not library code.   *   * This can be configured by setting the importShim.skip URL regular   * expression:   *   * ```js   * importShim.skip = /^https:\/\/cdn\.com/;   * ```   *   * By default, this expression supports jspm.dev, dev.jspm.io and   * cdn.pika.dev.   */  skip: RegExp;  /**   * #### Error hook   *    * Register a callback for any ES Module Shims module errors.   *    */  onerror: (e: any) => any;  /**   * #### Resolve Hook   *    * Only supported in Shim Mode.   *    * Provide a custom resolver function.   */  resolve: (id: string, parentUrl: string, resolve: (id: string, parentUrl: string) => string) => string | Promise<string>;  /**   * #### Fetch Hook   *    * Only supported in Shim Mode.   *   * > Stability: Non-spec feature   *   * This is provided as a convenience feature since the pipeline handles   * the same data URL rewriting and circular handling of the module graph   * that applies when trying to implement any module transform system.   *   * The ES Module Shims fetch hook can be used to implement transform   * plugins.   *   * For example:   *   * ```js   * importShim.fetch = async function (url) {   *   const response = await fetch(url);   *   if (response.url.endsWith('.ts')) {   *     const source = await response.body();   *     const transformed = tsCompile(source);   *     return new Response(new Blob([transformed], { type: 'application/javascript' }));   *   }   *   return response;   * };   * ```   *   * Because the dependency analysis applies by ES Module Shims takes care   * of ensuring all dependencies run through the same fetch hook, the above   * is all that is needed to implement custom plugins.   *   * Streaming support is also provided, for example here is a hook with   * streaming support for JSON:   *   * ```js   * importShim.fetch = async function (url) {   *   const response = await fetch(url);   *   if (!response.ok)   *     throw new Error(`${response.status} ${response.statusText} ${response.url}`);   *   const contentType = response.headers.get('content-type');   *   if (!/^application\/json($|;)/.test(contentType))   *     return response;   *   const reader = response.body.getReader();   *   return new Response(new ReadableStream({   *     async start (controller) {   *       let done, value;   *       controller.enqueue(new Uint8Array([...'export default '].map(c => c.charCodeAt(0))));   *       while (({ done, value } = await reader.read()) && !done) {   *         controller.enqueue(value);   *       }   *       controller.close();   *     }   *   }), {   *     status: 200,   *     headers: {   *       "Content-Type": "application/javascript"   *     }   *   });   * }   * ```   */  fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>;  /**   * #### Revoke Blob URLs   *    * Set to *true* to cleanup blob URLs from memory after execution.   * Can cost some compute time for large loads.   *    */  revokeBlobURLs: boolean;}/** * Dynamic import(...) within any modules loaded will be rewritten as * importShim(...) automatically providing full support for all es-module-shims * features through dynamic import. * * To load code dynamically (say from the browser console), importShim can be * called similarly: * * ```js * importShim('/path/to/module.js').then(x => console.log(x)); * ``` */declare function importShim<Default, Exports extends object>(  specifier: string,  parentUrl?: string): Promise<{ default: Default } & Exports>;interface Window {  esmsInitOptions?: ESMSInitOptions;  importShim: typeof importShim;}
 |