@ramarivera/chofi 0.1.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 (52) hide show
  1. package/README.md +257 -0
  2. package/dist/cli.d.ts +18 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +1326 -0
  5. package/dist/config.d.ts +10 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +20 -0
  8. package/dist/discovery.d.ts +44 -0
  9. package/dist/discovery.d.ts.map +1 -0
  10. package/dist/discovery.js +151 -0
  11. package/dist/drivers/apple.d.ts +68 -0
  12. package/dist/drivers/apple.d.ts.map +1 -0
  13. package/dist/drivers/apple.js +360 -0
  14. package/dist/drivers/expo.d.ts +14 -0
  15. package/dist/drivers/expo.d.ts.map +1 -0
  16. package/dist/drivers/expo.js +42 -0
  17. package/dist/drivers/idb.d.ts +38 -0
  18. package/dist/drivers/idb.d.ts.map +1 -0
  19. package/dist/drivers/idb.js +52 -0
  20. package/dist/drivers/maestro.d.ts +37 -0
  21. package/dist/drivers/maestro.d.ts.map +1 -0
  22. package/dist/drivers/maestro.js +64 -0
  23. package/dist/drivers/types.d.ts +23 -0
  24. package/dist/drivers/types.d.ts.map +1 -0
  25. package/dist/drivers/types.js +1 -0
  26. package/dist/errors.d.ts +31 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +59 -0
  29. package/dist/events.d.ts +33 -0
  30. package/dist/events.d.ts.map +1 -0
  31. package/dist/events.js +26 -0
  32. package/dist/executor.d.ts +11 -0
  33. package/dist/executor.d.ts.map +1 -0
  34. package/dist/executor.js +17 -0
  35. package/dist/index.d.ts +14 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +13 -0
  38. package/dist/planning.d.ts +18 -0
  39. package/dist/planning.d.ts.map +1 -0
  40. package/dist/planning.js +75 -0
  41. package/dist/runtime.d.ts +157 -0
  42. package/dist/runtime.d.ts.map +1 -0
  43. package/dist/runtime.js +650 -0
  44. package/dist/safety.d.ts +8 -0
  45. package/dist/safety.d.ts.map +1 -0
  46. package/dist/safety.js +84 -0
  47. package/dist/spawn.d.ts +30 -0
  48. package/dist/spawn.d.ts.map +1 -0
  49. package/dist/spawn.js +178 -0
  50. package/dist/tsconfig.tsbuildinfo +1 -0
  51. package/package.json +64 -0
  52. package/sophy.png +0 -0
