@tamagui/cli 1.74.3 → 1.74.5
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/dist/cli.js +0 -15
- package/dist/cli.js.map +1 -1
- package/dist/cli.native.js +0 -15
- package/dist/cli.native.js.map +1 -1
- package/dist/dev/clientInjectPlugin.js +1 -1
- package/dist/dev/clientInjectPlugin.js.map +1 -1
- package/dist/dev/clientInjectPlugin.native.js +1 -1
- package/dist/dev/clientInjectPlugin.native.js.map +1 -1
- package/dist/dev.js +40 -6
- package/dist/dev.js.map +2 -2
- package/dist/dev.native.js +40 -6
- package/dist/dev.native.js.map +2 -2
- package/dist/vendor/repack/dev-server/src/createServer.js +1 -1
- package/dist/vendor/repack/dev-server/src/createServer.js.map +1 -1
- package/dist/vendor/repack/dev-server/src/createServer.native.js +1 -1
- package/dist/vendor/repack/dev-server/src/createServer.native.js.map +1 -1
- package/package.json +10 -38
- package/src/cli.ts +0 -18
- package/types/dev.d.ts.map +1 -1
- package/src/dev/clientInjectPlugin.ts +0 -112
- package/src/dev/createDevServer.ts +0 -250
- package/src/dev/types.ts +0 -1
- package/src/dev.ts +0 -475
- package/src/test.ts +0 -12
- package/src/utils/constants.ts +0 -1
- package/src/vendor/debugger-app/index.d.ts +0 -2
- package/src/vendor/debugger-app/index.js +0 -3
- package/src/vendor/debugger-app/public/index.html +0 -49
- package/src/vendor/debugger-app/src/assets/blue-icon.png +0 -0
- package/src/vendor/debugger-app/src/assets/gray-icon.png +0 -0
- package/src/vendor/debugger-app/src/assets/orange-icon.png +0 -0
- package/src/vendor/debugger-app/src/debuggerWorker.js +0 -84
- package/src/vendor/debugger-app/src/index.css +0 -37
- package/src/vendor/debugger-app/src/index.js +0 -199
- package/src/vendor/debugger-app/webpack.config.cjs +0 -73
- package/src/vendor/repack/dev-server/src/createServer.ts +0 -155
- package/src/vendor/repack/dev-server/src/img/favicon.ico +0 -0
- package/src/vendor/repack/dev-server/src/index.ts +0 -2
- package/src/vendor/repack/dev-server/src/plugins/api/apiPlugin.ts +0 -50
- package/src/vendor/repack/dev-server/src/plugins/api/index.ts +0 -1
- package/src/vendor/repack/dev-server/src/plugins/compiler/compilerPlugin.ts +0 -84
- package/src/vendor/repack/dev-server/src/plugins/compiler/index.ts +0 -2
- package/src/vendor/repack/dev-server/src/plugins/compiler/types.ts +0 -37
- package/src/vendor/repack/dev-server/src/plugins/devtools/devtoolsPlugin.ts +0 -107
- package/src/vendor/repack/dev-server/src/plugins/devtools/index.ts +0 -1
- package/src/vendor/repack/dev-server/src/plugins/favicon/faviconPlugin.ts +0 -14
- package/src/vendor/repack/dev-server/src/plugins/favicon/index.ts +0 -1
- package/src/vendor/repack/dev-server/src/plugins/multipart/index.ts +0 -2
- package/src/vendor/repack/dev-server/src/plugins/multipart/multipartPlugin.ts +0 -77
- package/src/vendor/repack/dev-server/src/plugins/multipart/types.ts +0 -13
- package/src/vendor/repack/dev-server/src/plugins/symbolicate/Symbolicator.ts +0 -233
- package/src/vendor/repack/dev-server/src/plugins/symbolicate/index.ts +0 -3
- package/src/vendor/repack/dev-server/src/plugins/symbolicate/sybmolicatePlugin.ts +0 -48
- package/src/vendor/repack/dev-server/src/plugins/symbolicate/types.ts +0 -71
- package/src/vendor/repack/dev-server/src/plugins/wss/WebSocketRouter.ts +0 -74
- package/src/vendor/repack/dev-server/src/plugins/wss/WebSocketServer.ts +0 -60
- package/src/vendor/repack/dev-server/src/plugins/wss/index.ts +0 -3
- package/src/vendor/repack/dev-server/src/plugins/wss/servers/HermesInspectorProxy.ts +0 -158
- package/src/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketApiServer.ts +0 -69
- package/src/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDebuggerServer.ts +0 -134
- package/src/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketDevClientServer.ts +0 -74
- package/src/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketEventsServer.ts +0 -205
- package/src/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketHMRServer.ts +0 -97
- package/src/vendor/repack/dev-server/src/plugins/wss/servers/WebSocketMessageServer.ts +0 -401
- package/src/vendor/repack/dev-server/src/plugins/wss/types.ts +0 -17
- package/src/vendor/repack/dev-server/src/plugins/wss/wssPlugin.ts +0 -73
- package/src/vendor/repack/dev-server/src/types.ts +0 -206
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import path from 'node:path'
|
|
2
|
-
|
|
3
|
-
import type { HmrOptions, Plugin, ResolvedConfig, UserConfig } from 'vite'
|
|
4
|
-
|
|
5
|
-
const process_env_NODE_ENV_RE = /(\bglobal(This)?\.)?\bprocess\.env\.NODE_ENV\b/g
|
|
6
|
-
|
|
7
|
-
const isObject = (x: any): x is Object => x && typeof x === 'object'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* some values used by the client needs to be dynamically injected by the server
|
|
11
|
-
* @server-only
|
|
12
|
-
*/
|
|
13
|
-
export function clientInjectionsPlugin(config: ResolvedConfig): Plugin {
|
|
14
|
-
let injectConfigValues: (code: string) => string
|
|
15
|
-
|
|
16
|
-
return {
|
|
17
|
-
name: 'vite:client-inject',
|
|
18
|
-
|
|
19
|
-
async buildStart() {
|
|
20
|
-
const resolvedServerHostname = '127.0.0.1'
|
|
21
|
-
const resolvedServerPort = config.server!.port! || 5173
|
|
22
|
-
const devBase = config.base || '/'
|
|
23
|
-
|
|
24
|
-
const serverHost = `${resolvedServerHostname}:${resolvedServerPort}${devBase}`
|
|
25
|
-
|
|
26
|
-
let hmrConfig = config.server!.hmr
|
|
27
|
-
hmrConfig = isObject(hmrConfig) ? (hmrConfig as HmrOptions) : undefined
|
|
28
|
-
|
|
29
|
-
const host = hmrConfig?.host || null
|
|
30
|
-
const protocol = hmrConfig?.protocol || null
|
|
31
|
-
const timeout = hmrConfig?.timeout || 30000
|
|
32
|
-
const overlay = hmrConfig?.overlay !== false
|
|
33
|
-
const isHmrServerSpecified = !!hmrConfig?.server
|
|
34
|
-
|
|
35
|
-
// hmr.clientPort -> hmr.port
|
|
36
|
-
// -> (24678 if middleware mode and HMR server is not specified) -> new URL(import.meta.url).port
|
|
37
|
-
let port = hmrConfig?.clientPort || hmrConfig?.port || null
|
|
38
|
-
if (config.server.middlewareMode && !isHmrServerSpecified) {
|
|
39
|
-
port ||= 24678
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
let directTarget = hmrConfig?.host || resolvedServerHostname
|
|
43
|
-
directTarget += `:${hmrConfig?.port || resolvedServerPort}`
|
|
44
|
-
directTarget += devBase
|
|
45
|
-
|
|
46
|
-
let hmrBase = devBase
|
|
47
|
-
if (hmrConfig?.path) {
|
|
48
|
-
hmrBase = path.posix.join(hmrBase, hmrConfig.path)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const serializedDefines = serializeDefine(config.define || {})
|
|
52
|
-
|
|
53
|
-
const modeReplacement = escapeReplacement(config.mode!)
|
|
54
|
-
const baseReplacement = escapeReplacement(devBase)
|
|
55
|
-
const definesReplacement = () => serializedDefines
|
|
56
|
-
const serverHostReplacement = escapeReplacement(serverHost)
|
|
57
|
-
const hmrProtocolReplacement = escapeReplacement(protocol)
|
|
58
|
-
const hmrHostnameReplacement = escapeReplacement(host)
|
|
59
|
-
const hmrPortReplacement = escapeReplacement(port)
|
|
60
|
-
const hmrDirectTargetReplacement = escapeReplacement(directTarget)
|
|
61
|
-
const hmrBaseReplacement = escapeReplacement(hmrBase)
|
|
62
|
-
const hmrTimeoutReplacement = escapeReplacement(timeout)
|
|
63
|
-
const hmrEnableOverlayReplacement = escapeReplacement(overlay)
|
|
64
|
-
|
|
65
|
-
injectConfigValues = (code: string) => {
|
|
66
|
-
return code
|
|
67
|
-
.replace(`__MODE__`, modeReplacement)
|
|
68
|
-
.replace(/__BASE__/g, baseReplacement)
|
|
69
|
-
.replace(`__DEFINES__`, definesReplacement)
|
|
70
|
-
.replace(`__SERVER_HOST__`, serverHostReplacement)
|
|
71
|
-
.replace(`__HMR_PROTOCOL__`, hmrProtocolReplacement)
|
|
72
|
-
.replace(`__HMR_HOSTNAME__`, hmrHostnameReplacement)
|
|
73
|
-
.replace(`__HMR_PORT__`, hmrPortReplacement)
|
|
74
|
-
.replace(`__HMR_DIRECT_TARGET__`, hmrDirectTargetReplacement)
|
|
75
|
-
.replace(`__HMR_BASE__`, hmrBaseReplacement)
|
|
76
|
-
.replace(`__HMR_TIMEOUT__`, hmrTimeoutReplacement)
|
|
77
|
-
.replace(`__HMR_ENABLE_OVERLAY__`, hmrEnableOverlayReplacement)
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
transform(code, id, options) {
|
|
82
|
-
if (id.endsWith('vite-native-client/dist/esm/client.js')) {
|
|
83
|
-
return injectConfigValues(code)
|
|
84
|
-
} else if (!options?.ssr && code.includes('process.env.NODE_ENV')) {
|
|
85
|
-
// replace process.env.NODE_ENV instead of defining a global
|
|
86
|
-
// for it to avoid shimming a `process` object during dev,
|
|
87
|
-
// avoiding inconsistencies between dev and build
|
|
88
|
-
// return code.replace(
|
|
89
|
-
// process_env_NODE_ENV_RE,
|
|
90
|
-
// config.define?.['process.env.NODE_ENV'] ||
|
|
91
|
-
// JSON.stringify(process.env.NODE_ENV || config.mode)
|
|
92
|
-
// )
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function escapeReplacement(value: string | number | boolean | null) {
|
|
99
|
-
const jsonValue = JSON.stringify(value)
|
|
100
|
-
return () => jsonValue
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function serializeDefine(define: Record<string, any>): string {
|
|
104
|
-
let res = `{`
|
|
105
|
-
for (const key in define) {
|
|
106
|
-
const val = define[key]
|
|
107
|
-
res += `${JSON.stringify(key)}: ${
|
|
108
|
-
typeof val === 'string' ? `(${val})` : JSON.stringify(val)
|
|
109
|
-
}, `
|
|
110
|
-
}
|
|
111
|
-
return res + `}`
|
|
112
|
-
}
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
import { CLIResolvedOptions } from '@tamagui/types'
|
|
2
|
-
import mime from 'mime/lite'
|
|
3
|
-
|
|
4
|
-
import { DEFAULT_PORT } from '../utils/constants'
|
|
5
|
-
import { Server, createServer } from '../vendor/repack/dev-server/src'
|
|
6
|
-
import { HMRListener } from './types'
|
|
7
|
-
|
|
8
|
-
export async function createDevServer(
|
|
9
|
-
options: CLIResolvedOptions,
|
|
10
|
-
{
|
|
11
|
-
indexJson,
|
|
12
|
-
listenForHMR,
|
|
13
|
-
getIndexBundle,
|
|
14
|
-
hotUpdatedCJSFiles,
|
|
15
|
-
}: {
|
|
16
|
-
indexJson: Object
|
|
17
|
-
getIndexBundle: () => Promise<string>
|
|
18
|
-
listenForHMR: (cb: HMRListener) => void
|
|
19
|
-
hotUpdatedCJSFiles: Map<string, string>
|
|
20
|
-
}
|
|
21
|
-
) {
|
|
22
|
-
const { start, stop } = await createServer({
|
|
23
|
-
options: {
|
|
24
|
-
rootDir: options.root,
|
|
25
|
-
host: options.host,
|
|
26
|
-
port: options.port ?? DEFAULT_PORT,
|
|
27
|
-
// https: args.https
|
|
28
|
-
// ? {
|
|
29
|
-
// cert: args.cert,
|
|
30
|
-
// key: args.key,
|
|
31
|
-
// }
|
|
32
|
-
// : undefined,
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
delegate: (ctx): Server.Delegate => {
|
|
36
|
-
// if (args.interactive) {
|
|
37
|
-
// bindKeypressInput(ctx)
|
|
38
|
-
// }
|
|
39
|
-
|
|
40
|
-
// if (reversePort && args.port) {
|
|
41
|
-
// runAdbReverse(ctx, args.port)
|
|
42
|
-
// }
|
|
43
|
-
|
|
44
|
-
// let lastStats: webpack.StatsCompilation | undefined
|
|
45
|
-
|
|
46
|
-
// compiler.on('watchRun', ({ platform }) => {
|
|
47
|
-
// ctx.notifyBuildStart(platform)
|
|
48
|
-
// if (platform === 'android') {
|
|
49
|
-
// runAdbReverse(ctx, args.port ?? DEFAULT_PORT)
|
|
50
|
-
// }
|
|
51
|
-
// })
|
|
52
|
-
|
|
53
|
-
// compiler.on('invalid', ({ platform }) => {
|
|
54
|
-
// ctx.notifyBuildStart(platform)
|
|
55
|
-
// ctx.broadcastToHmrClients({ action: 'building' }, platform)
|
|
56
|
-
// })
|
|
57
|
-
|
|
58
|
-
const platform = 'ios'
|
|
59
|
-
listenForHMR((update) => {
|
|
60
|
-
ctx.notifyBuildEnd(platform)
|
|
61
|
-
ctx.broadcastToHmrClients(
|
|
62
|
-
{
|
|
63
|
-
action: 'built',
|
|
64
|
-
body: createHmrBody({
|
|
65
|
-
errors: [],
|
|
66
|
-
warnings: [],
|
|
67
|
-
hash: `${Math.random()}`,
|
|
68
|
-
modules: {},
|
|
69
|
-
name: '',
|
|
70
|
-
time: 0,
|
|
71
|
-
}),
|
|
72
|
-
},
|
|
73
|
-
platform
|
|
74
|
-
)
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
return {
|
|
78
|
-
hotFiles: {
|
|
79
|
-
getSource: (path) => {
|
|
80
|
-
const next = hotUpdatedCJSFiles.get(path)
|
|
81
|
-
// hotUpdatedCJSFiles.delete(path) // memory leak prevent
|
|
82
|
-
return next || ''
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
compiler: {
|
|
87
|
-
getAsset: async (filename, platform, sendProgress) => {
|
|
88
|
-
console.log('[GET] - ', filename)
|
|
89
|
-
if (filename === 'index.bundle') {
|
|
90
|
-
return await getIndexBundle()
|
|
91
|
-
}
|
|
92
|
-
return ''
|
|
93
|
-
// return (await compiler.getAsset(filename, platform, sendProgress)).data
|
|
94
|
-
},
|
|
95
|
-
|
|
96
|
-
getMimeType: (filename) => {
|
|
97
|
-
return mime.getType(filename) || 'application/javascript'
|
|
98
|
-
},
|
|
99
|
-
|
|
100
|
-
inferPlatform: (uri) => {
|
|
101
|
-
return 'ios'
|
|
102
|
-
|
|
103
|
-
const url = new URL(uri, 'protocol://domain')
|
|
104
|
-
if (!url.searchParams.get('platform')) {
|
|
105
|
-
const [, platform] = /^\/(.+)\/.+$/.exec(url.pathname) ?? []
|
|
106
|
-
return platform
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return undefined
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
|
|
113
|
-
symbolicator: {
|
|
114
|
-
getSource: async (fileUrl) => {
|
|
115
|
-
console.log('get source', fileUrl)
|
|
116
|
-
// const { filename, platform } = parseFileUrl(fileUrl)
|
|
117
|
-
// return compiler.getSource(filename, platform)
|
|
118
|
-
return ''
|
|
119
|
-
},
|
|
120
|
-
getSourceMap: async (fileUrl) => {
|
|
121
|
-
// const { filename, platform } = parseFileUrl(fileUrl)
|
|
122
|
-
// if (!platform) {
|
|
123
|
-
// throw new Error('Cannot infer platform for file URL')
|
|
124
|
-
// }
|
|
125
|
-
|
|
126
|
-
// return compiler.getSourceMap(filename, platform)
|
|
127
|
-
return ''
|
|
128
|
-
},
|
|
129
|
-
shouldIncludeFrame: (frame) => {
|
|
130
|
-
// If the frame points to internal bootstrap/module system logic, skip the code frame.
|
|
131
|
-
return !/webpack[/\\]runtime[/\\].+\s/.test(frame.file)
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
|
-
|
|
135
|
-
hmr: {
|
|
136
|
-
getUriPath: () => '/__hmr',
|
|
137
|
-
onClientConnected: (platform, clientId) => {
|
|
138
|
-
// biome-ignore lint/suspicious/noConsoleLog: <explanation>
|
|
139
|
-
// todo
|
|
140
|
-
// const lastStats = {}
|
|
141
|
-
// ctx.broadcastToHmrClients(
|
|
142
|
-
// { action: 'sync', body: createHmrBody(lastStats) },
|
|
143
|
-
// platform,
|
|
144
|
-
// [clientId]
|
|
145
|
-
// )
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
|
|
149
|
-
messages: {
|
|
150
|
-
getHello: () => indexJson,
|
|
151
|
-
getStatus: () => 'packager-status:running',
|
|
152
|
-
},
|
|
153
|
-
|
|
154
|
-
logger: {
|
|
155
|
-
onMessage: (log) => {
|
|
156
|
-
const logEntry = makeLogEntryFromFastifyLog(log)
|
|
157
|
-
logEntry.issuer = 'DevServer'
|
|
158
|
-
|
|
159
|
-
// ignore for now
|
|
160
|
-
if (logEntry.type === 'debug') return
|
|
161
|
-
|
|
162
|
-
// error DevServer, warn DevServer
|
|
163
|
-
// biome-ignore lint/suspicious/noConsoleLog: <explanation>
|
|
164
|
-
console.log(
|
|
165
|
-
'[logger]',
|
|
166
|
-
logEntry.type === 'info' ? '' : logEntry.type,
|
|
167
|
-
logEntry.message
|
|
168
|
-
.map((m) => {
|
|
169
|
-
return `${m.msg}`
|
|
170
|
-
})
|
|
171
|
-
.join(', ')
|
|
172
|
-
)
|
|
173
|
-
// reporter.process(logEntry)
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
|
|
177
|
-
api: {
|
|
178
|
-
// getPlatforms: async () => Object.keys(compiler.workers),
|
|
179
|
-
getPlatforms: async () => ['ios'],
|
|
180
|
-
getAssets: async (platform) => {
|
|
181
|
-
console.log('get assets', platform)
|
|
182
|
-
return []
|
|
183
|
-
// return Object.entries(compiler.assetsCache[platform] ?? {}).map(([name, asset]) => ({
|
|
184
|
-
// name,
|
|
185
|
-
// size: asset.info.size,
|
|
186
|
-
// })),
|
|
187
|
-
},
|
|
188
|
-
getCompilationStats: async (platform) => {
|
|
189
|
-
return null
|
|
190
|
-
// return compiler.statsCache[platform] ?? null
|
|
191
|
-
},
|
|
192
|
-
},
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
await start()
|
|
198
|
-
|
|
199
|
-
return async () => {
|
|
200
|
-
await stop()
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function createHmrBody(body: HMRMessageBody): HMRMessageBody | null {
|
|
205
|
-
return body
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Represent Hot Module Replacement Update body.
|
|
210
|
-
*
|
|
211
|
-
* @internal
|
|
212
|
-
*/
|
|
213
|
-
export interface HMRMessageBody {
|
|
214
|
-
name: string
|
|
215
|
-
time: number
|
|
216
|
-
hash: string
|
|
217
|
-
warnings: any
|
|
218
|
-
errors: any
|
|
219
|
-
modules: Record<string, string>
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Represent Hot Module Replacement Update message.
|
|
224
|
-
*
|
|
225
|
-
* @internal
|
|
226
|
-
*/
|
|
227
|
-
export interface HMRMessage {
|
|
228
|
-
action: 'building' | 'built' | 'sync'
|
|
229
|
-
body: HMRMessageBody | null
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
function makeLogEntryFromFastifyLog(data: any): any {
|
|
233
|
-
const { level, time, pid, hostname, ...rest } = data
|
|
234
|
-
|
|
235
|
-
const levelToTypeMapping: Record<number, any> = {
|
|
236
|
-
10: 'debug',
|
|
237
|
-
20: 'debug',
|
|
238
|
-
30: 'info',
|
|
239
|
-
40: 'warn',
|
|
240
|
-
50: 'error',
|
|
241
|
-
60: 'error',
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
return {
|
|
245
|
-
type: levelToTypeMapping[level],
|
|
246
|
-
timestamp: time,
|
|
247
|
-
issuer: '',
|
|
248
|
-
message: [rest],
|
|
249
|
-
}
|
|
250
|
-
}
|
package/src/dev/types.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type HMRListener = (update: { file: string; contents: string }) => void
|