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.
- package/README.md +5 -0
- package/dist/application/cli-arguments.d.ts +37 -5
- package/dist/application/cli-arguments.js +57 -7
- package/dist/application/cli-arguments.js.map +1 -1
- package/dist/application/config.d.ts +58 -31
- package/dist/application/config.js +40 -16
- package/dist/application/config.js.map +1 -1
- package/dist/application/native-command.d.ts +35 -0
- package/dist/application/native-command.js +148 -0
- package/dist/application/native-command.js.map +1 -0
- package/dist/application/native-devices.d.ts +31 -0
- package/dist/application/native-devices.js +94 -0
- package/dist/application/native-devices.js.map +1 -0
- package/dist/application/native-doctor.d.ts +17 -0
- package/dist/application/native-doctor.js +79 -0
- package/dist/application/native-doctor.js.map +1 -0
- package/dist/application/native-simulator-settings.d.ts +24 -0
- package/dist/application/native-simulator-settings.js +55 -0
- package/dist/application/native-simulator-settings.js.map +1 -0
- package/dist/application/native-simulator.d.ts +19 -0
- package/dist/application/native-simulator.js +101 -0
- package/dist/application/native-simulator.js.map +1 -0
- package/dist/application/proxy.d.ts +5 -1
- package/dist/application/proxy.js +25 -4
- package/dist/application/proxy.js.map +1 -1
- package/dist/application/run-tests.js +1 -1
- package/dist/application/run-tests.js.map +1 -1
- package/dist/auth/client/native-session.js +4 -2
- package/dist/auth/client/native-session.js.map +1 -1
- package/dist/auth/client/oauth/use-google-login.js +2 -0
- package/dist/auth/client/oauth/use-google-login.js.map +1 -1
- package/dist/auth/server/cookie-utils.js +4 -3
- package/dist/auth/server/cookie-utils.js.map +1 -1
- package/dist/auth/server/device-info.js +8 -8
- package/dist/auth/server/device-info.js.map +1 -1
- package/dist/auth/server/oauth/google.js +11 -7
- package/dist/auth/server/oauth/google.js.map +1 -1
- package/dist/auth/server/session-manager.js +2 -2
- package/dist/auth/server/session-manager.js.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/run.js +13 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/client/client-channel.d.ts +3 -11
- package/dist/client/client-channel.js +11 -4
- package/dist/client/client-channel.js.map +1 -1
- package/dist/client/client-http.d.ts +2 -2
- package/dist/client/client-http.js.map +1 -1
- package/dist/client/client.d.ts +13 -13
- package/dist/client/client.js +24 -11
- package/dist/client/client.js.map +1 -1
- package/dist/client/context-manager.d.ts +1 -1
- package/dist/client/logger.d.ts +1 -0
- package/dist/client/logger.js +12 -15
- package/dist/client/logger.js.map +1 -1
- package/dist/ejson/adjust-types-from-json-value.d.ts +1 -1
- package/dist/ejson/adjust-types-from-json-value.js +4 -2
- package/dist/ejson/adjust-types-from-json-value.js.map +1 -1
- package/dist/ejson/base64.d.ts +1 -1
- package/dist/ejson/base64.js +1 -1
- package/dist/ejson/base64.js.map +1 -1
- package/dist/ejson/built-in-converters.d.ts +59 -1
- package/dist/ejson/built-in-converters.js +109 -125
- package/dist/ejson/built-in-converters.js.map +1 -1
- package/dist/ejson/clone.js +1 -1
- package/dist/ejson/clone.js.map +1 -1
- package/dist/ejson/custom-models.d.ts +10 -10
- package/dist/ejson/custom-models.js +22 -2
- package/dist/ejson/custom-models.js.map +1 -1
- package/dist/ejson/custom-types.d.ts +2 -1
- package/dist/ejson/custom-types.js.map +1 -1
- package/dist/ejson/equals.d.ts +4 -1
- package/dist/ejson/equals.js +6 -3
- package/dist/ejson/equals.js.map +1 -1
- package/dist/ejson/from-json-value.d.ts +1 -1
- package/dist/ejson/from-json-value.js +1 -1
- package/dist/ejson/from-json-value.js.map +1 -1
- package/dist/ejson/helpers/adjust-types-to-json-value.d.ts +1 -1
- package/dist/ejson/helpers/adjust-types-to-json-value.js +4 -2
- package/dist/ejson/helpers/adjust-types-to-json-value.js.map +1 -1
- package/dist/ejson/helpers/from-json-value-helper.d.ts +1 -1
- package/dist/ejson/helpers/from-json-value-helper.js +5 -3
- package/dist/ejson/helpers/from-json-value-helper.js.map +1 -1
- package/dist/ejson/helpers/to-json-value-helper.d.ts +1 -1
- package/dist/ejson/helpers/to-json-value-helper.js +3 -1
- package/dist/ejson/helpers/to-json-value-helper.js.map +1 -1
- package/dist/ejson/index.d.ts +14 -12
- package/dist/ejson/index.js +3 -3
- package/dist/ejson/index.js.map +1 -1
- package/dist/ejson/is-binary.d.ts +1 -1
- package/dist/ejson/is-binary.js +1 -1
- package/dist/ejson/is-binary.js.map +1 -1
- package/dist/ejson/parse.d.ts +1 -1
- package/dist/ejson/parse.js +1 -1
- package/dist/ejson/parse.js.map +1 -1
- package/dist/ejson/stable-stringify.d.ts +1 -6
- package/dist/ejson/stable-stringify.js +3 -1
- package/dist/ejson/stable-stringify.js.map +1 -1
- package/dist/ejson/to-json-value.d.ts +1 -1
- package/dist/ejson/to-json-value.js +1 -1
- package/dist/ejson/to-json-value.js.map +1 -1
- package/dist/ejson/utils.d.ts +15 -13
- package/dist/ejson/utils.js +39 -37
- package/dist/ejson/utils.js.map +1 -1
- package/dist/minimongo/NOTICE.md +30 -0
- package/dist/minimongo/README.md +329 -0
- package/dist/minimongo/components.d.ts +31 -0
- package/dist/minimongo/components.js +53 -0
- package/dist/minimongo/components.js.map +1 -0
- package/dist/minimongo/contracts.type-test.d.ts +1 -0
- package/dist/minimongo/contracts.type-test.js +21 -0
- package/dist/minimongo/contracts.type-test.js.map +1 -0
- package/dist/minimongo/cursor.d.ts +67 -0
- package/dist/minimongo/cursor.js +157 -0
- package/dist/minimongo/cursor.js.map +1 -0
- package/dist/minimongo/document-store.d.ts +31 -0
- package/dist/minimongo/document-store.js +48 -0
- package/dist/minimongo/document-store.js.map +1 -0
- package/dist/minimongo/errors.d.ts +14 -0
- package/dist/minimongo/errors.js +16 -0
- package/dist/minimongo/errors.js.map +1 -0
- package/dist/minimongo/events.d.ts +20 -0
- package/dist/minimongo/events.js +80 -0
- package/dist/minimongo/events.js.map +1 -0
- package/dist/minimongo/identity.d.ts +8 -0
- package/dist/minimongo/identity.js +15 -0
- package/dist/minimongo/identity.js.map +1 -0
- package/dist/minimongo/immutable.d.ts +6 -0
- package/dist/minimongo/immutable.js +17 -0
- package/dist/minimongo/immutable.js.map +1 -0
- package/dist/minimongo/index.d.ts +7 -0
- package/dist/minimongo/index.js +6 -0
- package/dist/minimongo/index.js.map +1 -0
- package/dist/minimongo/local-collection.d.ts +48 -0
- package/dist/minimongo/local-collection.js +129 -0
- package/dist/minimongo/local-collection.js.map +1 -0
- package/dist/minimongo/matcher.d.ts +27 -0
- package/dist/minimongo/matcher.js +457 -0
- package/dist/minimongo/matcher.js.map +1 -0
- package/dist/minimongo/modifier.d.ts +12 -0
- package/dist/minimongo/modifier.js +323 -0
- package/dist/minimongo/modifier.js.map +1 -0
- package/dist/minimongo/path.d.ts +17 -0
- package/dist/minimongo/path.js +126 -0
- package/dist/minimongo/path.js.map +1 -0
- package/dist/minimongo/projection.d.ts +5 -0
- package/dist/minimongo/projection.js +100 -0
- package/dist/minimongo/projection.js.map +1 -0
- package/dist/minimongo/sorter.d.ts +16 -0
- package/dist/minimongo/sorter.js +140 -0
- package/dist/minimongo/sorter.js.map +1 -0
- package/dist/minimongo/transform.d.ts +4 -0
- package/dist/minimongo/transform.js +30 -0
- package/dist/minimongo/transform.js.map +1 -0
- package/dist/minimongo/types.d.ts +169 -0
- package/dist/minimongo/types.js +2 -0
- package/dist/minimongo/types.js.map +1 -0
- package/dist/minimongo/value-semantics.d.ts +8 -0
- package/dist/minimongo/value-semantics.js +156 -0
- package/dist/minimongo/value-semantics.js.map +1 -0
- package/dist/mongodb/change-streams.js +14 -8
- package/dist/mongodb/change-streams.js.map +1 -1
- package/dist/mongodb/decorators/collection.js +4 -1
- package/dist/mongodb/decorators/collection.js.map +1 -1
- package/dist/mongodb/decorators/metadata.js +1 -1
- package/dist/mongodb/decorators/metadata.js.map +1 -1
- package/dist/mongodb/find-one-or-create.d.ts +2 -2
- package/dist/mongodb/find-one-or-create.js +1 -1
- package/dist/mongodb/find-one-or-create.js.map +1 -1
- package/dist/mongodb/live/engine.js.map +1 -1
- package/dist/mongodb/live/source.js +11 -5
- package/dist/mongodb/live/source.js.map +1 -1
- package/dist/mongodb/live/types.d.ts +1 -1
- package/dist/react/components/client-provider.d.ts +3 -2
- package/dist/react/components/client-provider.js +1 -1
- package/dist/react/components/client-provider.js.map +1 -1
- package/dist/react/contracts.type-test.d.ts +1 -0
- package/dist/react/contracts.type-test.js +21 -0
- package/dist/react/contracts.type-test.js.map +1 -0
- package/dist/react/hooks/use-auth.d.ts +5 -1
- package/dist/react/hooks/use-auth.js +4 -2
- package/dist/react/hooks/use-auth.js.map +1 -1
- package/dist/react/hooks/use-caller.d.ts +10 -5
- package/dist/react/hooks/use-caller.js +12 -8
- package/dist/react/hooks/use-caller.js.map +1 -1
- package/dist/react/hooks/use-channel.d.ts +1 -1
- package/dist/react/hooks/use-channel.js +1 -1
- package/dist/react/hooks/use-channel.js.map +1 -1
- package/dist/react/hooks/use-circuit-breaker.d.ts +14 -6
- package/dist/react/hooks/use-circuit-breaker.js +5 -2
- package/dist/react/hooks/use-circuit-breaker.js.map +1 -1
- package/dist/react/hooks/use-client.d.ts +1 -1
- package/dist/react/hooks/use-client.js +2 -0
- package/dist/react/hooks/use-client.js.map +1 -1
- package/dist/react/hooks/use-connection-state.d.ts +4 -4
- package/dist/react/hooks/use-connection-state.js +2 -0
- package/dist/react/hooks/use-connection-state.js.map +1 -1
- package/dist/react/hooks/use-deps-change.d.ts +1 -1
- package/dist/react/hooks/use-deps-change.js.map +1 -1
- package/dist/react/hooks/use-local-event.d.ts +2 -2
- package/dist/react/hooks/use-local-event.js +2 -2
- package/dist/react/hooks/use-local-event.js.map +1 -1
- package/dist/react/hooks/use-method-refresh.d.ts +24 -15
- package/dist/react/hooks/use-method-refresh.js +18 -22
- package/dist/react/hooks/use-method-refresh.js.map +1 -1
- package/dist/react/hooks/use-method.d.ts +12 -11
- package/dist/react/hooks/use-method.js +9 -5
- package/dist/react/hooks/use-method.js.map +1 -1
- package/dist/react/hooks/use-mongodb-live-publication.js +2 -0
- package/dist/react/hooks/use-mongodb-live-publication.js.map +1 -1
- package/dist/react/hooks/use-object.d.ts +2 -2
- package/dist/react/hooks/use-object.js.map +1 -1
- package/dist/react/hooks/use-subscribe.d.ts +1 -2
- package/dist/react/hooks/use-subscribe.js +11 -9
- package/dist/react/hooks/use-subscribe.js.map +1 -1
- package/dist/react/hooks/use-throttled-events.d.ts +1 -1
- package/dist/react/hooks/use-throttled-events.js +2 -0
- package/dist/react/hooks/use-throttled-events.js.map +1 -1
- package/dist/react/hooks/use-token-refresh.js +1 -1
- package/dist/react/hooks/use-token-refresh.js.map +1 -1
- package/dist/server/client-node.d.ts +17 -10
- package/dist/server/client-node.js +16 -13
- package/dist/server/client-node.js.map +1 -1
- package/dist/server/decorators/register.js +10 -6
- package/dist/server/decorators/register.js.map +1 -1
- package/dist/server/method.d.ts +1 -1
- package/dist/server/method.js +9 -6
- package/dist/server/method.js.map +1 -1
- package/dist/server/methods.js +2 -1
- package/dist/server/methods.js.map +1 -1
- package/dist/server/server-channel.d.ts +4 -2
- package/dist/server/server-channel.js +33 -20
- package/dist/server/server-channel.js.map +1 -1
- package/dist/server/server.d.ts +25 -12
- package/dist/server/server.js +18 -17
- package/dist/server/server.js.map +1 -1
- package/dist/server/transports/node-hono-transport.d.ts +4 -4
- package/dist/server/transports/node-hono-transport.js +66 -14
- package/dist/server/transports/node-hono-transport.js.map +1 -1
- package/dist/server/transports/redis-transport.d.ts +5 -4
- package/dist/server/transports/redis-transport.js +9 -4
- package/dist/server/transports/redis-transport.js.map +1 -1
- package/dist/server/transports/websocket-transport.d.ts +1 -1
- package/dist/server/transports/websocket-transport.js +6 -1
- package/dist/server/transports/websocket-transport.js.map +1 -1
- package/dist/server/transports/ws-shared.d.ts +2 -1
- package/dist/server/transports/ws-shared.js +4 -1
- package/dist/server/transports/ws-shared.js.map +1 -1
- package/dist/utils/errors.d.ts +1 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/event-emitter.d.ts +1 -1
- package/dist/utils/event-emitter.js.map +1 -1
- package/dist/utils/events.d.ts +4 -4
- package/dist/utils/events.js.map +1 -1
- package/dist/utils/helpers.d.ts +4 -4
- package/dist/utils/helpers.js +4 -3
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/intercept.d.ts +1 -2
- package/dist/utils/intercept.js.map +1 -1
- package/dist/utils/iterator.d.ts +6 -8
- package/dist/utils/iterator.js +3 -3
- package/dist/utils/iterator.js.map +1 -1
- package/dist/utils/presentation.d.ts +1 -1
- package/dist/utils/presentation.js +2 -0
- package/dist/utils/presentation.js.map +1 -1
- package/dist/utils/promise.d.ts +5 -5
- package/dist/utils/promise.js +2 -2
- package/dist/utils/promise.js.map +1 -1
- 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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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: '
|
|
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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"cli-arguments.js","sourceRoot":"","sources":["../../src/application/cli-arguments.ts"],"names":[],"mappings":"AAwBA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAkB;IAC7C,MAAM;IACN,aAAa;IACb,SAAS;CACV,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,SAAS,GACpB,+PAA+P,CAAA;AAEjQ,MAAM,UAAU,iBAAiB,CAAC,UAA6B;IAC7D,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAA;IAErC,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC3D,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QACvG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAA;QAChF,OAAO,EAAE,OAAO,EAAE,CAAA;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;QAC9D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,SAAS,EAAE,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACpD,CAAC;IAED,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAEvD,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA6B;IACvD,IAAI,OAAoC,CAAA;IACxC,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,MAAM,kBAAkB,GACtB,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC1E,MAAM,aAAa,GACjB,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAA;IAEnE,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,GAAG,IAAI,CAAA;YACZ,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAA2B,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,KAAK,SAAS,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAA;QACxE,CAAC;QACD,OAAO,GAAG,QAA2B,CAAA;IACvC,CAAC;IAED,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE;QAC3C,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;AACxD,CAAC;AAED,SAAS,oBAAoB,CAAC,UAA6B;IACzD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,UAAU,CAAA;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAA;IAExB,IAAI,MAAM,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IAChD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IACpC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IAE/I,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,MAA0B,CAAA;IAC9B,IAAI,MAA0B,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAA;QACtG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAChB,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAChD,QAAQ,GAAG,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YACzE,IAAI,GAAG,IAAI,CAAA;YACX,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,YAAY,CAAC,EAAE,CAAC;YAC1G,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;YACxC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,KAAK,SAAS,EAAE,CAAC,CAAA;YAC7H,IAAI,MAAM,KAAK,UAAU;gBAAE,MAAM,GAAG,KAAK,CAAA;;gBACpC,MAAM,GAAG,KAAK,CAAA;YACnB,KAAK,IAAI,CAAC,CAAA;YACV,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,KAAK,SAAS,EAAE,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;IACxD,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAA;IAChF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAClE,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/E,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IAC1H,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;AAClD,CAAC"}
|
|
@@ -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
|
-
|
|
10
|
-
|
|
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
|
|
32
|
-
serverBuild: z.function
|
|
33
|
-
test: z.function
|
|
34
|
-
afterBuild: z.function
|
|
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: {
|
|
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
|
-
|
|
159
|
-
|
|
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
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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
|
-
|
|
171
|
-
|
|
192
|
+
target: config.build?.target ?? DEFAULT_APPLICATION_CONFIG.build.target,
|
|
193
|
+
sourceMaps: config.build?.sourceMaps ?? DEFAULT_APPLICATION_CONFIG.build.sourceMaps,
|
|
172
194
|
server: {
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"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"}
|
|
@@ -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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"}
|