typeferry 0.11.0 → 0.13.0

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.
Files changed (269) hide show
  1. package/README.md +5 -0
  2. package/dist/application/cli-arguments.d.ts +37 -5
  3. package/dist/application/cli-arguments.js +57 -7
  4. package/dist/application/cli-arguments.js.map +1 -1
  5. package/dist/application/config.d.ts +58 -31
  6. package/dist/application/config.js +40 -16
  7. package/dist/application/config.js.map +1 -1
  8. package/dist/application/native-command.d.ts +35 -0
  9. package/dist/application/native-command.js +148 -0
  10. package/dist/application/native-command.js.map +1 -0
  11. package/dist/application/native-devices.d.ts +31 -0
  12. package/dist/application/native-devices.js +94 -0
  13. package/dist/application/native-devices.js.map +1 -0
  14. package/dist/application/native-doctor.d.ts +17 -0
  15. package/dist/application/native-doctor.js +79 -0
  16. package/dist/application/native-doctor.js.map +1 -0
  17. package/dist/application/native-simulator-settings.d.ts +24 -0
  18. package/dist/application/native-simulator-settings.js +55 -0
  19. package/dist/application/native-simulator-settings.js.map +1 -0
  20. package/dist/application/native-simulator.d.ts +19 -0
  21. package/dist/application/native-simulator.js +101 -0
  22. package/dist/application/native-simulator.js.map +1 -0
  23. package/dist/application/proxy.d.ts +5 -1
  24. package/dist/application/proxy.js +25 -4
  25. package/dist/application/proxy.js.map +1 -1
  26. package/dist/application/run-tests.js +1 -1
  27. package/dist/application/run-tests.js.map +1 -1
  28. package/dist/auth/client/native-session.js +4 -2
  29. package/dist/auth/client/native-session.js.map +1 -1
  30. package/dist/auth/client/oauth/use-google-login.js +2 -0
  31. package/dist/auth/client/oauth/use-google-login.js.map +1 -1
  32. package/dist/auth/server/cookie-utils.js +4 -3
  33. package/dist/auth/server/cookie-utils.js.map +1 -1
  34. package/dist/auth/server/device-info.js +8 -8
  35. package/dist/auth/server/device-info.js.map +1 -1
  36. package/dist/auth/server/oauth/google.js +11 -7
  37. package/dist/auth/server/oauth/google.js.map +1 -1
  38. package/dist/auth/server/session-manager.js +2 -2
  39. package/dist/auth/server/session-manager.js.map +1 -1
  40. package/dist/cli/index.js +5 -0
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/cli/run.js +13 -1
  43. package/dist/cli/run.js.map +1 -1
  44. package/dist/client/client-channel.d.ts +3 -11
  45. package/dist/client/client-channel.js +11 -4
  46. package/dist/client/client-channel.js.map +1 -1
  47. package/dist/client/client-http.d.ts +2 -2
  48. package/dist/client/client-http.js.map +1 -1
  49. package/dist/client/client.d.ts +13 -13
  50. package/dist/client/client.js +24 -11
  51. package/dist/client/client.js.map +1 -1
  52. package/dist/client/context-manager.d.ts +1 -1
  53. package/dist/client/logger.d.ts +1 -0
  54. package/dist/client/logger.js +12 -15
  55. package/dist/client/logger.js.map +1 -1
  56. package/dist/ejson/adjust-types-from-json-value.d.ts +1 -1
  57. package/dist/ejson/adjust-types-from-json-value.js +4 -2
  58. package/dist/ejson/adjust-types-from-json-value.js.map +1 -1
  59. package/dist/ejson/base64.d.ts +1 -1
  60. package/dist/ejson/base64.js +1 -1
  61. package/dist/ejson/base64.js.map +1 -1
  62. package/dist/ejson/built-in-converters.d.ts +59 -1
  63. package/dist/ejson/built-in-converters.js +109 -125
  64. package/dist/ejson/built-in-converters.js.map +1 -1
  65. package/dist/ejson/clone.js +1 -1
  66. package/dist/ejson/clone.js.map +1 -1
  67. package/dist/ejson/custom-models.d.ts +10 -10
  68. package/dist/ejson/custom-models.js +22 -2
  69. package/dist/ejson/custom-models.js.map +1 -1
  70. package/dist/ejson/custom-types.d.ts +2 -1
  71. package/dist/ejson/custom-types.js.map +1 -1
  72. package/dist/ejson/equals.d.ts +4 -1
  73. package/dist/ejson/equals.js +6 -3
  74. package/dist/ejson/equals.js.map +1 -1
  75. package/dist/ejson/from-json-value.d.ts +1 -1
  76. package/dist/ejson/from-json-value.js +1 -1
  77. package/dist/ejson/from-json-value.js.map +1 -1
  78. package/dist/ejson/helpers/adjust-types-to-json-value.d.ts +1 -1
  79. package/dist/ejson/helpers/adjust-types-to-json-value.js +4 -2
  80. package/dist/ejson/helpers/adjust-types-to-json-value.js.map +1 -1
  81. package/dist/ejson/helpers/from-json-value-helper.d.ts +1 -1
  82. package/dist/ejson/helpers/from-json-value-helper.js +5 -3
  83. package/dist/ejson/helpers/from-json-value-helper.js.map +1 -1
  84. package/dist/ejson/helpers/to-json-value-helper.d.ts +1 -1
  85. package/dist/ejson/helpers/to-json-value-helper.js +3 -1
  86. package/dist/ejson/helpers/to-json-value-helper.js.map +1 -1
  87. package/dist/ejson/index.d.ts +14 -12
  88. package/dist/ejson/index.js +3 -3
  89. package/dist/ejson/index.js.map +1 -1
  90. package/dist/ejson/is-binary.d.ts +1 -1
  91. package/dist/ejson/is-binary.js +1 -1
  92. package/dist/ejson/is-binary.js.map +1 -1
  93. package/dist/ejson/parse.d.ts +1 -1
  94. package/dist/ejson/parse.js +1 -1
  95. package/dist/ejson/parse.js.map +1 -1
  96. package/dist/ejson/stable-stringify.d.ts +1 -6
  97. package/dist/ejson/stable-stringify.js +3 -1
  98. package/dist/ejson/stable-stringify.js.map +1 -1
  99. package/dist/ejson/to-json-value.d.ts +1 -1
  100. package/dist/ejson/to-json-value.js +1 -1
  101. package/dist/ejson/to-json-value.js.map +1 -1
  102. package/dist/ejson/utils.d.ts +15 -13
  103. package/dist/ejson/utils.js +39 -37
  104. package/dist/ejson/utils.js.map +1 -1
  105. package/dist/minimongo/NOTICE.md +30 -0
  106. package/dist/minimongo/README.md +329 -0
  107. package/dist/minimongo/components.d.ts +31 -0
  108. package/dist/minimongo/components.js +53 -0
  109. package/dist/minimongo/components.js.map +1 -0
  110. package/dist/minimongo/contracts.type-test.d.ts +1 -0
  111. package/dist/minimongo/contracts.type-test.js +21 -0
  112. package/dist/minimongo/contracts.type-test.js.map +1 -0
  113. package/dist/minimongo/cursor.d.ts +67 -0
  114. package/dist/minimongo/cursor.js +157 -0
  115. package/dist/minimongo/cursor.js.map +1 -0
  116. package/dist/minimongo/document-store.d.ts +31 -0
  117. package/dist/minimongo/document-store.js +48 -0
  118. package/dist/minimongo/document-store.js.map +1 -0
  119. package/dist/minimongo/errors.d.ts +14 -0
  120. package/dist/minimongo/errors.js +16 -0
  121. package/dist/minimongo/errors.js.map +1 -0
  122. package/dist/minimongo/events.d.ts +20 -0
  123. package/dist/minimongo/events.js +80 -0
  124. package/dist/minimongo/events.js.map +1 -0
  125. package/dist/minimongo/identity.d.ts +8 -0
  126. package/dist/minimongo/identity.js +15 -0
  127. package/dist/minimongo/identity.js.map +1 -0
  128. package/dist/minimongo/immutable.d.ts +6 -0
  129. package/dist/minimongo/immutable.js +17 -0
  130. package/dist/minimongo/immutable.js.map +1 -0
  131. package/dist/minimongo/index.d.ts +7 -0
  132. package/dist/minimongo/index.js +6 -0
  133. package/dist/minimongo/index.js.map +1 -0
  134. package/dist/minimongo/local-collection.d.ts +48 -0
  135. package/dist/minimongo/local-collection.js +129 -0
  136. package/dist/minimongo/local-collection.js.map +1 -0
  137. package/dist/minimongo/matcher.d.ts +27 -0
  138. package/dist/minimongo/matcher.js +457 -0
  139. package/dist/minimongo/matcher.js.map +1 -0
  140. package/dist/minimongo/modifier.d.ts +12 -0
  141. package/dist/minimongo/modifier.js +323 -0
  142. package/dist/minimongo/modifier.js.map +1 -0
  143. package/dist/minimongo/path.d.ts +17 -0
  144. package/dist/minimongo/path.js +126 -0
  145. package/dist/minimongo/path.js.map +1 -0
  146. package/dist/minimongo/projection.d.ts +5 -0
  147. package/dist/minimongo/projection.js +100 -0
  148. package/dist/minimongo/projection.js.map +1 -0
  149. package/dist/minimongo/sorter.d.ts +16 -0
  150. package/dist/minimongo/sorter.js +140 -0
  151. package/dist/minimongo/sorter.js.map +1 -0
  152. package/dist/minimongo/transform.d.ts +4 -0
  153. package/dist/minimongo/transform.js +30 -0
  154. package/dist/minimongo/transform.js.map +1 -0
  155. package/dist/minimongo/types.d.ts +169 -0
  156. package/dist/minimongo/types.js +2 -0
  157. package/dist/minimongo/types.js.map +1 -0
  158. package/dist/minimongo/value-semantics.d.ts +8 -0
  159. package/dist/minimongo/value-semantics.js +156 -0
  160. package/dist/minimongo/value-semantics.js.map +1 -0
  161. package/dist/mongodb/change-streams.js +14 -8
  162. package/dist/mongodb/change-streams.js.map +1 -1
  163. package/dist/mongodb/decorators/collection.js +4 -1
  164. package/dist/mongodb/decorators/collection.js.map +1 -1
  165. package/dist/mongodb/decorators/metadata.js +1 -1
  166. package/dist/mongodb/decorators/metadata.js.map +1 -1
  167. package/dist/mongodb/find-one-or-create.d.ts +2 -2
  168. package/dist/mongodb/find-one-or-create.js +1 -1
  169. package/dist/mongodb/find-one-or-create.js.map +1 -1
  170. package/dist/mongodb/live/engine.js.map +1 -1
  171. package/dist/mongodb/live/source.js +11 -5
  172. package/dist/mongodb/live/source.js.map +1 -1
  173. package/dist/mongodb/live/types.d.ts +1 -1
  174. package/dist/react/components/client-provider.d.ts +3 -2
  175. package/dist/react/components/client-provider.js +1 -1
  176. package/dist/react/components/client-provider.js.map +1 -1
  177. package/dist/react/contracts.type-test.d.ts +1 -0
  178. package/dist/react/contracts.type-test.js +21 -0
  179. package/dist/react/contracts.type-test.js.map +1 -0
  180. package/dist/react/hooks/use-auth.d.ts +5 -1
  181. package/dist/react/hooks/use-auth.js +4 -2
  182. package/dist/react/hooks/use-auth.js.map +1 -1
  183. package/dist/react/hooks/use-caller.d.ts +10 -5
  184. package/dist/react/hooks/use-caller.js +12 -8
  185. package/dist/react/hooks/use-caller.js.map +1 -1
  186. package/dist/react/hooks/use-channel.d.ts +1 -1
  187. package/dist/react/hooks/use-channel.js +1 -1
  188. package/dist/react/hooks/use-channel.js.map +1 -1
  189. package/dist/react/hooks/use-circuit-breaker.d.ts +14 -6
  190. package/dist/react/hooks/use-circuit-breaker.js +5 -2
  191. package/dist/react/hooks/use-circuit-breaker.js.map +1 -1
  192. package/dist/react/hooks/use-client.d.ts +1 -1
  193. package/dist/react/hooks/use-client.js +2 -0
  194. package/dist/react/hooks/use-client.js.map +1 -1
  195. package/dist/react/hooks/use-connection-state.d.ts +4 -4
  196. package/dist/react/hooks/use-connection-state.js +2 -0
  197. package/dist/react/hooks/use-connection-state.js.map +1 -1
  198. package/dist/react/hooks/use-deps-change.d.ts +1 -1
  199. package/dist/react/hooks/use-deps-change.js.map +1 -1
  200. package/dist/react/hooks/use-local-event.d.ts +2 -2
  201. package/dist/react/hooks/use-local-event.js +2 -2
  202. package/dist/react/hooks/use-local-event.js.map +1 -1
  203. package/dist/react/hooks/use-method-refresh.d.ts +24 -15
  204. package/dist/react/hooks/use-method-refresh.js +18 -22
  205. package/dist/react/hooks/use-method-refresh.js.map +1 -1
  206. package/dist/react/hooks/use-method.d.ts +12 -11
  207. package/dist/react/hooks/use-method.js +9 -5
  208. package/dist/react/hooks/use-method.js.map +1 -1
  209. package/dist/react/hooks/use-mongodb-live-publication.js +2 -0
  210. package/dist/react/hooks/use-mongodb-live-publication.js.map +1 -1
  211. package/dist/react/hooks/use-object.d.ts +2 -2
  212. package/dist/react/hooks/use-object.js.map +1 -1
  213. package/dist/react/hooks/use-subscribe.d.ts +1 -2
  214. package/dist/react/hooks/use-subscribe.js +11 -9
  215. package/dist/react/hooks/use-subscribe.js.map +1 -1
  216. package/dist/react/hooks/use-throttled-events.d.ts +1 -1
  217. package/dist/react/hooks/use-throttled-events.js +2 -0
  218. package/dist/react/hooks/use-throttled-events.js.map +1 -1
  219. package/dist/react/hooks/use-token-refresh.js +1 -1
  220. package/dist/react/hooks/use-token-refresh.js.map +1 -1
  221. package/dist/server/client-node.d.ts +17 -10
  222. package/dist/server/client-node.js +16 -13
  223. package/dist/server/client-node.js.map +1 -1
  224. package/dist/server/decorators/register.js +10 -6
  225. package/dist/server/decorators/register.js.map +1 -1
  226. package/dist/server/method.d.ts +1 -1
  227. package/dist/server/method.js +9 -6
  228. package/dist/server/method.js.map +1 -1
  229. package/dist/server/methods.js +2 -1
  230. package/dist/server/methods.js.map +1 -1
  231. package/dist/server/server-channel.d.ts +4 -2
  232. package/dist/server/server-channel.js +33 -20
  233. package/dist/server/server-channel.js.map +1 -1
  234. package/dist/server/server.d.ts +25 -12
  235. package/dist/server/server.js +18 -17
  236. package/dist/server/server.js.map +1 -1
  237. package/dist/server/transports/node-hono-transport.d.ts +4 -4
  238. package/dist/server/transports/node-hono-transport.js +66 -14
  239. package/dist/server/transports/node-hono-transport.js.map +1 -1
  240. package/dist/server/transports/redis-transport.d.ts +5 -4
  241. package/dist/server/transports/redis-transport.js +9 -4
  242. package/dist/server/transports/redis-transport.js.map +1 -1
  243. package/dist/server/transports/websocket-transport.d.ts +1 -1
  244. package/dist/server/transports/websocket-transport.js +6 -1
  245. package/dist/server/transports/websocket-transport.js.map +1 -1
  246. package/dist/server/transports/ws-shared.d.ts +2 -1
  247. package/dist/server/transports/ws-shared.js +4 -1
  248. package/dist/server/transports/ws-shared.js.map +1 -1
  249. package/dist/utils/errors.d.ts +1 -1
  250. package/dist/utils/errors.js.map +1 -1
  251. package/dist/utils/event-emitter.d.ts +1 -1
  252. package/dist/utils/event-emitter.js.map +1 -1
  253. package/dist/utils/events.d.ts +4 -4
  254. package/dist/utils/events.js.map +1 -1
  255. package/dist/utils/helpers.d.ts +4 -4
  256. package/dist/utils/helpers.js +4 -3
  257. package/dist/utils/helpers.js.map +1 -1
  258. package/dist/utils/intercept.d.ts +1 -2
  259. package/dist/utils/intercept.js.map +1 -1
  260. package/dist/utils/iterator.d.ts +6 -8
  261. package/dist/utils/iterator.js +3 -3
  262. package/dist/utils/iterator.js.map +1 -1
  263. package/dist/utils/presentation.d.ts +1 -1
  264. package/dist/utils/presentation.js +2 -0
  265. package/dist/utils/presentation.js.map +1 -1
  266. package/dist/utils/promise.d.ts +5 -5
  267. package/dist/utils/promise.js +2 -2
  268. package/dist/utils/promise.js.map +1 -1
  269. package/package.json +9 -2
