text: /*
   * This file runs in a Node context (it's NOT transpiled by Babel), so use only
   * the ES6 features that are supported by your Node version. https://node.green/
   */
  
  // Configuration for your app
  // https://v2.quasar.dev/quasar-cli/quasar-conf-js
  
  /* eslint-env node */
  const ESLintPlugin = require('eslint-webpack-plugin')
  const { configure } = require('quasar/wrappers')
  const env = process.env.NODE_ENV === 'development' ? require('dotenv').config().parsed : process.env
  const path = require('path')
  
  module.exports = configure(function (ctx) {
    return {
      // https://v2.quasar.dev/quasar-cli/supporting-ts
      supportTS: false,
  
      // https://v2.quasar.dev/quasar-cli/prefetch-feature
      // preFetch: true,
  
      // app boot file (/src/boot)
      // --> boot files are part of "main.js"
      // https://v2.quasar.dev/quasar-cli/boot-files
      boot: [
        'axios',
        'firebase',
        'i18n',
        'config'
      ],
  
      // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
      css: [
        'app.scss'
      ],
  
      // https://github.com/quasarframework/quasar/tree/dev/extras
      extras: [
        // 'ionicons-v4',
        // 'mdi-v5',
        // 'fontawesome-v5',
        // 'eva-icons',
        // 'themify',
        // 'line-awesome',
        // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
  
        'roboto-font', // optional, you are not bound to it
        'material-icons' // optional, you are not bound to it
      ],
  
      // Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
      build: {
        vueRouterMode: 'history', // available values: 'hash', 'history'
  
        env: {
          FIREBASE_API_KEY: env.FIREBASE_API_KEY,
          FIREBASE_AUTH_DOMAIN: env.FIREBASE_AUTH_DOMAIN,
          FIREBASE_DATABASE_URL: env.FIREBASE_DATABASE_URL,
          FIREBASE_PROJECT_ID: env.FIREBASE_PROJECT_ID,
          FIREBASE_STORAGE_BUCKET: env.FIREBASE_STORAGE_BUCKET,
          FIREBASE_MESSAGING_SENDER_ID: env.FIREBASE_MESSAGING_SENDER_ID,
          FIREBASE_APP_ID: env.FIREBASE_APP_ID,
          FIREBASE_MEASUREMENT_ID: env.FIREBASE_MEASUREMENT_ID
        },
  
        // transpile: false,
  
        // Add dependencies for transpiling with Babel (Array of string/regex)
        // (from node_modules, which are by default not transpiled).
        // Applies only if "transpile" is set to true.
        transpileDependencies: [
          'vue-currency-input'
        ],
  
        // rtl: true, // https://v2.quasar.dev/options/rtl-support
        // preloadChunks: true,
        // showProgress: false,
        // gzip: true,
        // analyze: true,
  
        // Options below are automatically set depending on the env, set them if you want to override
        // extractCSS: false,
  
        // https://v2.quasar.dev/quasar-cli/handling-webpack
        // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
        chainWebpack (chain) {
          chain.plugin('eslint-webpack-plugin')
            .use(ESLintPlugin, [{ extensions: ['js', 'vue'] }])
        },
  
        extendWebpack (cfg) {
          // for i18n resources (json/json5/yaml)
          cfg.module.rules.push({
            test: /\.(json5?|ya?ml)$/, // target json, json5, yaml and yml files
            type: 'javascript/auto',
            // Use `Rule.include` to specify the files of locale messages to be pre-compiled
            include: [
              path.resolve(__dirname, './src/i18n')
            ],
            loader: '@intlify/vue-i18n-loader'
          })
  
          // for i18n custom block
          cfg.module.rules.push({
            resourceQuery: /blockType=i18n/,
            type: 'javascript/auto',
            loader: '@intlify/vue-i18n-loader'
          })
  
          cfg.resolve.alias = {
            ...cfg.resolve.alias,
  
            services: path.resolve(__dirname, './src/services'),
            utils: path.resolve(__dirname, './src/utils'),
            mixins: path.resolve(__dirname, './src/mixins')
          }
        }
      },
  
      // Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
      devServer: {
        https: false,
        port: 8080,
        open: true // opens browser window automatically
      },
  
      // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
      framework: {
        config: {},
  
        // iconSet: 'material-icons', // Quasar icon set
        // lang: 'en-US', // Quasar language pack
  
        // For special cases outside of where the auto-import strategy can have an impact
        // (like functional components as one of the examples),
        // you can manually specify Quasar components/directives to be available everywhere:
        //
        // components: [],
        // directives: [],
  
        // Quasar plugins
        plugins: [
          'Dialog',
          'Notify'
        ]
      },
  
      // animations: 'all', // --- includes all animations
      // https://v2.quasar.dev/options/animations
      animations: [
        'slideInRight',
        'slideInLeft',
        'fadeIn',
        'fadeOut'
      ],
  
      // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
      ssr: {
        pwa: false,
  
        // manualStoreHydration: true,
        // manualPostHydrationTrigger: true,
  
        prodPort: 3000, // The default port that the production server should use
        // (gets superseded if process.env.PORT is specified at runtime)
  
        maxAge: 1000 * 60 * 60 * 24 * 30,
        // Tell browser when a file from the server should expire from cache (in ms)
  
        chainWebpackWebserver (chain) {
          chain.plugin('eslint-webpack-plugin')
            .use(ESLintPlugin, [{ extensions: ['js'] }])
        },
  
        middlewares: [
          ctx.prod ? 'compression' : '',
          'render' // keep this as last one
        ]
      },
  
      // https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
      pwa: {
        workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
        workboxOptions: {}, // only for GenerateSW
  
        // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
        // if using workbox in InjectManifest mode
        chainWebpackCustomSW (chain) {
          chain.plugin('eslint-webpack-plugin')
            .use(ESLintPlugin, [{ extensions: ['js'] }])
        },
  
        manifest: {
          name: 'store-system',
          short_name: 'store-system',
          description: 'A Quasar Framework app',
          display: 'standalone',
          orientation: 'portrait',
          background_color: '#ffffff',
          theme_color: '#027be3',
          icons: [
            {
              src: 'icons/icon-128x128.png',
              sizes: '128x128',
              type: 'image/png'
            },
            {
              src: 'icons/icon-192x192.png',
              sizes: '192x192',
              type: 'image/png'
            },
            {
              src: 'icons/icon-256x256.png',
              sizes: '256x256',
              type: 'image/png'
            },
            {
              src: 'icons/icon-384x384.png',
              sizes: '384x384',
              type: 'image/png'
            },
            {
              src: 'icons/icon-512x512.png',
              sizes: '512x512',
              type: 'image/png'
            }
          ]
        }
      },
  
      // Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
      cordova: {
        // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
      },
  
      // Full list of options: https://v2.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
      capacitor: {
        hideSplashscreen: true
      },
  
      // Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
      electron: {
        bundler: 'packager', // 'packager' or 'builder'
  
        packager: {
          // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
  
          // OS X / Mac App Store
          // appBundleId: '',
          // appCategoryType: '',
          // osxSign: '',
          // protocol: 'myapp://path',
  
          // Windows only
          // win32metadata: { ... }
        },
  
        builder: {
          // https://www.electron.build/configuration/configuration
  
          appId: 'store-system-vue'
        },
  
        // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
        chainWebpackMain (chain) {
          chain.plugin('eslint-webpack-plugin')
            .use(ESLintPlugin, [{ extensions: ['js'] }])
        },
  
        // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
        chainWebpackPreload (chain) {
          chain.plugin('eslint-webpack-plugin')
            .use(ESLintPlugin, [{ extensions: ['js'] }])
        }
      }
    }
  })
  