{"version":3,"sources":["../src/dev-banner.ts","../package.json"],"sourcesContent":["import fs from 'fs/promises';\nimport { fileURLToPath } from 'url';\nimport type { Plugin } from 'vite';\n\nconst BANNER_SCRIPT_ID = '/@replit/vite-plugin-dev-banner/banner-script.js';\n\nexport function devBanner(): Plugin {\n  let bannerScript: string;\n\n  return {\n    name: '@replit/vite-plugin-dev-banner',\n    enforce: 'pre' as const,\n\n    async buildStart() {\n      const currentFileUrl = fileURLToPath(\n        new URL('./banner-script.js', import.meta.url),\n      );\n\n      try {\n        bannerScript = await fs.readFile(currentFileUrl, 'utf-8');\n      } catch (error) {\n        // eslint-disable-next-line no-console -- This is an error in the plugin\n        console.error(\n          '[replit-dev-banner] Failed to load banner script:',\n          error,\n        );\n      }\n    },\n\n    configureServer(server) {\n      server.middlewares.use((req, res, next) => {\n        if (req.url === BANNER_SCRIPT_ID) {\n          if (!bannerScript) {\n            res.statusCode = 404;\n            res.end();\n\n            return;\n          }\n\n          res.setHeader('Content-Type', 'application/javascript');\n          res.end(bannerScript);\n\n          return;\n        }\n\n        next();\n      });\n    },\n\n    transformIndexHtml(html, context) {\n      // Only inject in development mode\n      if (context.server?.config.command !== 'serve') {\n        return html;\n      }\n\n      return [\n        {\n          tag: 'script',\n          attrs: {\n            type: 'text/javascript',\n            src: BANNER_SCRIPT_ID,\n            id: 'replit-dev-banner',\n          },\n          injectTo: 'head',\n        },\n      ];\n    },\n  };\n}\n","{\n  \"name\": \"@replit/vite-plugin-dev-banner\",\n  \"version\": \"0.1.0\",\n  \"private\": false,\n  \"devDependencies\": {\n    \"@replit/tsconfig\": \"workspace:*\",\n    \"@types/node\": \"^22.5.5\",\n    \"@typescript-eslint/eslint-plugin\": \"^6.7.0\",\n    \"@typescript-eslint/parser\": \"^6.7.0\",\n    \"tsup\": \"^8.3.5\",\n    \"tsx\": \"^4.9.5\",\n    \"vite\": \"^5.4.10\"\n  },\n  \"main\": \"./src/index.ts\",\n  \"files\": [\n    \"src\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"lint\": \"eslint src\",\n    \"format\": \"prettier --write \\\"src/**/*.ts\\\"\"\n  },\n  \"dependencies\": {}\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,SAAS,qBAAqB;AAG9B,IAAM,mBAAmB;AAElB,SAAS,YAAoB;AAClC,MAAI;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IAET,MAAM,aAAa;AACjB,YAAM,iBAAiB;AAAA,QACrB,IAAI,IAAI,sBAAsB,YAAY,GAAG;AAAA,MAC/C;AAEA,UAAI;AACF,uBAAe,MAAM,GAAG,SAAS,gBAAgB,OAAO;AAAA,MAC1D,SAAS,OAAO;AAEd,gBAAQ;AAAA,UACN;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,gBAAgB,QAAQ;AACtB,aAAO,YAAY,IAAI,CAAC,KAAK,KAAK,SAAS;AACzC,YAAI,IAAI,QAAQ,kBAAkB;AAChC,cAAI,CAAC,cAAc;AACjB,gBAAI,aAAa;AACjB,gBAAI,IAAI;AAER;AAAA,UACF;AAEA,cAAI,UAAU,gBAAgB,wBAAwB;AACtD,cAAI,IAAI,YAAY;AAEpB;AAAA,QACF;AAEA,aAAK;AAAA,MACP,CAAC;AAAA,IACH;AAAA,IAEA,mBAAmB,MAAM,SAAS;AAEhC,UAAI,QAAQ,QAAQ,OAAO,YAAY,SAAS;AAC9C,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,QACL;AAAA,UACE,KAAK;AAAA,UACL,OAAO;AAAA,YACL,MAAM;AAAA,YACN,KAAK;AAAA,YACL,IAAI;AAAA,UACN;AAAA,UACA,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AClEE,cAAW;","names":[]}