@@ -0,0 +1,157 @@
1
+ import type { ProcessSpawner } from "./spawn.js";
2
+ import { AppleDriver } from "./drivers/apple.js";
3
+ import { MaestroDriver } from "./drivers/maestro.js";
4
+ import { ExpoDriver } from "./drivers/expo.js";
5
+ import { IdbDriver } from "./drivers/idb.js";
6
+ import type { SimDevice } from "./drivers/types.js";
7
+ import type { PhysicalDevice, SimRuntime, RunningApp, DeviceType } from "./drivers/apple.js";
8
+ export interface RuntimeOptions {
9
+ readonly spawner?: ProcessSpawner | undefined;
10
+ }
11
+ export interface BuildPhase {
12
+ readonly phase: string;
13
+ readonly target?: string | undefined;
14
+ readonly file?: string | undefined;
15
+ }
16
+ export interface TestResult {
17
+ readonly testName: string;
18
+ readonly passed: boolean;
19
+ readonly durationMs?: number | undefined;
20
+ readonly failureMessage?: string | undefined;
21
+ }
22
+ export interface TestProgress {
23
+ readonly testName?: string | undefined;
24
+ readonly status: "started" | "passed" | "failed" | "suite-started" | "suite-finished";
25
+ readonly durationMs?: number | undefined;
26
+ readonly failureMessage?: string | undefined;
27
+ }
28
+ export declare class RuntimeController {
29
+ readonly apple: AppleDriver;
30
+ readonly maestro: MaestroDriver;
31
+ readonly expo: ExpoDriver;
32
+ readonly idb: IdbDriver;
33
+ private readonly spawner;
34
+ constructor(options?: RuntimeOptions);
35
+ simList(): Promise<SimDevice[]>;
36
+ simBoot(target: string): Promise<void>;
37
+ simShutdown(target: string): Promise<void>;
38
+ simOpen(target: string): Promise<void>;
39
+ simErase(target: string): Promise<void>;
40
+ simScreenshot(target: string, outputPath: string): Promise<void>;
41
+ simCreate(name: string, deviceType: string, runtime: string): Promise<string>;
42
+ simDelete(target: string): Promise<void>;
43
+ simRuntimeList(): Promise<SimRuntime[]>;
44
+ simDeviceTypeList(): Promise<DeviceType[]>;
45
+ simClone(source: string, name: string): Promise<string>;
46
+ simClearCache(target: string): Promise<void>;
47
+ simSetAppearance(target: string, appearance: "dark" | "light"): Promise<void>;
48
+ simStartRecording(udid: string, outputPath: string): Promise<void>;
49
+ simStopRecording(udid: string): Promise<void>;
50
+ simAddMedia(udid: string, mediaPaths: readonly string[]): Promise<void>;
51
+ simRunningApps(udid: string): Promise<RunningApp[]>;
52
+ deviceList(platform?: string): Promise<PhysicalDevice[]>;
53
+ appInstall(udid: string, appPath: string): Promise<void>;
54
+ appLaunch(udid: string, bundleId: string): Promise<void>;
55
+ appTerminate(udid: string, bundleId: string, force?: boolean): Promise<void>;
56
+ appTerminateAll(udid: string, force?: boolean): Promise<void>;
57
+ appUninstall(udid: string, bundleId: string): Promise<void>;
58
+ appListRunning(udid: string): Promise<RunningApp[]>;
59
+ simPrune(): Promise<void>;
60
+ streamLogs(udid: string, timeoutMs?: number): Promise<string>;
61
+ build(cwd: string, scheme: string, options?: {
62
+ destination?: string | undefined;
63
+ workspace?: string | undefined;
64
+ project?: string | undefined;
65
+ }): Promise<void>;
66
+ buildWithProgress(cwd: string, scheme: string, onPhase: (phase: BuildPhase) => void, options?: {
67
+ destination?: string | undefined;
68
+ workspace?: string | undefined;
69
+ project?: string | undefined;
70
+ }): Promise<void>;
71
+ test(cwd: string, scheme: string, options?: {
72
+ destination?: string | undefined;
73
+ workspace?: string | undefined;
74
+ project?: string | undefined;
75
+ only?: readonly string[] | undefined;
76
+ skip?: readonly string[] | undefined;
77
+ retry?: boolean | undefined;
78
+ }): Promise<void>;
79
+ testWithResults(cwd: string, scheme: string, options?: {
80
+ destination?: string | undefined;
81
+ workspace?: string | undefined;
82
+ project?: string | undefined;
83
+ }): Promise<TestResult[]>;
84
+ getTestResults(xcresultPath: string): Promise<TestResult[]>;
85
+ clean(cwd: string, scheme: string, options?: {
86
+ workspace?: string | undefined;
87
+ project?: string | undefined;
88
+ derivedData?: boolean | undefined;
89
+ xcodeDerivedData?: boolean | undefined;
90
+ xcodeCache?: boolean | undefined;
91
+ }): Promise<void>;
92
+ prebuild(cwd: string, platform?: "ios" | "android"): Promise<void>;
93
+ runExpoIos(cwd: string, device?: string): Promise<void>;
94
+ runExpoAndroid(cwd: string, device?: string): Promise<void>;
95
+ runMaestroTest(flowPath: string, options: {
96
+ cwd: string;
97
+ device?: string;
98
+ platform?: "ios" | "android";
99
+ }): Promise<void>;
100
+ runMaestroContinuous(flowPath: string, options: {
101
+ cwd: string;
102
+ device?: string;
103
+ platform?: "ios" | "android";
104
+ }): Promise<void>;
105
+ runMaestroHierarchy(options: {
106
+ cwd: string;
107
+ device?: string;
108
+ }): Promise<string>;
109
+ runMaestroRecord(flowPath: string, options: {
110
+ cwd: string;
111
+ device?: string;
112
+ }): Promise<void>;
113
+ maestroDriverSetup(cwd: string): Promise<void>;
114
+ maestroStartDevice(options: {
115
+ cwd: string;
116
+ platform?: "ios" | "android" | undefined;
117
+ device?: string | undefined;
118
+ }): Promise<void>;
119
+ testWithProgress(cwd: string, scheme: string, onProgress: (progress: TestProgress) => void, options?: {
120
+ destination?: string | undefined;
121
+ workspace?: string | undefined;
122
+ project?: string | undefined;
123
+ only?: readonly string[] | undefined;
124
+ skip?: readonly string[] | undefined;
125
+ retry?: boolean | undefined;
126
+ }): Promise<void>;
127
+ projectBuildConfigs(cwd: string, options?: {
128
+ workspace?: string | undefined;
129
+ project?: string | undefined;
130
+ }): Promise<string[]>;
131
+ detectSchemes(cwd: string, options?: {
132
+ workspace?: string | undefined;
133
+ project?: string | undefined;
134
+ }): Promise<string[]>;
135
+ discoverTests(cwd: string, scheme: string, options?: {
136
+ destination?: string | undefined;
137
+ workspace?: string | undefined;
138
+ project?: string | undefined;
139
+ }): Promise<string[]>;
140
+ idbDescribeAll(udid: string): Promise<unknown>;
141
+ idbDescribePoint(udid: string, x: number, y: number): Promise<unknown>;
142
+ idbTap(udid: string, x: number, y: number): Promise<void>;
143
+ idbSwipe(udid: string, x1: number, y1: number, x2: number, y2: number): Promise<void>;
144
+ idbPressButton(udid: string, button: string): Promise<void>;
145
+ idbInputText(udid: string, text: string): Promise<void>;
146
+ idbListCrashes(udid: string): Promise<Array<{
147
+ name: string;
148
+ process: string;
149
+ date: string;
150
+ }>>;
151
+ idbShowCrash(udid: string, name: string): Promise<string>;
152
+ idbDeleteCrash(udid: string, name: string): Promise<void>;
153
+ idbApprove(udid: string, bundleId: string, permissions: readonly string[]): Promise<void>;
154
+ idbSetLocation(udid: string, latitude: number, longitude: number): Promise<void>;
155
+ idbFocus(udid: string): Promise<void>;
156
+ }
157
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}