@callstack/repack-dev-server 4.3.2 → 4.4.0-canary-20240909082848

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @callstack/repack-dev-server
2
2
 
3
+ ## 4.4.0-canary-20240909082848
4
+
3
5
  ## 4.3.2
4
6
 
5
7
  ## 4.3.1
@@ -101,6 +101,7 @@ export async function createServer(config) {
101
101
  });
102
102
  instance.use('/debugger-ui', debuggerUIMiddleware());
103
103
  instance.use('/open-url', openURLMiddleware);
104
+ // @ts-ignore
104
105
  instance.use('/open-stack-frame', openStackFrameInEditorMiddleware);
105
106
  await instance.register(symbolicatePlugin, {
106
107
  delegate
@@ -1 +1 @@
1
- {"version":3,"file":"createServer.js","names":["Writable","Fastify","fastifySensible","middie","createDevMiddleware","debuggerUIMiddleware","openURLMiddleware","openStackFrameInEditorMiddleware","multipartPlugin","compilerPlugin","apiPlugin","wssPlugin","faviconPlugin","Internal","symbolicatePlugin","devtoolsPlugin","createServer","config","delegate","instance","logger","level","stream","write","chunk","_encoding","callback","log","JSON","parse","toString","onMessage","wss","apiServer","send","options","https","undefined","notifyBuildStart","platform","event","EventTypes","BuildStart","notifyBuildEnd","BuildEnd","broadcastToHmrClients","clientIds","hmrServer","broadcastToMessageClients","method","params","messageServer","broadcast","devMiddleware","projectRoot","rootDir","serverBaseUrl","host","port","unstable_experiments","enableNewDebugger","experiments","experimentalDebugger","register","endpoints","websocketEndpoints","prefix","use","addHook","request","reply","payload","header","pathname","url","split","endsWith","middleware","get","messages","getHello","getStatus","start","listen","stop","close"],"sources":["../src/createServer.ts"],"sourcesContent":["import { Writable } from 'stream';\nimport Fastify from 'fastify';\nimport fastifySensible from '@fastify/sensible';\nimport middie from '@fastify/middie';\n// eslint-disable-next-line import/no-unresolved -- no main field in package.json\nimport { createDevMiddleware } from '@react-native/dev-middleware';\nimport { debuggerUIMiddleware } from '@react-native-community/cli-debugger-ui';\nimport {\n openURLMiddleware,\n openStackFrameInEditorMiddleware,\n} from '@react-native-community/cli-server-api';\nimport multipartPlugin from './plugins/multipart';\nimport compilerPlugin from './plugins/compiler';\nimport apiPlugin from './plugins/api';\nimport wssPlugin from './plugins/wss';\nimport faviconPlugin from './plugins/favicon';\nimport { Internal, Server } from './types';\nimport symbolicatePlugin from './plugins/symbolicate';\nimport devtoolsPlugin from './plugins/devtools';\n\n/**\n * Create instance of development server, powered by Fastify.\n *\n * @param config Server configuration.\n * @returns `start` and `stop` functions as well as an underlying Fastify `instance`.\n */\nexport async function createServer(config: Server.Config) {\n let delegate: Server.Delegate;\n\n /** Fastify instance powering the development server. */\n const instance = Fastify({\n logger: {\n level: 'trace',\n stream: new Writable({\n write: (chunk, _encoding, callback) => {\n const log = JSON.parse(chunk.toString());\n delegate?.logger.onMessage(log);\n instance.wss?.apiServer.send(log);\n callback();\n },\n }),\n },\n ...(config.options.https ? { https: config.options.https } : undefined),\n });\n\n delegate = config.delegate({\n log: instance.log,\n notifyBuildStart: (platform) => {\n instance.wss.apiServer.send({\n event: Internal.EventTypes.BuildStart,\n platform,\n });\n },\n notifyBuildEnd: (platform) => {\n instance.wss.apiServer.send({\n event: Internal.EventTypes.BuildEnd,\n platform,\n });\n },\n broadcastToHmrClients: (event, platform, clientIds) => {\n instance.wss.hmrServer.send(event, platform, clientIds);\n },\n broadcastToMessageClients: ({ method, params }) => {\n instance.wss.messageServer.broadcast(method, params);\n },\n });\n\n const devMiddleware = createDevMiddleware({\n projectRoot: config.options.rootDir,\n serverBaseUrl: `http://${config.options.host}:${config.options.port}`,\n logger: instance.log,\n unstable_experiments: {\n enableNewDebugger: config.experiments?.experimentalDebugger,\n },\n });\n\n // Register plugins\n await instance.register(fastifySensible);\n await instance.register(middie);\n await instance.register(wssPlugin, {\n options: {\n ...config.options,\n endpoints: devMiddleware.websocketEndpoints,\n },\n delegate,\n });\n await instance.register(multipartPlugin);\n await instance.register(apiPlugin, {\n delegate,\n prefix: '/api',\n });\n await instance.register(compilerPlugin, {\n delegate,\n });\n\n // TODO: devtoolsPlugin and the following deprecated remote debugger middlewares should be removed after\n // the new (experimental) debugger is stable AND the remote debugger is finally removed from the React Native core.\n // When that happens remember to remove @react-native-community/cli-server-api & @react-native-community/cli-debugger-ui\n // from the dependencies.\n await instance.register(devtoolsPlugin, {\n options: config.options,\n });\n instance.use('/debugger-ui', debuggerUIMiddleware());\n instance.use('/open-url', openURLMiddleware);\n instance.use('/open-stack-frame', openStackFrameInEditorMiddleware);\n\n await instance.register(symbolicatePlugin, {\n delegate,\n });\n\n // below is to prevent showing `GET 400 /favicon.ico`\n // errors in console when requesting the bundle via browser\n await instance.register(faviconPlugin);\n\n instance.addHook('onSend', async (request, reply, payload) => {\n reply.header('X-Content-Type-Options', 'nosniff');\n reply.header('X-React-Native-Project-Root', config.options.rootDir);\n\n const [pathname] = request.url.split('?');\n if (pathname.endsWith('.map')) {\n reply.header('Access-Control-Allow-Origin', 'devtools://devtools');\n }\n\n return payload;\n });\n\n // Register dev middleware\n instance.use(devMiddleware.middleware);\n\n // Register routes\n instance.get('/', async () => delegate.messages.getHello());\n instance.get('/status', async () => delegate.messages.getStatus());\n\n /** Start the development server. */\n async function start() {\n await instance.listen({\n port: config.options.port,\n host: config.options.host,\n });\n }\n\n /** Stop the development server. */\n async function stop() {\n await instance.close();\n }\n\n return {\n start,\n stop,\n instance,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createServer.js","names":["Writable","Fastify","fastifySensible","middie","createDevMiddleware","debuggerUIMiddleware","openURLMiddleware","openStackFrameInEditorMiddleware","multipartPlugin","compilerPlugin","apiPlugin","wssPlugin","faviconPlugin","Internal","symbolicatePlugin","devtoolsPlugin","createServer","config","delegate","instance","logger","level","stream","write","chunk","_encoding","callback","log","JSON","parse","toString","onMessage","wss","apiServer","send","options","https","undefined","notifyBuildStart","platform","event","EventTypes","BuildStart","notifyBuildEnd","BuildEnd","broadcastToHmrClients","clientIds","hmrServer","broadcastToMessageClients","method","params","messageServer","broadcast","devMiddleware","projectRoot","rootDir","serverBaseUrl","host","port","unstable_experiments","enableNewDebugger","experiments","experimentalDebugger","register","endpoints","websocketEndpoints","prefix","use","addHook","request","reply","payload","header","pathname","url","split","endsWith","middleware","get","messages","getHello","getStatus","start","listen","stop","close"],"sources":["../src/createServer.ts"],"sourcesContent":["import { Writable } from 'stream';\nimport Fastify from 'fastify';\nimport fastifySensible from '@fastify/sensible';\nimport middie from '@fastify/middie';\n// eslint-disable-next-line import/no-unresolved -- no main field in package.json\nimport { createDevMiddleware } from '@react-native/dev-middleware';\nimport { debuggerUIMiddleware } from '@react-native-community/cli-debugger-ui';\nimport {\n openURLMiddleware,\n openStackFrameInEditorMiddleware,\n} from '@react-native-community/cli-server-api';\nimport multipartPlugin from './plugins/multipart';\nimport compilerPlugin from './plugins/compiler';\nimport apiPlugin from './plugins/api';\nimport wssPlugin from './plugins/wss';\nimport faviconPlugin from './plugins/favicon';\nimport { Internal, Server } from './types';\nimport symbolicatePlugin from './plugins/symbolicate';\nimport devtoolsPlugin from './plugins/devtools';\n\n/**\n * Create instance of development server, powered by Fastify.\n *\n * @param config Server configuration.\n * @returns `start` and `stop` functions as well as an underlying Fastify `instance`.\n */\nexport async function createServer(config: Server.Config) {\n let delegate: Server.Delegate;\n\n /** Fastify instance powering the development server. */\n const instance = Fastify({\n logger: {\n level: 'trace',\n stream: new Writable({\n write: (chunk, _encoding, callback) => {\n const log = JSON.parse(chunk.toString());\n delegate?.logger.onMessage(log);\n instance.wss?.apiServer.send(log);\n callback();\n },\n }),\n },\n ...(config.options.https ? { https: config.options.https } : undefined),\n });\n\n delegate = config.delegate({\n log: instance.log,\n notifyBuildStart: (platform) => {\n instance.wss.apiServer.send({\n event: Internal.EventTypes.BuildStart,\n platform,\n });\n },\n notifyBuildEnd: (platform) => {\n instance.wss.apiServer.send({\n event: Internal.EventTypes.BuildEnd,\n platform,\n });\n },\n broadcastToHmrClients: (event, platform, clientIds) => {\n instance.wss.hmrServer.send(event, platform, clientIds);\n },\n broadcastToMessageClients: ({ method, params }) => {\n instance.wss.messageServer.broadcast(method, params);\n },\n });\n\n const devMiddleware = createDevMiddleware({\n projectRoot: config.options.rootDir,\n serverBaseUrl: `http://${config.options.host}:${config.options.port}`,\n logger: instance.log,\n unstable_experiments: {\n enableNewDebugger: config.experiments?.experimentalDebugger,\n },\n });\n\n // Register plugins\n await instance.register(fastifySensible);\n await instance.register(middie);\n await instance.register(wssPlugin, {\n options: {\n ...config.options,\n endpoints: devMiddleware.websocketEndpoints,\n },\n delegate,\n });\n await instance.register(multipartPlugin);\n await instance.register(apiPlugin, {\n delegate,\n prefix: '/api',\n });\n await instance.register(compilerPlugin, {\n delegate,\n });\n\n // TODO: devtoolsPlugin and the following deprecated remote debugger middlewares should be removed after\n // the new (experimental) debugger is stable AND the remote debugger is finally removed from the React Native core.\n // When that happens remember to remove @react-native-community/cli-server-api & @react-native-community/cli-debugger-ui\n // from the dependencies.\n await instance.register(devtoolsPlugin, {\n options: config.options,\n });\n instance.use('/debugger-ui', debuggerUIMiddleware());\n instance.use('/open-url', openURLMiddleware);\n // @ts-ignore\n instance.use('/open-stack-frame', openStackFrameInEditorMiddleware);\n\n await instance.register(symbolicatePlugin, {\n delegate,\n });\n\n // below is to prevent showing `GET 400 /favicon.ico`\n // errors in console when requesting the bundle via browser\n await instance.register(faviconPlugin);\n\n instance.addHook('onSend', async (request, reply, payload) => {\n reply.header('X-Content-Type-Options', 'nosniff');\n reply.header('X-React-Native-Project-Root', config.options.rootDir);\n\n const [pathname] = request.url.split('?');\n if (pathname.endsWith('.map')) {\n reply.header('Access-Control-Allow-Origin', 'devtools://devtools');\n }\n\n return payload;\n });\n\n // Register dev middleware\n instance.use(devMiddleware.middleware);\n\n // Register routes\n instance.get('/', async () => delegate.messages.getHello());\n instance.get('/status', async () => delegate.messages.getStatus());\n\n /** Start the development server. */\n async function start() {\n await instance.listen({\n port: config.options.port,\n host: config.options.host,\n });\n }\n\n /** Stop the development server. */\n async function stop() {\n await instance.close();\n }\n\n return {\n start,\n stop,\n instance,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,11 +16,11 @@ async function compilerPlugin(instance, {
16
16
  }
17
17
  },
18
18
  handler: async (request, reply) => {
19
- let file = request.params['*'];
19
+ const filename = request.params['*'];
20
20
  let {
21
21
  platform
22
22
  } = request.query;
23
- if (!file) {
23
+ if (!filename) {
24
24
  // This technically should never happen - this route should not be called if file is missing.
25
25
  request.log.error(`File was not provided`);
26
26
  return reply.notFound();
@@ -29,15 +29,6 @@ async function compilerPlugin(instance, {
29
29
  // Let consumer infer the platform. If function is not provided fallback
30
30
  // to platform query param.
31
31
  platform = delegate.compiler.inferPlatform?.(request.url) ?? platform;
32
- if (!platform) {
33
- request.log.error('Cannot detect platform');
34
- return reply.badRequest('Cannot detect platform');
35
- }
36
-
37
- // If platform happens to be in front of an asset remove it.
38
- if (file.startsWith(`${platform}/`)) {
39
- file = file.replace(`${platform}/`, '');
40
- }
41
32
  const multipart = reply.asMultipart();
42
33
  const sendProgress = ({
43
34
  completed,
@@ -51,8 +42,8 @@ async function compilerPlugin(instance, {
51
42
  }));
52
43
  };
53
44
  try {
54
- const asset = await delegate.compiler.getAsset(file, platform, sendProgress);
55
- const mimeType = delegate.compiler.getMimeType(file, platform, asset);
45
+ const asset = await delegate.compiler.getAsset(filename, platform, sendProgress);
46
+ const mimeType = delegate.compiler.getMimeType(filename, platform, asset);
56
47
  if (multipart) {
57
48
  const buffer = Buffer.isBuffer(asset) ? asset : Buffer.from(asset);
58
49
  multipart.setHeader('Content-Type', `${mimeType}; charset=UTF-8`);
@@ -1 +1 @@
1
- {"version":3,"file":"compilerPlugin.js","names":["fastifyPlugin","compilerPlugin","instance","delegate","route","method","url","schema","querystring","type","properties","platform","handler","request","reply","file","params","query","log","error","notFound","compiler","inferPlatform","badRequest","startsWith","replace","multipart","asMultipart","sendProgress","completed","total","writeChunk","JSON","stringify","done","asset","getAsset","mimeType","getMimeType","buffer","Buffer","isBuffer","from","setHeader","String","byteLength","end","code","send","message","name","dependencies"],"sources":["../../../src/plugins/compiler/compilerPlugin.ts"],"sourcesContent":["import type { FastifyInstance } from 'fastify';\nimport fastifyPlugin from 'fastify-plugin';\nimport type { Server } from '../../types';\nimport type { SendProgress } from '../../types';\n\nasync function compilerPlugin(\n instance: FastifyInstance,\n { delegate }: { delegate: Server.Delegate }\n) {\n instance.route({\n method: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'HEAD'],\n url: '/*',\n schema: {\n querystring: {\n type: 'object',\n properties: {\n platform: {\n type: 'string',\n },\n },\n },\n },\n handler: async (request, reply) => {\n let file = (request.params as { '*'?: string })['*'];\n let { platform } = request.query as { platform?: string };\n\n if (!file) {\n // This technically should never happen - this route should not be called if file is missing.\n request.log.error(`File was not provided`);\n return reply.notFound();\n }\n\n // Let consumer infer the platform. If function is not provided fallback\n // to platform query param.\n platform = delegate.compiler.inferPlatform?.(request.url) ?? platform;\n\n if (!platform) {\n request.log.error('Cannot detect platform');\n return reply.badRequest('Cannot detect platform');\n }\n\n // If platform happens to be in front of an asset remove it.\n if (file.startsWith(`${platform}/`)) {\n file = file.replace(`${platform}/`, '');\n }\n\n const multipart = reply.asMultipart();\n\n const sendProgress: SendProgress = ({ completed, total }) => {\n multipart?.writeChunk(\n { 'Content-Type': 'application/json' },\n JSON.stringify({\n done: completed,\n total,\n })\n );\n };\n\n try {\n const asset = await delegate.compiler.getAsset(\n file,\n platform,\n sendProgress\n );\n const mimeType = delegate.compiler.getMimeType(file, platform, asset);\n\n if (multipart) {\n const buffer = Buffer.isBuffer(asset) ? asset : Buffer.from(asset);\n multipart.setHeader('Content-Type', `${mimeType}; charset=UTF-8`);\n multipart.setHeader(\n 'Content-Length',\n String(Buffer.byteLength(buffer))\n );\n multipart.end(buffer);\n } else {\n return reply.code(200).type(mimeType).send(asset);\n }\n } catch (error) {\n request.log.error(error);\n return reply.notFound((error as Error).message);\n }\n },\n });\n}\n\nexport default fastifyPlugin(compilerPlugin, {\n name: 'compiler-plugin',\n dependencies: ['@fastify/sensible', 'multipart-plugin'],\n});\n"],"mappings":"AACA,OAAOA,aAAa,MAAM,gBAAgB;AAI1C,eAAeC,cAAcA,CAC3BC,QAAyB,EACzB;EAAEC;AAAwC,CAAC,EAC3C;EACAD,QAAQ,CAACE,KAAK,CAAC;IACbC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;IAC3DC,GAAG,EAAE,IAAI;IACTC,MAAM,EAAE;MACNC,WAAW,EAAE;QACXC,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE;UACVC,QAAQ,EAAE;YACRF,IAAI,EAAE;UACR;QACF;MACF;IACF,CAAC;IACDG,OAAO,EAAE,MAAAA,CAAOC,OAAO,EAAEC,KAAK,KAAK;MACjC,IAAIC,IAAI,GAAIF,OAAO,CAACG,MAAM,CAAsB,GAAG,CAAC;MACpD,IAAI;QAAEL;MAAS,CAAC,GAAGE,OAAO,CAACI,KAA8B;MAEzD,IAAI,CAACF,IAAI,EAAE;QACT;QACAF,OAAO,CAACK,GAAG,CAACC,KAAK,CAAC,uBAAuB,CAAC;QAC1C,OAAOL,KAAK,CAACM,QAAQ,CAAC,CAAC;MACzB;;MAEA;MACA;MACAT,QAAQ,GAAGR,QAAQ,CAACkB,QAAQ,CAACC,aAAa,GAAGT,OAAO,CAACP,GAAG,CAAC,IAAIK,QAAQ;MAErE,IAAI,CAACA,QAAQ,EAAE;QACbE,OAAO,CAACK,GAAG,CAACC,KAAK,CAAC,wBAAwB,CAAC;QAC3C,OAAOL,KAAK,CAACS,UAAU,CAAC,wBAAwB,CAAC;MACnD;;MAEA;MACA,IAAIR,IAAI,CAACS,UAAU,CAAC,GAAGb,QAAQ,GAAG,CAAC,EAAE;QACnCI,IAAI,GAAGA,IAAI,CAACU,OAAO,CAAC,GAAGd,QAAQ,GAAG,EAAE,EAAE,CAAC;MACzC;MAEA,MAAMe,SAAS,GAAGZ,KAAK,CAACa,WAAW,CAAC,CAAC;MAErC,MAAMC,YAA0B,GAAGA,CAAC;QAAEC,SAAS;QAAEC;MAAM,CAAC,KAAK;QAC3DJ,SAAS,EAAEK,UAAU,CACnB;UAAE,cAAc,EAAE;QAAmB,CAAC,EACtCC,IAAI,CAACC,SAAS,CAAC;UACbC,IAAI,EAAEL,SAAS;UACfC;QACF,CAAC,CACH,CAAC;MACH,CAAC;MAED,IAAI;QACF,MAAMK,KAAK,GAAG,MAAMhC,QAAQ,CAACkB,QAAQ,CAACe,QAAQ,CAC5CrB,IAAI,EACJJ,QAAQ,EACRiB,YACF,CAAC;QACD,MAAMS,QAAQ,GAAGlC,QAAQ,CAACkB,QAAQ,CAACiB,WAAW,CAACvB,IAAI,EAAEJ,QAAQ,EAAEwB,KAAK,CAAC;QAErE,IAAIT,SAAS,EAAE;UACb,MAAMa,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACN,KAAK,CAAC,GAAGA,KAAK,GAAGK,MAAM,CAACE,IAAI,CAACP,KAAK,CAAC;UAClET,SAAS,CAACiB,SAAS,CAAC,cAAc,EAAE,GAAGN,QAAQ,iBAAiB,CAAC;UACjEX,SAAS,CAACiB,SAAS,CACjB,gBAAgB,EAChBC,MAAM,CAACJ,MAAM,CAACK,UAAU,CAACN,MAAM,CAAC,CAClC,CAAC;UACDb,SAAS,CAACoB,GAAG,CAACP,MAAM,CAAC;QACvB,CAAC,MAAM;UACL,OAAOzB,KAAK,CAACiC,IAAI,CAAC,GAAG,CAAC,CAACtC,IAAI,CAAC4B,QAAQ,CAAC,CAACW,IAAI,CAACb,KAAK,CAAC;QACnD;MACF,CAAC,CAAC,OAAOhB,KAAK,EAAE;QACdN,OAAO,CAACK,GAAG,CAACC,KAAK,CAACA,KAAK,CAAC;QACxB,OAAOL,KAAK,CAACM,QAAQ,CAAED,KAAK,CAAW8B,OAAO,CAAC;MACjD;IACF;EACF,CAAC,CAAC;AACJ;AAEA,eAAejD,aAAa,CAACC,cAAc,EAAE;EAC3CiD,IAAI,EAAE,iBAAiB;EACvBC,YAAY,EAAE,CAAC,mBAAmB,EAAE,kBAAkB;AACxD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"compilerPlugin.js","names":["fastifyPlugin","compilerPlugin","instance","delegate","route","method","url","schema","querystring","type","properties","platform","handler","request","reply","filename","params","query","log","error","notFound","compiler","inferPlatform","multipart","asMultipart","sendProgress","completed","total","writeChunk","JSON","stringify","done","asset","getAsset","mimeType","getMimeType","buffer","Buffer","isBuffer","from","setHeader","String","byteLength","end","code","send","message","name","dependencies"],"sources":["../../../src/plugins/compiler/compilerPlugin.ts"],"sourcesContent":["import type { FastifyInstance } from 'fastify';\nimport fastifyPlugin from 'fastify-plugin';\nimport type { Server } from '../../types';\nimport type { SendProgress } from '../../types';\n\nasync function compilerPlugin(\n instance: FastifyInstance,\n { delegate }: { delegate: Server.Delegate }\n) {\n instance.route({\n method: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'HEAD'],\n url: '/*',\n schema: {\n querystring: {\n type: 'object',\n properties: {\n platform: {\n type: 'string',\n },\n },\n },\n },\n handler: async (request, reply) => {\n const filename = (request.params as { '*'?: string })['*'];\n let { platform } = request.query as { platform?: string };\n\n if (!filename) {\n // This technically should never happen - this route should not be called if file is missing.\n request.log.error(`File was not provided`);\n return reply.notFound();\n }\n\n // Let consumer infer the platform. If function is not provided fallback\n // to platform query param.\n platform = delegate.compiler.inferPlatform?.(request.url) ?? platform;\n\n const multipart = reply.asMultipart();\n\n const sendProgress: SendProgress = ({ completed, total }) => {\n multipart?.writeChunk(\n { 'Content-Type': 'application/json' },\n JSON.stringify({\n done: completed,\n total,\n })\n );\n };\n\n try {\n const asset = await delegate.compiler.getAsset(\n filename,\n platform,\n sendProgress\n );\n const mimeType = delegate.compiler.getMimeType(\n filename,\n platform,\n asset\n );\n\n if (multipart) {\n const buffer = Buffer.isBuffer(asset) ? asset : Buffer.from(asset);\n multipart.setHeader('Content-Type', `${mimeType}; charset=UTF-8`);\n multipart.setHeader(\n 'Content-Length',\n String(Buffer.byteLength(buffer))\n );\n multipart.end(buffer);\n } else {\n return reply.code(200).type(mimeType).send(asset);\n }\n } catch (error) {\n request.log.error(error);\n return reply.notFound((error as Error).message);\n }\n },\n });\n}\n\nexport default fastifyPlugin(compilerPlugin, {\n name: 'compiler-plugin',\n dependencies: ['@fastify/sensible', 'multipart-plugin'],\n});\n"],"mappings":"AACA,OAAOA,aAAa,MAAM,gBAAgB;AAI1C,eAAeC,cAAcA,CAC3BC,QAAyB,EACzB;EAAEC;AAAwC,CAAC,EAC3C;EACAD,QAAQ,CAACE,KAAK,CAAC;IACbC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;IAC3DC,GAAG,EAAE,IAAI;IACTC,MAAM,EAAE;MACNC,WAAW,EAAE;QACXC,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE;UACVC,QAAQ,EAAE;YACRF,IAAI,EAAE;UACR;QACF;MACF;IACF,CAAC;IACDG,OAAO,EAAE,MAAAA,CAAOC,OAAO,EAAEC,KAAK,KAAK;MACjC,MAAMC,QAAQ,GAAIF,OAAO,CAACG,MAAM,CAAsB,GAAG,CAAC;MAC1D,IAAI;QAAEL;MAAS,CAAC,GAAGE,OAAO,CAACI,KAA8B;MAEzD,IAAI,CAACF,QAAQ,EAAE;QACb;QACAF,OAAO,CAACK,GAAG,CAACC,KAAK,CAAC,uBAAuB,CAAC;QAC1C,OAAOL,KAAK,CAACM,QAAQ,CAAC,CAAC;MACzB;;MAEA;MACA;MACAT,QAAQ,GAAGR,QAAQ,CAACkB,QAAQ,CAACC,aAAa,GAAGT,OAAO,CAACP,GAAG,CAAC,IAAIK,QAAQ;MAErE,MAAMY,SAAS,GAAGT,KAAK,CAACU,WAAW,CAAC,CAAC;MAErC,MAAMC,YAA0B,GAAGA,CAAC;QAAEC,SAAS;QAAEC;MAAM,CAAC,KAAK;QAC3DJ,SAAS,EAAEK,UAAU,CACnB;UAAE,cAAc,EAAE;QAAmB,CAAC,EACtCC,IAAI,CAACC,SAAS,CAAC;UACbC,IAAI,EAAEL,SAAS;UACfC;QACF,CAAC,CACH,CAAC;MACH,CAAC;MAED,IAAI;QACF,MAAMK,KAAK,GAAG,MAAM7B,QAAQ,CAACkB,QAAQ,CAACY,QAAQ,CAC5ClB,QAAQ,EACRJ,QAAQ,EACRc,YACF,CAAC;QACD,MAAMS,QAAQ,GAAG/B,QAAQ,CAACkB,QAAQ,CAACc,WAAW,CAC5CpB,QAAQ,EACRJ,QAAQ,EACRqB,KACF,CAAC;QAED,IAAIT,SAAS,EAAE;UACb,MAAMa,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACN,KAAK,CAAC,GAAGA,KAAK,GAAGK,MAAM,CAACE,IAAI,CAACP,KAAK,CAAC;UAClET,SAAS,CAACiB,SAAS,CAAC,cAAc,EAAE,GAAGN,QAAQ,iBAAiB,CAAC;UACjEX,SAAS,CAACiB,SAAS,CACjB,gBAAgB,EAChBC,MAAM,CAACJ,MAAM,CAACK,UAAU,CAACN,MAAM,CAAC,CAClC,CAAC;UACDb,SAAS,CAACoB,GAAG,CAACP,MAAM,CAAC;QACvB,CAAC,MAAM;UACL,OAAOtB,KAAK,CAAC8B,IAAI,CAAC,GAAG,CAAC,CAACnC,IAAI,CAACyB,QAAQ,CAAC,CAACW,IAAI,CAACb,KAAK,CAAC;QACnD;MACF,CAAC,CAAC,OAAOb,KAAK,EAAE;QACdN,OAAO,CAACK,GAAG,CAACC,KAAK,CAACA,KAAK,CAAC;QACxB,OAAOL,KAAK,CAACM,QAAQ,CAAED,KAAK,CAAW2B,OAAO,CAAC;MACjD;IACF;EACF,CAAC,CAAC;AACJ;AAEA,eAAe9C,aAAa,CAACC,cAAc,EAAE;EAC3C8C,IAAI,EAAE,iBAAiB;EACvBC,YAAY,EAAE,CAAC,mBAAmB,EAAE,kBAAkB;AACxD,CAAC,CAAC","ignoreList":[]}
@@ -12,7 +12,7 @@ export interface CompilerDelegate {
12
12
  * @param platform Platform of the asset to get.
13
13
  * @param sendProgress Function to notify the client who requested the asset about compilation progress.
14
14
  */
15
- getAsset: (filename: string, platform: string, sendProgress?: SendProgress) => Promise<string | Buffer>;
15
+ getAsset: (filename: string, platform: string | undefined, sendProgress?: SendProgress) => Promise<string | Buffer>;
16
16
  /**
17
17
  * Detect MIME type of the asset from `filename`, `platform` or `data` (or from combination of either).
18
18
  *
@@ -20,7 +20,7 @@ export interface CompilerDelegate {
20
20
  * @param platform Platform of the asset.
21
21
  * @param data Asset's content.
22
22
  */
23
- getMimeType: (filename: string, platform: string, data: string | Buffer) => string;
23
+ getMimeType: (filename: string, platform: string | undefined, data: string | Buffer) => string;
24
24
  /**
25
25
  * Detect the platform from the URI - either from filename, query params or both.
26
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/plugins/compiler/types.ts"],"sourcesContent":["import type { SendProgress } from '../../types';\n\n/**\n * Delegate with implementation for compiler-specific functions.\n */\nexport interface CompilerDelegate {\n /**\n * Get compiled asset content.\n *\n * If the compilation is in progress, it should wait until compilation finishes and then return the asset.\n *\n * @param filename Filename of the asset to get.\n * @param platform Platform of the asset to get.\n * @param sendProgress Function to notify the client who requested the asset about compilation progress.\n */\n getAsset: (\n filename: string,\n platform: string,\n sendProgress?: SendProgress\n ) => Promise<string | Buffer>;\n\n /**\n * Detect MIME type of the asset from `filename`, `platform` or `data` (or from combination of either).\n *\n * @param filename Filename of the asset.\n * @param platform Platform of the asset.\n * @param data Asset's content.\n */\n getMimeType: (\n filename: string,\n platform: string,\n data: string | Buffer\n ) => string;\n\n /**\n * Detect the platform from the URI - either from filename, query params or both.\n *\n * @param uri URI string.\n */\n inferPlatform?: (uri: string) => string | undefined;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/plugins/compiler/types.ts"],"sourcesContent":["import type { SendProgress } from '../../types';\n\n/**\n * Delegate with implementation for compiler-specific functions.\n */\nexport interface CompilerDelegate {\n /**\n * Get compiled asset content.\n *\n * If the compilation is in progress, it should wait until compilation finishes and then return the asset.\n *\n * @param filename Filename of the asset to get.\n * @param platform Platform of the asset to get.\n * @param sendProgress Function to notify the client who requested the asset about compilation progress.\n */\n getAsset: (\n filename: string,\n platform: string | undefined,\n sendProgress?: SendProgress\n ) => Promise<string | Buffer>;\n\n /**\n * Detect MIME type of the asset from `filename`, `platform` or `data` (or from combination of either).\n *\n * @param filename Filename of the asset.\n * @param platform Platform of the asset.\n * @param data Asset's content.\n */\n getMimeType: (\n filename: string,\n platform: string | undefined,\n data: string | Buffer\n ) => string;\n\n /**\n * Detect the platform from the URI - either from filename, query params or both.\n *\n * @param uri URI string.\n */\n inferPlatform?: (uri: string) => string | undefined;\n}\n"],"mappings":"","ignoreList":[]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@callstack/repack-dev-server",
3
3
  "description": "A bundler-agnostic development server for React Native applications as part of @callstack/repack.",
4
4
  "license": "MIT",
5
- "version": "4.3.2",
5
+ "version": "4.4.0-canary-20240909082848",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",