| 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;
 
- }
 
 
  |