code: async function init({ options = { config: {} }, handleInsert } = {}) {
    const { publicKey, ...globalConfig } = options.config;
    const baseConfig = { ...defaultConfig, ...globalConfig };
  
    window.UPLOADCARE_PUBLIC_KEY = publicKey;
  
    /**
     * Register the effects tab by default because the effects tab is awesome. Can
     * be disabled via config.
     */
    uploadcare.registerTab('preview', uploadcareTabEffects);
  
    return {
      /**
       * On show, create a new widget, cache it in the widgets object, and open.
       * No hide method is provided because the widget doesn't provide it.
       */
      show: ({ value, config: instanceConfig = {}, allowMultiple, imagesOnly = false } = {}) => {
        const config = { ...baseConfig, imagesOnly, ...instanceConfig };
        const multiple = allowMultiple === false ? false : !!config.multiple;
        const resolvedConfig = { ...config, multiple };
        const files = getFiles(value);
  
        /**
         * Resolve the promise only if it's ours. Only the jQuery promise objects
         * from the Uploadcare library will have a `state` method.
         */
        if (files && !files.state) {
          return files.then(result => openDialog(result, resolvedConfig, handleInsert));
        } else {
          return openDialog(files, resolvedConfig, handleInsert);
        }
      },
  
      /**
       * Uploadcare doesn't provide a "media library" widget for viewing and
       * selecting existing files, so we return `false` here so Netlify CMS only
       * opens the Uploadcare widget when called from an editor control. This
       * results in the "Media" button in the global nav being hidden.
       */
      enableStandalone: () => false,
    };
  }
docs: Initialization function will only run once, returns an API object for Netlify
  CMS to call methods on.