package/README.md CHANGED
@@ -29,6 +29,7 @@ commands, optional configuration, safety boundaries, and completion checks.
29
29
  | `typeferry/auth/server/oauth` | Server OAuth providers |
30
30
  | `typeferry/auth/client/oauth` | Client OAuth helpers |
31
31
  | `typeferry/ejson` | Extended JSON namespace |
32
+ | `typeferry/minimongo` | Immutable, event-driven local document collections |
32
33
  | `typeferry/mongodb` | Native-driver MongoDB extension |
33
34
  | `typeferry/mongodb/decorators` | MongoDB collection decorators |
34
35
  | `typeferry/config` | Optional typed application configuration |
@@ -135,6 +136,10 @@ Clients can call the method as `client.m.greeting.hello({ name: 'Ada' })` when p
135
136
 
136
137
  Run commands from `typeferry-ts/`:
137
138
 
139
+ The package and all of its tests share the strict compiler contract in
140
+ `tsconfig.json`; `tsconfig.build.json` only selects production inputs and emit
141
+ settings.
142
+
138
143
  ```sh
139
144
  npm ci
140
145
  npm run lint
@@ -1,12 +1,44 @@
1
1
  export type TestProjectName = 'unit' | 'integration' | 'browser';
2
- export type CliArguments = {
3
- readonly command: 'build';
4
- readonly target?: 'ios';
2
+ /**
3
+ * Native actions carry only the options supported by their command.
4
+ */
5
+ export type NativeCliArguments = {
6
+ readonly command: 'native';
7
+ readonly action: 'add' | 'sync' | 'open';
8
+ readonly target: 'ios';
9
+ } | {
10
+ readonly command: 'native';
11
+ readonly action: 'devices';
12
+ readonly target: 'ios';
13
+ readonly json: boolean;
14
+ } | {
15
+ readonly command: 'native';
16
+ readonly action: 'doctor';
17
+ readonly target: 'ios';
18
+ readonly json: boolean;
19
+ readonly device?: string;
5
20
  } | {
6
21
  readonly command: 'native';
7
- readonly action: 'sync' | 'add' | 'open';
22
+ readonly action: 'run';
8
23
  readonly target: 'ios';
24
+ readonly device?: string;
25
+ readonly headless: boolean;
9
26
  } | {
27
+ readonly command: 'native';
28
+ readonly action: 'logs';
29
+ readonly target: 'ios';
30
+ readonly device?: string;
31
+ } | {
32
+ readonly command: 'native';
33
+ readonly action: 'screenshot';
34
+ readonly target: 'ios';
35
+ readonly device?: string;
36
+ readonly output?: string;
37
+ };
38
+ export type CliArguments = {
39
+ readonly command: 'build';
40
+ readonly target?: 'ios';
41
+ } | NativeCliArguments | {
10
42
  readonly command: 'develop';
11
43
  readonly serverArguments: readonly string[];
12
44
  } | {
@@ -15,5 +47,5 @@ export type CliArguments = {
15
47
  readonly testArguments: readonly string[];
16
48
  readonly watch: boolean;
17
49
  };
18
- export declare const CLI_USAGE = "Usage: typeferry <develop [-- server-args...]|build [--target ios]|native <add|sync|open> ios|test [unit|integration|browser] [--watch] [-- vitest-args...]>";
50
+ export declare const CLI_USAGE = "Usage: typeferry <develop [-- server-args...]|build [--target ios]|native <add|sync|open|devices|doctor|run|logs|screenshot> ios [--device name-or-UDID] [--json] [--output path] [--headless]|test [unit|integration|browser] [--watch] [-- vitest-args...]>";
19
51
  export declare function parseCliArguments(arguments_: readonly string[]): CliArguments;
@@ -3,15 +3,11 @@ const TEST_PROJECTS = new Set([
3
3
  'integration',
4
4
  'browser',
5
5
  ]);
6
- export const CLI_USAGE = 'Usage: typeferry <develop [-- server-args...]|build [--target ios]|native <add|sync|open> ios|test [unit|integration|browser] [--watch] [-- vitest-args...]>';
6
+ export const CLI_USAGE = 'Usage: typeferry <develop [-- server-args...]|build [--target ios]|native <add|sync|open|devices|doctor|run|logs|screenshot> ios [--device name-or-UDID] [--json] [--output path] [--headless]|test [unit|integration|browser] [--watch] [-- vitest-args...]>';
7
7
  export function parseCliArguments(arguments_) {
8
8
  const [command, ...rest] = arguments_;
9
- if (command === 'native') {
10
- const [action, target] = rest;
11
- if (rest.length !== 2 || target !== 'ios' || !['add', 'sync', 'open'].includes(action ?? ''))
12
- throw new Error(CLI_USAGE);
13
- return { command, action: action, target };
14
- }
9
+ if (command === 'native')
10
+ return parseNativeArguments(rest);
15
11
  if (command === 'build') {
16
12
  if (rest.length === 2 && rest[0] === '--target' && rest[1] === 'ios')
17
13
  return { command, target: 'ios' };
@@ -54,4 +50,58 @@ function parseTestArguments(arguments_) {
54
50
  ? { command: 'test', testArguments, watch }
55
51
  : { command: 'test', project, testArguments, watch };
56
52
  }
53
+ function parseNativeArguments(arguments_) {
54
+ const [action, target, ...options] = arguments_;
55
+ const command = 'native';
56
+ if (target !== 'ios')
57
+ throw new Error(CLI_USAGE);
58
+ if (action === 'add' || action === 'sync' || action === 'open') {
59
+ if (options.length > 0)
60
+ throw new Error(CLI_USAGE);
61
+ return { command, action, target };
62
+ }
63
+ if (action !== 'devices' && action !== 'doctor' && action !== 'run' && action !== 'logs' && action !== 'screenshot')
64
+ throw new Error(CLI_USAGE);
65
+ let json = false;
66
+ let headless = false;
67
+ let device;
68
+ let output;
69
+ const seen = new Set();
70
+ for (let index = 0; index < options.length; index += 1) {
71
+ const option = options[index];
72
+ if (option === undefined || seen.has(option))
73
+ throw new Error(`Duplicate native option. ${CLI_USAGE}`);
74
+ seen.add(option);
75
+ if (option === '--headless' && action === 'run') {
76
+ headless = true;
77
+ continue;
78
+ }
79
+ if (option === '--json' && (action === 'devices' || action === 'doctor')) {
80
+ json = true;
81
+ continue;
82
+ }
83
+ if ((option === '--device' && action !== 'devices') || (option === '--output' && action === 'screenshot')) {
84
+ const value = options[index + 1]?.trim();
85
+ if (!value || value.startsWith('--') || value.includes('\0'))
86
+ throw new Error(`Expected a value for ${option}. ${CLI_USAGE}`);
87
+ if (option === '--device')
88
+ device = value;
89
+ else
90
+ output = value;
91
+ index += 1;
92
+ continue;
93
+ }
94
+ throw new Error(`Unknown native option: ${option}. ${CLI_USAGE}`);
95
+ }
96
+ const selection = device === undefined ? {} : { device };
97
+ if (action === 'run')
98
+ return { command, action, target, headless, ...selection };
99
+ if (action === 'devices')
100
+ return { command, action, target, json };
101
+ if (action === 'doctor')
102
+ return { command, action, target, json, ...selection };
103
+ if (action === 'screenshot')
104
+ return { command, action, target, ...selection, ...(output === undefined ? {} : { output }) };
105
+ return { command, action, target, ...selection };
106
+ }
57
107
  //# sourceMappingURL=cli-arguments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-arguments.js","sourceRoot":"","sources":["../../src/application/cli-arguments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-arguments.js","sourceRoot":"","sources":["../../src/application/cli-arguments.ts"],"names":[],"mappings":"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"}
@@ -6,73 +6,100 @@ export type ApplicationTestConfig = VitestConfig;
6
6
  export type ApplicationTestProjectConfiguration = TestProjectConfiguration;
7
7
  export interface DevelopmentProxyRoute {
8
8
  readonly pathPrefix: string;
9
- readonly preserveHostHeader?: boolean;
10
- readonly rewriteLocalhostCookies?: boolean;
9
+ /**
10
+ * Exact hostname allowlist; omitted routes match every development host.
11
+ */
12
+ readonly hostnames?: readonly string[] | undefined;
13
+ readonly preserveHostHeader?: boolean | undefined;
14
+ readonly rewriteLocalhostCookies?: boolean | undefined;
11
15
  }
12
16
  export interface ResolvedDevelopmentProxyRoute {
13
17
  readonly pathPrefix: string;
18
+ /**
19
+ * Exact hostname allowlist; omitted routes match every development host.
20
+ */
21
+ readonly hostnames?: readonly string[] | undefined;
14
22
  readonly preserveHostHeader: boolean;
15
23
  readonly rewriteLocalhostCookies: boolean;
16
24
  }
17
25
  export type ApplicationTarget = 'web' | 'ios';
26
+ /**
27
+ * Optional Xcode build selection. Paths resolve from the application root;
28
+ * select either a project or a workspace, never both.
29
+ */
30
+ export interface IosXcodeConfig {
31
+ readonly project?: string | undefined;
32
+ readonly workspace?: string | undefined;
33
+ readonly scheme?: string | undefined;
34
+ readonly configuration?: string | undefined;
35
+ readonly derivedDataPath?: string | undefined;
36
+ }
37
+ /**
38
+ * Default simulator selection, overridden by the CLI's explicit device.
39
+ */
40
+ export interface IosSimulatorConfig {
41
+ readonly device?: string | undefined;
42
+ }
18
43
  export interface IosApplicationTarget {
19
44
  readonly runtime: 'capacitor';
45
+ readonly xcode?: IosXcodeConfig | undefined;
46
+ readonly simulator?: IosSimulatorConfig | undefined;
20
47
  readonly backend: {
21
48
  readonly origin: string;
22
49
  };
23
50
  readonly permissions?: {
24
51
  readonly camera?: {
25
52
  readonly purpose: string;
26
- };
53
+ } | undefined;
27
54
  readonly microphone?: {
28
55
  readonly purpose: string;
29
- };
30
- };
56
+ } | undefined;
57
+ } | undefined;
31
58
  }
32
59
  export interface ApplicationIdentity {
33
60
  readonly id: string;
34
61
  readonly name: string;
35
62
  }
36
63
  export interface ApplicationToolingExtensions {
37
- readonly vite?: (config: InlineConfig, context: {
64
+ readonly vite?: ((config: InlineConfig, context: {
38
65
  readonly command: "develop" | "build";
39
66
  readonly target: ApplicationTarget;
40
- }) => InlineConfig;
41
- readonly serverBuild?: (options: BuildOptions) => BuildOptions;
42
- readonly test?: (config: VitestConfig) => VitestConfig;
43
- readonly afterBuild?: (context: {
67
+ }) => InlineConfig) | undefined;
68
+ readonly serverBuild?: ((options: BuildOptions) => BuildOptions) | undefined;
69
+ readonly test?: ((config: VitestConfig) => VitestConfig) | undefined;
70
+ readonly afterBuild?: ((context: {
44
71
  readonly target: ApplicationTarget;
45
- }) => void | Promise<void>;
72
+ }) => void | Promise<void>) | undefined;
46
73
  }
47
74
  export interface TypeFerryConfig {
48
- readonly application?: ApplicationIdentity;
75
+ readonly application?: ApplicationIdentity | undefined;
49
76
  readonly client?: {
50
77
  readonly targets?: {
51
- readonly ios?: IosApplicationTarget;
52
- };
53
- };
54
- readonly extensions?: ApplicationToolingExtensions;
78
+ readonly ios?: IosApplicationTarget | undefined;
79
+ } | undefined;
80
+ } | undefined;
81
+ readonly extensions?: ApplicationToolingExtensions | undefined;
55
82
  readonly development?: {
56
- readonly clientPort?: number;
57
- readonly serverPort?: number;
58
- readonly serverEnvironmentFile?: string;
59
- readonly proxyRoutes?: readonly DevelopmentProxyRoute[];
60
- };
83
+ readonly clientPort?: number | undefined;
84
+ readonly serverPort?: number | undefined;
85
+ readonly serverEnvironmentFile?: string | undefined;
86
+ readonly proxyRoutes?: readonly DevelopmentProxyRoute[] | undefined;
87
+ } | undefined;
61
88
  readonly build?: {
62
- readonly target?: string;
63
- readonly sourceMaps?: boolean;
89
+ readonly target?: string | undefined;
90
+ readonly sourceMaps?: boolean | undefined;
64
91
  readonly server?: {
65
- readonly external?: readonly string[];
66
- };
67
- };
92
+ readonly external?: readonly string[] | undefined;
93
+ } | undefined;
94
+ } | undefined;
68
95
  readonly test?: {
69
96
  readonly integration?: {
70
- readonly timeout?: number;
71
- };
97
+ readonly timeout?: number | undefined;
98
+ } | undefined;
72
99
  readonly browser?: {
73
- readonly browser?: BrowserName;
74
- };
75
- };
100
+ readonly browser?: BrowserName | undefined;
101
+ } | undefined;
102
+ } | undefined;
76
103
  }
77
104
  export interface ResolvedApplicationConfig {
78
105
  readonly application?: ApplicationIdentity;
@@ -22,16 +22,18 @@ const proxyPathPrefixSchema = z.string().regex(/^\/(?!$)[^?#]*[^/]$/u, {
22
22
  const proxyRouteSchema = z
23
23
  .object({
24
24
  pathPrefix: proxyPathPrefixSchema,
25
+ hostnames: z.array(z.string().regex(/^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$/iu))
26
+ .min(1).optional(),
25
27
  preserveHostHeader: z.boolean().optional(),
26
28
  rewriteLocalhostCookies: z.boolean().optional(),
27
29
  })
28
30
  .strict();
29
31
  const extensionsSchema = z
30
32
  .object({
31
- vite: z.function().optional(),
32
- serverBuild: z.function().optional(),
33
- test: z.function().optional(),
34
- afterBuild: z.function().optional(),
33
+ vite: z.custom(value => typeof value === 'function').optional(),
34
+ serverBuild: z.custom(value => typeof value === 'function').optional(),
35
+ test: z.custom(value => typeof value === 'function').optional(),
36
+ afterBuild: z.custom(value => typeof value === 'function').optional(),
35
37
  })
36
38
  .strict();
37
39
  const httpsOriginSchema = z.string().refine(value => {
@@ -44,6 +46,15 @@ const httpsOriginSchema = z.string().refine(value => {
44
46
  }
45
47
  }, 'Expected an HTTPS origin without credentials, path, query or fragment');
46
48
  const permissionSchema = z.object({ purpose: z.string().trim().min(1) }).strict();
49
+ const nativeOptionStringSchema = z.string().trim().min(1).refine(value => !value.includes('\0'), 'Native configuration values must not contain null bytes');
50
+ const iosXcodeSchema = z.object({
51
+ project: nativeOptionStringSchema.refine(value => value.endsWith('.xcodeproj'), 'Expected an .xcodeproj path').optional(),
52
+ workspace: nativeOptionStringSchema.refine(value => value.endsWith('.xcworkspace'), 'Expected an .xcworkspace path').optional(),
53
+ scheme: nativeOptionStringSchema.optional(),
54
+ configuration: nativeOptionStringSchema.optional(),
55
+ derivedDataPath: nativeOptionStringSchema.optional(),
56
+ }).strict().refine(value => value.project === undefined || value.workspace === undefined, 'Select either an Xcode project or workspace, not both');
57
+ const iosSimulatorSchema = z.object({ device: nativeOptionStringSchema.optional() }).strict();
47
58
  const configSchema = z
48
59
  .object({
49
60
  application: z.object({
@@ -52,6 +63,8 @@ const configSchema = z
52
63
  }).strict().optional(),
53
64
  client: z.object({ targets: z.object({ ios: z.object({
54
65
  runtime: z.literal('capacitor'),
66
+ xcode: iosXcodeSchema.optional(),
67
+ simulator: iosSimulatorSchema.optional(),
55
68
  backend: z.object({ origin: httpsOriginSchema }).strict(),
56
69
  permissions: z.object({ camera: permissionSchema.optional(), microphone: permissionSchema.optional() }).strict().optional(),
57
70
  }).strict().optional() }).strict().optional() }).strict().optional(),
@@ -152,36 +165,47 @@ export function resolveApplicationConfig(root, input = {}) {
152
165
  return {
153
166
  root: path.resolve(root),
154
167
  ...(config.application ? { application: config.application } : {}),
155
- client: { targets: config.client?.targets ?? {} },
168
+ client: {
169
+ targets: config.client?.targets?.ios
170
+ ? { ios: config.client.targets.ios }
171
+ : {},
172
+ },
156
173
  paths: DEFAULT_APPLICATION_CONFIG.paths,
157
174
  development: {
158
- ...DEFAULT_APPLICATION_CONFIG.development,
159
- ...config.development,
175
+ clientPort: config.development?.clientPort ??
176
+ DEFAULT_APPLICATION_CONFIG.development.clientPort,
177
+ serverPort: config.development?.serverPort ??
178
+ DEFAULT_APPLICATION_CONFIG.development.serverPort,
179
+ serverEnvironmentFile: config.development?.serverEnvironmentFile ??
180
+ DEFAULT_APPLICATION_CONFIG.development.serverEnvironmentFile,
160
181
  proxyRoutes: [
161
182
  ...DEFAULT_APPLICATION_CONFIG.development.proxyRoutes,
162
183
  ...(config.development?.proxyRoutes ?? []).map((route) => ({
163
- preserveHostHeader: false,
164
- rewriteLocalhostCookies: false,
165
- ...route,
184
+ pathPrefix: route.pathPrefix,
185
+ ...(route.hostnames ? { hostnames: route.hostnames.map(host => host.toLowerCase()) } : {}),
186
+ preserveHostHeader: route.preserveHostHeader ?? false,
187
+ rewriteLocalhostCookies: route.rewriteLocalhostCookies ?? false,
166
188
  })),
167
189
  ],
168
190
  },
169
191
  build: {
170
- ...DEFAULT_APPLICATION_CONFIG.build,
171
- ...config.build,
192
+ target: config.build?.target ?? DEFAULT_APPLICATION_CONFIG.build.target,
193
+ sourceMaps: config.build?.sourceMaps ?? DEFAULT_APPLICATION_CONFIG.build.sourceMaps,
172
194
  server: {
173
- ...DEFAULT_APPLICATION_CONFIG.build.server,
174
- ...config.build?.server,
195
+ external: config.build?.server?.external ??
196
+ DEFAULT_APPLICATION_CONFIG.build.server.external,
175
197
  },
176
198
  },
177
199
  test: {
178
200
  integration: {
179
201
  ...DEFAULT_APPLICATION_CONFIG.test.integration,
180
- ...config.test?.integration,
202
+ timeout: config.test?.integration?.timeout ??
203
+ DEFAULT_APPLICATION_CONFIG.test.integration.timeout,
181
204
  },
182
205
  browser: {
183
206
  ...DEFAULT_APPLICATION_CONFIG.test.browser,
184
- ...config.test?.browser,
207
+ browser: config.test?.browser?.browser ??
208
+ DEFAULT_APPLICATION_CONFIG.test.browser.browser,
185
209
  },
186
210
  },
187
211
  extensions: config.extensions ?? {},
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/application/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/application/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAOlC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuIxB,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpE,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/D,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AACH,MAAM,oBAAoB,GAAG,CAAC;KAC3B,KAAK,CACJ,CAAC;KACE,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CACnE;KACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE;IAC1D,OAAO,EAAE,gEAAgE;CAC1E,CAAC,CAAC;AACL,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,EAAE;IACrE,KAAK,EACH,iFAAiF;CACpF,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,UAAU,EAAE,qBAAqB;IACjC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpB,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1C,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,CACZ,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CACrC,CAAC,QAAQ,EAAE;IACZ,WAAW,EAAE,CAAC,CAAC,MAAM,CACnB,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CACrC,CAAC,QAAQ,EAAE;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,CACZ,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CACrC,CAAC,QAAQ,EAAE;IACZ,UAAU,EAAE,CAAC,CAAC,MAAM,CAClB,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CACrC,CAAC,QAAQ,EAAE;CACb,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC,EAAE,uEAAuE,CAAC,CAAC;AAC5E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAClF,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAC9D,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC9B,yDAAyD,CAC1D,CAAC;AACF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,6BAA6B,CAAC,CAAC,QAAQ,EAAE;IACzH,SAAS,EAAE,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,+BAA+B,CAAC,CAAC,QAAQ,EAAE;IAC/H,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IAC3C,aAAa,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IAClD,eAAe,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,uDAAuD,CAAC,CAAC;AACnJ,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9F,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oDAAoD,CAAC;QAC1E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC/B,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;gBAChC,SAAS,EAAE,kBAAkB,CAAC,QAAQ,EAAE;gBACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;gBACzD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5H,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpE,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,UAAU,EAAE,kBAAkB,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,kBAAkB,CAAC,QAAQ,EAAE;QACzC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACnD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;KAClD,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACpC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC;aACN,MAAM,CAAC,EAAE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrD,MAAM,EAAE;aACR,QAAQ,EAAE;KACd,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,WAAW,EAAE,CAAC;aACX,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;aAC3D,MAAM,EAAE;aACR,QAAQ,EAAE;QACb,OAAO,EAAE,CAAC;aACP,MAAM,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC;aACjD,MAAM,EAAE;aACR,QAAQ,EAAE;KACd,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IACvB,KAAK,EAAE;QACL,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf;IACD,WAAW,EAAE;QACX,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;QAChB,qBAAqB,EAAE,aAAa;QACpC,WAAW,EAAE;YACX;gBACE,UAAU,EAAE,cAAc;gBAC1B,kBAAkB,EAAE,IAAI;gBACxB,uBAAuB,EAAE,KAAK;aAC/B;YACD;gBACE,UAAU,EAAE,MAAM;gBAClB,kBAAkB,EAAE,IAAI;gBACxB,uBAAuB,EAAE,KAAK;aAC/B;YACD;gBACE,UAAU,EAAE,QAAQ;gBACpB,kBAAkB,EAAE,IAAI;gBACxB,uBAAuB,EAAE,KAAK;aAC/B;YACD;gBACE,UAAU,EAAE,MAAM;gBAClB,kBAAkB,EAAE,IAAI;gBACxB,uBAAuB,EAAE,IAAI;aAC9B;SACF;KACF;IACD,KAAK,EAAE;QACL,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE;YACN,QAAQ,EAAE,EAAuB;SAClC;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAChC,OAAO,EAAE,EAAE,OAAO,EAAE,UAAyB,EAAE;KAChD;IACD,UAAU,EAAE,EAAE;CACN,CAAC;AAEX,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAY,EACZ,QAAiB,EAAE;IAEnB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;gBAClC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpC,CAAC,CAAC,EAAE;SACP;QACD,KAAK,EAAE,0BAA0B,CAAC,KAAK;QACvC,WAAW,EAAE;YACX,UAAU,EACR,MAAM,CAAC,WAAW,EAAE,UAAU;gBAC9B,0BAA0B,CAAC,WAAW,CAAC,UAAU;YACnD,UAAU,EACR,MAAM,CAAC,WAAW,EAAE,UAAU;gBAC9B,0BAA0B,CAAC,WAAW,CAAC,UAAU;YACnD,qBAAqB,EACnB,MAAM,CAAC,WAAW,EAAE,qBAAqB;gBACzC,0BAA0B,CAAC,WAAW,CAAC,qBAAqB;YAC9D,WAAW,EAAE;gBACX,GAAG,0BAA0B,CAAC,WAAW,CAAC,WAAW;gBACrD,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACzD,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1F,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK;oBACrD,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,IAAI,KAAK;iBAChE,CAAC,CAAC;aACJ;SACF;QACD,KAAK,EAAE;YACL,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,0BAA0B,CAAC,KAAK,CAAC,MAAM;YACvE,UAAU,EACR,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,0BAA0B,CAAC,KAAK,CAAC,UAAU;YACzE,MAAM,EAAE;gBACN,QAAQ,EACN,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ;oBAC9B,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;aACnD;SACF;QACD,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,GAAG,0BAA0B,CAAC,IAAI,CAAC,WAAW;gBAC9C,OAAO,EACL,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO;oBACjC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO;aACtD;YACD,OAAO,EAAE;gBACP,GAAG,0BAA0B,CAAC,IAAI,CAAC,OAAO;gBAC1C,OAAO,EACL,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO;oBAC7B,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;aAClD;SACF;QACD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY;IAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACvC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;QACpB,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,MAAM,GAAY,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,kCAAkC,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,MAAiC;IAEjC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CACjD,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,SAAS;YAAE,SAAS;QAEjE,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,oBAAoB,QAAQ,yDAAyD,CACtF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CACb,oBAAoB,QAAQ,iDAAiD,CAC9E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,QAAQ,CAAC,MAAM,IAAI,CAAC;YACpB,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAChC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CACnD,CACF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB;IACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAC9B,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;QACjC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAuB;IAClD,IACE,MAAM,CAAC,WAAW,EAAE,qBAAqB,KAAK,SAAS;QACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAC7C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;SACvD;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { Readable, Writable } from 'node:stream';
2
+ export interface NativeCommandOptions {
3
+ readonly cwd?: string;
4
+ readonly timeoutMs?: number;
5
+ readonly stream?: boolean;
6
+ readonly signal?: AbortSignal;
7
+ }
8
+ export interface NativeCommandOutput {
9
+ readonly stdout: string;
10
+ readonly stderr: string;
11
+ }
12
+ export type NativeCommandRunner = (executable: string, arguments_: readonly string[], options?: NativeCommandOptions) => Promise<NativeCommandOutput>;
13
+ /**
14
+ * Allows the CLI to preserve conventional cancellation exit codes without
15
+ * reporting an interrupted log stream as a configuration failure.
16
+ */
17
+ export declare class NativeCommandInterruptedError extends Error {
18
+ readonly exitCode: number;
19
+ constructor(signal: NodeJS.Signals);
20
+ }
21
+ /**
22
+ * Couples one child output channel to its destination without accumulating an
23
+ * unbounded writable queue. Disposal drains remaining child output so a paused
24
+ * pipe cannot prevent cancellation from reaching the child's close event.
25
+ */
26
+ export declare function createNativeOutputWriter(source: Readable, destination: Writable): {
27
+ write(chunk: string): void;
28
+ dispose(): void;
29
+ };
30
+ /**
31
+ * Executes argument arrays directly. Long-running commands stream output while
32
+ * retaining only a bounded diagnostic tail; structured queries have a hard cap.
33
+ * Interruptions and timeouts terminate the child process group on Unix systems.
34
+ */
35
+ export declare const executeNativeCommand: NativeCommandRunner;
@@ -0,0 +1,148 @@
1
+ import { spawn } from 'node:child_process';
2
+ const CAPTURE_LIMIT = 8 * 1024 * 1024;
3
+ const DIAGNOSTIC_LIMIT = 16 * 1024;
4
+ const QUERY_TIMEOUT_MS = 120_000;
5
+ /**
6
+ * Allows the CLI to preserve conventional cancellation exit codes without
7
+ * reporting an interrupted log stream as a configuration failure.
8
+ */
9
+ export class NativeCommandInterruptedError extends Error {
10
+ exitCode;
11
+ constructor(signal) {
12
+ super(`Native command interrupted by ${signal}`);
13
+ this.exitCode = signal === 'SIGINT' ? 130 : 143;
14
+ }
15
+ }
16
+ /**
17
+ * Couples one child output channel to its destination without accumulating an
18
+ * unbounded writable queue. Disposal drains remaining child output so a paused
19
+ * pipe cannot prevent cancellation from reaching the child's close event.
20
+ */
21
+ export function createNativeOutputWriter(source, destination) {
22
+ let disposed = false;
23
+ const resume = () => { source.resume(); };
24
+ return {
25
+ write(chunk) {
26
+ if (disposed)
27
+ return;
28
+ if (!destination.write(chunk)) {
29
+ source.pause();
30
+ destination.once('drain', resume);
31
+ }
32
+ },
33
+ dispose() {
34
+ disposed = true;
35
+ destination.removeListener('drain', resume);
36
+ source.resume();
37
+ },
38
+ };
39
+ }
40
+ /**
41
+ * Executes argument arrays directly. Long-running commands stream output while
42
+ * retaining only a bounded diagnostic tail; structured queries have a hard cap.
43
+ * Interruptions and timeouts terminate the child process group on Unix systems.
44
+ */
45
+ export const executeNativeCommand = (executable, arguments_, options = {}) => {
46
+ if (options.signal?.aborted)
47
+ return Promise.reject(new NativeCommandInterruptedError('SIGINT'));
48
+ return new Promise((resolve, reject) => {
49
+ const child = spawn(executable, [...arguments_], {
50
+ cwd: options.cwd,
51
+ shell: false,
52
+ detached: process.platform !== 'win32',
53
+ stdio: ['ignore', 'pipe', 'pipe'],
54
+ });
55
+ const writers = {
56
+ stdout: createNativeOutputWriter(child.stdout, process.stdout),
57
+ stderr: createNativeOutputWriter(child.stderr, process.stderr),
58
+ };
59
+ const disposeOutput = () => {
60
+ writers.stdout.dispose();
61
+ writers.stderr.dispose();
62
+ };
63
+ let stdout = '';
64
+ let stderr = '';
65
+ let bytes = 0;
66
+ let failure;
67
+ let killTimer;
68
+ let timeout;
69
+ const kill = (signal) => {
70
+ if (!child.pid)
71
+ return;
72
+ try {
73
+ if (process.platform === 'win32')
74
+ child.kill(signal);
75
+ else
76
+ process.kill(-child.pid, signal);
77
+ }
78
+ catch {
79
+ // The process may have exited between cancellation and signal delivery.
80
+ }
81
+ };
82
+ const stop = (error, signal = 'SIGTERM') => {
83
+ if (failure)
84
+ return;
85
+ failure = error;
86
+ disposeOutput();
87
+ kill(signal);
88
+ killTimer = setTimeout(() => kill('SIGKILL'), 2_000);
89
+ killTimer.unref();
90
+ };
91
+ const onInterrupt = () => stop(new NativeCommandInterruptedError('SIGINT'), 'SIGINT');
92
+ const onTerminate = () => stop(new NativeCommandInterruptedError('SIGTERM'));
93
+ const cleanup = () => {
94
+ disposeOutput();
95
+ clearTimeout(timeout);
96
+ clearTimeout(killTimer);
97
+ process.removeListener('SIGINT', onInterrupt);
98
+ process.removeListener('SIGTERM', onTerminate);
99
+ options.signal?.removeEventListener('abort', onInterrupt);
100
+ };
101
+ const consume = (channel, chunk) => {
102
+ if (failure)
103
+ return;
104
+ if (options.stream)
105
+ writers[channel].write(chunk);
106
+ else {
107
+ bytes += Buffer.byteLength(chunk);
108
+ if (bytes > CAPTURE_LIMIT) {
109
+ stop(new Error(`${executable} output exceeded ${CAPTURE_LIMIT} bytes`));
110
+ return;
111
+ }
112
+ }
113
+ const limit = options.stream ? DIAGNOSTIC_LIMIT : CAPTURE_LIMIT;
114
+ if (channel === 'stdout')
115
+ stdout = (stdout + chunk).slice(-limit);
116
+ else
117
+ stderr = (stderr + chunk).slice(-limit);
118
+ };
119
+ child.stdout.setEncoding('utf8');
120
+ child.stderr.setEncoding('utf8');
121
+ child.stdout.on('data', (chunk) => consume('stdout', chunk));
122
+ child.stderr.on('data', (chunk) => consume('stderr', chunk));
123
+ process.on('SIGINT', onInterrupt);
124
+ process.on('SIGTERM', onTerminate);
125
+ options.signal?.addEventListener('abort', onInterrupt, { once: true });
126
+ const timeoutMs = options.timeoutMs ?? (options.stream ? undefined : QUERY_TIMEOUT_MS);
127
+ if (timeoutMs !== undefined) {
128
+ timeout = setTimeout(() => stop(new Error(`${executable} timed out after ${timeoutMs}ms`)), timeoutMs);
129
+ timeout.unref();
130
+ }
131
+ child.once('error', error => {
132
+ cleanup();
133
+ reject(new Error(`Unable to execute ${executable}: ${error.message}`, { cause: error }));
134
+ });
135
+ child.once('close', (code, signal) => {
136
+ cleanup();
137
+ if (failure)
138
+ reject(failure);
139
+ else if (signal)
140
+ reject(new NativeCommandInterruptedError(signal));
141
+ else if (code !== 0)
142
+ reject(new Error(`${executable} failed with exit code ${code}:\n${(stderr || stdout).slice(-DIAGNOSTIC_LIMIT).trim()}`));
143
+ else
144
+ resolve({ stdout, stderr });
145
+ });
146
+ });
147
+ };
148
+ //# sourceMappingURL=native-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-command.js","sourceRoot":"","sources":["../../src/application/native-command.ts"],"names":[],"mappings":"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"}