@absolutejs/absolute 0.20.0-beta.1 → 0.20.0-beta.11

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 (68) hide show
  1. package/README.md +52 -0
  2. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  3. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  4. package/dist/angular/index.js +341 -22
  5. package/dist/angular/index.js.map +8 -5
  6. package/dist/angular/server.js +341 -22
  7. package/dist/angular/server.js.map +8 -5
  8. package/dist/build.js +537 -313
  9. package/dist/build.js.map +14 -13
  10. package/dist/cli/index.js +4171 -970
  11. package/dist/dev/client/cssUtils.ts +16 -2
  12. package/dist/dev/client/handlers/rebuild.ts +11 -1
  13. package/dist/dev/client/hmrTiming.ts +14 -7
  14. package/dist/index.js +857 -513
  15. package/dist/index.js.map +22 -21
  16. package/dist/mobile/browser.js +14 -1
  17. package/dist/mobile/browser.js.map +3 -3
  18. package/dist/mobile/index.js +2900 -244
  19. package/dist/mobile/index.js.map +23 -14
  20. package/dist/mobile/remoteMacAgentEntry.js +29 -0
  21. package/dist/mobile/shellAuth.js +43 -0
  22. package/dist/mobile/shellBootstrap.js +581 -0
  23. package/dist/mobile/shellSync.js +74 -0
  24. package/dist/src/angular/pageHandler.d.ts +3 -0
  25. package/dist/src/build/pwa.d.ts +15 -0
  26. package/dist/src/cli/config/server.d.ts +1 -1
  27. package/dist/src/core/pageHandlers.d.ts +11 -2
  28. package/dist/src/core/prepare.d.ts +6 -0
  29. package/dist/src/dev/clientManager.d.ts +2 -0
  30. package/dist/src/mobile/androidEmulatorController.d.ts +7 -1
  31. package/dist/src/mobile/androidRelease.d.ts +4 -0
  32. package/dist/src/mobile/buildPipeline.d.ts +1 -0
  33. package/dist/src/mobile/capacitorBundle.d.ts +15 -1
  34. package/dist/src/mobile/client.d.ts +4 -0
  35. package/dist/src/mobile/config.d.ts +1 -0
  36. package/dist/src/mobile/index.d.ts +7 -0
  37. package/dist/src/mobile/iosConformance.d.ts +15 -0
  38. package/dist/src/mobile/iosNativeWatcher.d.ts +19 -0
  39. package/dist/src/mobile/iosRelease.d.ts +61 -0
  40. package/dist/src/mobile/iosSimulatorController.d.ts +89 -0
  41. package/dist/src/mobile/nativeAuth.d.ts +17 -0
  42. package/dist/src/mobile/nativeBackgroundSync.d.ts +4 -0
  43. package/dist/src/mobile/releaseArtifact.d.ts +2 -0
  44. package/dist/src/mobile/releasePublisher.d.ts +130 -0
  45. package/dist/src/mobile/remoteMacAgent.d.ts +2 -0
  46. package/dist/src/mobile/remoteMacAgentEntry.d.ts +1 -0
  47. package/dist/src/mobile/remoteMacProtocol.d.ts +114 -0
  48. package/dist/src/mobile/remoteMacWire.d.ts +2 -0
  49. package/dist/src/mobile/shellAuth.d.ts +13 -0
  50. package/dist/src/mobile/shellBootstrap.d.ts +18 -1
  51. package/dist/src/mobile/shellSync.d.ts +19 -0
  52. package/dist/src/mobile/staticDocument.d.ts +5 -0
  53. package/dist/src/mobile/transport.d.ts +13 -1
  54. package/dist/src/plugins/hmr.d.ts +3 -0
  55. package/dist/src/plugins/imageOptimizer.d.ts +1 -1
  56. package/dist/src/svelte/pageHandler.d.ts +3 -0
  57. package/dist/src/utils/loadConfig.d.ts +1 -0
  58. package/dist/src/vue/pageHandler.d.ts +3 -0
  59. package/dist/svelte/index.js +312 -23
  60. package/dist/svelte/index.js.map +7 -4
  61. package/dist/svelte/server.js +307 -18
  62. package/dist/svelte/server.js.map +7 -4
  63. package/dist/types/build.d.ts +18 -0
  64. package/dist/vue/index.js +312 -23
  65. package/dist/vue/index.js.map +7 -4
  66. package/dist/vue/server.js +307 -18
  67. package/dist/vue/server.js.map +7 -4
  68. package/package.json +25 -9
@@ -391,7 +391,7 @@ export declare const launchConfig: (args: string[], cwd?: string) => Promise<imp
391
391
  status?: number | keyof import("elysia").StatusMap;
392
392
  cookie?: Record<string, import("elysia").BaseCookie>;
393
393
  };
394
- status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 500 | 100 | 200 | 400 | 404 | 300 | 304 | 426 | 302 | 101 | 102 | 103 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 301 | 303 | 307 | 308 | 401 | 402 | 403 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 428 | 429 | 431 | 451 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
394
+ status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 500 | 100 | 200 | 400 | 404 | 300 | 304 | 426 | 204 | 302 | 101 | 102 | 103 | 201 | 202 | 203 | 205 | 206 | 207 | 208 | 301 | 303 | 307 | 308 | 401 | 402 | 403 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 428 | 429 | 431 | 451 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
395
395
  readonly 100: "Continue";
396
396
  readonly 101: "Switching Protocols";
397
397
  readonly 102: "Processing";
@@ -1,5 +1,14 @@
1
1
  import { type StreamingSlotEnhancerOptions } from './responseEnhancers';
2
+ import type { AbsoluteMobileBuildPageMetadata } from '../mobile/buildMetadata';
2
3
  export type StaticPageRequestOptions = StreamingSlotEnhancerOptions;
3
- export type HTMLPageRequestOptions = StaticPageRequestOptions;
4
+ export type HTMLPageRequestOptions = StaticPageRequestOptions & {
5
+ /** @internal Build-generated mobile identity. Application code must not set this. */
6
+ __absoluteMobile?: AbsoluteMobileBuildPageMetadata;
7
+ };
8
+ type HTMXPageRequestOptions = {
9
+ /** @internal Build-generated mobile identity. Application code must not set this. */
10
+ __absoluteMobile?: AbsoluteMobileBuildPageMetadata;
11
+ };
4
12
  export declare const handleHTMLPageRequest: (pagePath: string, options?: HTMLPageRequestOptions) => Promise<Response>;
5
- export declare const handleHTMXPageRequest: (pagePath: string) => Promise<Response>;
13
+ export declare const handleHTMXPageRequest: (pagePath: string, options?: HTMXPageRequestOptions) => Promise<Response>;
14
+ export {};
@@ -135,6 +135,9 @@ export declare const prepare: (configOrPath?: string) => Promise<{
135
135
  response: {
136
136
  200: {
137
137
  connectedClients: number;
138
+ connectedTargets: {
139
+ [k: string]: number;
140
+ };
138
141
  entryWatcherReady: boolean;
139
142
  isRebuilding: boolean;
140
143
  manifestKeys: string[];
@@ -268,6 +271,9 @@ export declare const prepare: (configOrPath?: string) => Promise<{
268
271
  response: {
269
272
  200: {
270
273
  connectedClients: number;
274
+ connectedTargets: {
275
+ [k: string]: number;
276
+ };
271
277
  entryWatcherReady: boolean;
272
278
  isRebuilding: boolean;
273
279
  manifestKeys: string[];
@@ -2,6 +2,7 @@ import type { FSWatcher } from 'fs';
2
2
  import { type DependencyGraph } from './dependencyGraph';
3
3
  import { type ModuleVersions } from './moduleVersionTracker';
4
4
  import type { HMRWebSocket } from '../../types/websocket';
5
+ import type { HMRClientTarget } from '../../types/messages';
5
6
  import type { BuildConfig, BuildPassError } from '../../types/build';
6
7
  import { type ResolvedBuildPaths } from './configResolver';
7
8
  type HMRUpdateMetadata = {
@@ -10,6 +11,7 @@ type HMRUpdateMetadata = {
10
11
  };
11
12
  export type HMRState = {
12
13
  connectedClients: Set<HMRWebSocket>;
14
+ clientTargets: Map<HMRWebSocket, HMRClientTarget>;
13
15
  activeFrameworks: Set<string>;
14
16
  dependencyGraph: DependencyGraph;
15
17
  isRebuilding: boolean;
@@ -56,6 +56,9 @@ export type StartAbsoluteAndroidDevOptions = {
56
56
  onPhaseTiming?: (timing: AbsoluteAndroidDevPhaseTiming) => void;
57
57
  onStateChange?: (state: AbsoluteAndroidDevState) => void;
58
58
  https?: boolean;
59
+ /** Launch the locally embedded production web bundle while forwarding
60
+ * `port` only for its configured backend. No dev-server URL is written. */
61
+ embeddedBundle?: boolean;
59
62
  port: number;
60
63
  project: AbsoluteAndroidDevProject;
61
64
  run?: (command: string[], options?: AbsoluteAndroidCommandOptions) => Promise<number>;
@@ -67,13 +70,16 @@ export type StartAbsoluteAndroidDevOptions = {
67
70
  export declare const redactAbsoluteAndroidLog: (value: string) => string;
68
71
  export declare const isIgnorableAbsoluteAndroidLog: (entry: AbsoluteAndroidNativeLogEntry) => boolean;
69
72
  export declare const parseAbsoluteAndroidLogLine: (line: string) => AbsoluteAndroidNativeLogEntry | null;
70
- export declare const fingerprintAbsoluteAndroidNativeProject: (project: AbsoluteAndroidDevProject) => Promise<string>;
73
+ export declare const fingerprintAbsoluteAndroidNativeProject: (project: Pick<AbsoluteAndroidDevProject, "nativeDirectory">, options?: {
74
+ includePublicBundle?: boolean;
75
+ }) => Promise<string>;
71
76
  export declare const repairAbsoluteAndroidDevSession: (projectRoot: string) => Promise<boolean>;
72
77
  export declare const parseAdbDevices: (output: string) => string[];
73
78
  export type AbsoluteAndroidGradleTask = 'assembleDebug' | 'assembleRelease' | 'bundleRelease';
74
79
  export type BuildAbsoluteAndroidGradleOptions = {
75
80
  capture?: NonNullable<StartAbsoluteAndroidDevOptions['capture']>;
76
81
  env?: Record<string, string | undefined>;
82
+ gradleArguments?: readonly string[];
77
83
  project: Pick<AbsoluteAndroidDevProject, 'androidRoot' | 'config' | 'host' | 'nativeDirectory' | 'projectRoot'>;
78
84
  run?: NonNullable<StartAbsoluteAndroidDevOptions['run']>;
79
85
  signal?: AbortSignal;
@@ -15,6 +15,7 @@ export type AbsoluteAndroidReleaseMetadata = {
15
15
  sha256: string;
16
16
  signed: boolean;
17
17
  type: 'aab';
18
+ versionCode?: number;
18
19
  };
19
20
  export type BuildAbsoluteAndroidReleaseOptions = {
20
21
  allowUnsigned?: boolean;
@@ -26,6 +27,8 @@ export type BuildAbsoluteAndroidReleaseOptions = {
26
27
  outputDirectory?: string;
27
28
  projectRoot: string;
28
29
  run?: (command: string[], options?: AbsoluteAndroidCommandOptions) => Promise<number>;
30
+ prepareVersionCode?: (buildIdentity: string) => Promise<number>;
31
+ versionCode?: number;
29
32
  };
30
33
  export declare const buildAbsoluteAndroidRelease: (options: BuildAbsoluteAndroidReleaseOptions) => Promise<{
31
34
  artifactPath: string;
@@ -42,6 +45,7 @@ export declare const buildAbsoluteAndroidRelease: (options: BuildAbsoluteAndroid
42
45
  platform: "android";
43
46
  engine: "capacitor";
44
47
  signed: boolean;
48
+ versionCode?: number | undefined;
45
49
  };
46
50
  releaseRoot: string;
47
51
  }>;
@@ -1,6 +1,7 @@
1
1
  import type { MobileConfig } from '../../types/build';
2
2
  export type FinalizeAbsoluteMobileBuildOptions = {
3
3
  buildDirectory: string;
4
+ configPath?: string;
4
5
  mobile: MobileConfig;
5
6
  producerPath: string;
6
7
  projectRoot: string;
@@ -1,12 +1,21 @@
1
1
  import type { NormalizedAbsoluteMobileConfig } from './config';
2
2
  import type { AbsoluteMobileCompatibilityArtifact } from './releaseArtifact';
3
+ import type { AbsoluteMobileAuthManifest } from './nativeAuth';
3
4
  export type AbsoluteCapacitorBundleOptions = {
4
5
  artifact: AbsoluteMobileCompatibilityArtifact;
6
+ auth?: AbsoluteMobileAuthManifest;
5
7
  buildDirectory: string;
6
8
  config: NormalizedAbsoluteMobileConfig;
9
+ sync?: boolean;
7
10
  };
8
11
  export declare const materializeAbsoluteCapacitorWebBundle: (options: AbsoluteCapacitorBundleOptions) => Promise<{
9
- appBuild: string;
12
+ sync?: {
13
+ background: {
14
+ endpoint: string;
15
+ intervalMinutes: number;
16
+ };
17
+ socketTickets: true;
18
+ } | undefined;
10
19
  appId: string;
11
20
  appName: string;
12
21
  deepLinkHosts: string[];
@@ -14,6 +23,7 @@ export declare const materializeAbsoluteCapacitorWebBundle: (options: AbsoluteCa
14
23
  entry: string;
15
24
  format: 1;
16
25
  pages: {
26
+ localStylePath?: string | undefined;
17
27
  localBundlePath: string;
18
28
  bundleHash: string;
19
29
  bundlePath: string;
@@ -21,8 +31,12 @@ export declare const materializeAbsoluteCapacitorWebBundle: (options: AbsoluteCa
21
31
  framework: import("./pageProtocol").AbsoluteMobilePageFramework;
22
32
  pageId: string;
23
33
  propsSchemaHash: string;
34
+ styleBundleHash?: string;
35
+ styleBundlePath?: string;
24
36
  }[];
25
37
  productionOrigin: string;
26
38
  routes: import("./releaseArtifact").AbsoluteMobileCompatibilityRoute[];
27
39
  runtime: string;
40
+ auth?: AbsoluteMobileAuthManifest | undefined;
41
+ appBuild: string;
28
42
  }>;
@@ -1,6 +1,9 @@
1
1
  import { type AbsoluteMobilePageResult, type AbsoluteMobileUpgradeRequiredResult } from './pageProtocol';
2
2
  type AbsoluteMobileClientTarget = {
3
+ __ABSOLUTE_PAGE_DISPOSE__?: () => Promise<void> | void;
4
+ __ABSOLUTE_PAGE_READY__?: Promise<unknown>;
3
5
  __ABSOLUTE_PAGE_RENDER_MODE__?: 'client' | 'hydrate';
6
+ __ABS_ANGULAR_REQUEST_CONTEXT__?: Record<string, unknown>;
4
7
  __INITIAL_PROPS__?: Record<string, unknown>;
5
8
  };
6
9
  export type AbsoluteMobilePageLoader = (input: {
@@ -20,6 +23,7 @@ export declare class AbsoluteMobilePageProtocolError extends Error {
20
23
  readonly code: 'invalid-envelope' | 'invalid-props' | 'server-error' | 'server-rejected-request';
21
24
  constructor(code: AbsoluteMobilePageProtocolError['code'], message: string);
22
25
  }
26
+ export declare const disposeAbsoluteMobilePage: (target?: AbsoluteMobileClientTarget) => Promise<void>;
23
27
  export declare const activateAbsoluteMobilePage: (value: unknown, options: AbsoluteMobilePageActivationOptions) => Promise<AbsoluteMobileUpgradeRequiredResult | {
24
28
  contract: string;
25
29
  kind: "rendered";
@@ -9,6 +9,7 @@ export type NormalizedAbsoluteMobileConfig = {
9
9
  deepLinkScheme?: string;
10
10
  engine: 'capacitor';
11
11
  entry: string;
12
+ iosVersion?: string;
12
13
  nativeProjectDirectory: string;
13
14
  platforms: MobilePlatform[];
14
15
  productionOrigin: string;
@@ -1,5 +1,10 @@
1
1
  export * from './artifactStore';
2
2
  export * from './androidRelease';
3
+ export * from './iosRelease';
4
+ export * from './iosConformance';
5
+ export * from './iosSimulatorController';
6
+ export * from './iosNativeWatcher';
7
+ export * from './remoteMacProtocol';
3
8
  export * from './associationFiles';
4
9
  export * from './buildMetadata';
5
10
  export * from './buildPipeline';
@@ -11,9 +16,11 @@ export * from './client';
11
16
  export * from './compatibilityDispatcher';
12
17
  export * from './materializedBundle';
13
18
  export * from './nativeDeepLinks';
19
+ export * from './nativeAuth';
14
20
  export * from './pageProtocol';
15
21
  export * from './producerContext';
16
22
  export * from './releaseArtifact';
23
+ export * from './releasePublisher';
17
24
  export * from './routeMetadataTransform';
18
25
  export * from './routeMatcher';
19
26
  export * from './transport';
@@ -0,0 +1,15 @@
1
+ export type AbsoluteIosHmrApply = {
2
+ clientMs?: number;
3
+ duration: number;
4
+ line: string;
5
+ outcome: 'applied' | 'failed' | 'reloaded';
6
+ serverMs?: number;
7
+ };
8
+ export declare const parseAbsoluteIosHmrLog: (line: string) => AbsoluteIosHmrApply | null;
9
+ export declare const waitForAbsoluteIosHmrLog: (options: {
10
+ logPath: string;
11
+ signal?: AbortSignal;
12
+ sleep?: (milliseconds: number) => Promise<void>;
13
+ startOffset?: number;
14
+ timeoutMs?: number;
15
+ }) => Promise<AbsoluteIosHmrApply>;
@@ -0,0 +1,19 @@
1
+ import { type AbsoluteIosDevProject } from './iosSimulatorController';
2
+ export type AbsoluteIosNativeChange = {
3
+ afterFingerprint: string;
4
+ beforeFingerprint: string;
5
+ paths: string[];
6
+ rootInputChanged: boolean;
7
+ };
8
+ export type AbsoluteIosNativeWatcher = {
9
+ close: () => void;
10
+ };
11
+ export type AbsoluteIosNativeWatcherOptions = {
12
+ debounceMs?: number;
13
+ onChange: (change: AbsoluteIosNativeChange) => Promise<void>;
14
+ onError?: (error: unknown) => void;
15
+ project: AbsoluteIosDevProject;
16
+ signal?: AbortSignal;
17
+ };
18
+ export declare const createAbsoluteIosNativeWatcher: (options: AbsoluteIosNativeWatcherOptions) => Promise<AbsoluteIosNativeWatcher>;
19
+ export declare const isAbsoluteIosNativeRootInput: (path: string) => boolean;
@@ -0,0 +1,61 @@
1
+ import type { NormalizedAbsoluteMobileConfig } from './config';
2
+ import { type AbsoluteMobileHost } from './emulatorDoctor';
3
+ export declare const ABSOLUTE_IOS_RELEASE_FORMAT: 1;
4
+ export type AbsoluteIosReleaseMetadata = {
5
+ appBuild: string;
6
+ appId: string;
7
+ artifact: 'App.ipa';
8
+ buildNumber?: number;
9
+ bytes: number;
10
+ engine: 'capacitor';
11
+ format: typeof ABSOLUTE_IOS_RELEASE_FORMAT;
12
+ marketingVersion: string;
13
+ platform: 'ios';
14
+ releaseId: string;
15
+ runtime: string;
16
+ sha256: string;
17
+ signed: boolean;
18
+ type: 'ipa';
19
+ };
20
+ type CommandOptions = {
21
+ cwd?: string;
22
+ env?: Record<string, string | undefined>;
23
+ };
24
+ type CommandResult = {
25
+ exitCode: number;
26
+ stderr: string;
27
+ stdout: string;
28
+ };
29
+ export type BuildAbsoluteIosReleaseOptions = {
30
+ allowUnsigned?: boolean;
31
+ capture?: (command: string[], options?: CommandOptions) => CommandResult;
32
+ config: NormalizedAbsoluteMobileConfig;
33
+ host?: AbsoluteMobileHost;
34
+ outputDirectory?: string;
35
+ prepareBuildNumber?: (buildIdentity: string) => Promise<number>;
36
+ projectRoot: string;
37
+ run?: (command: string[], options?: CommandOptions) => Promise<number>;
38
+ buildNumber?: number;
39
+ };
40
+ export declare const fingerprintAbsoluteIosNativeProject: (nativeDirectory: string) => Promise<string>;
41
+ export declare const buildAbsoluteIosRelease: (options: BuildAbsoluteIosReleaseOptions) => Promise<{
42
+ artifactPath: string;
43
+ metadata: {
44
+ artifact: "App.ipa";
45
+ sha256: string;
46
+ type: "ipa";
47
+ format: typeof ABSOLUTE_IOS_RELEASE_FORMAT;
48
+ bytes: number;
49
+ runtime: string;
50
+ releaseId: string;
51
+ appBuild: string;
52
+ appId: string;
53
+ platform: "ios";
54
+ buildNumber?: number | undefined;
55
+ engine: "capacitor";
56
+ marketingVersion: string;
57
+ signed: boolean;
58
+ };
59
+ releaseRoot: string;
60
+ }>;
61
+ export {};
@@ -0,0 +1,89 @@
1
+ import type { NormalizedAbsoluteMobileConfig } from './config';
2
+ export declare const ABSOLUTE_IOS_SIMULATOR_NAME = "AbsoluteJS iPhone";
3
+ export type AbsoluteIosCommandOptions = {
4
+ cwd?: string;
5
+ env?: Record<string, string | undefined>;
6
+ signal?: AbortSignal;
7
+ };
8
+ export type AbsoluteIosCommandResult = {
9
+ exitCode: number;
10
+ stderr: string;
11
+ stdout: string;
12
+ };
13
+ export type AbsoluteIosDevState = 'booting' | 'building' | 'checking-native' | 'closed' | 'closing' | 'configuring' | 'connecting' | 'failed' | 'installing' | 'launching' | 'ready' | 'streaming-logs' | 'syncing';
14
+ export type AbsoluteIosNativeLogEntry = {
15
+ level: 'debug' | 'error' | 'fault' | 'info' | 'notice';
16
+ message: string;
17
+ tag: string;
18
+ };
19
+ type AbsoluteIosLogStream = {
20
+ close: () => Promise<void>;
21
+ };
22
+ export type AbsoluteIosDevProject = {
23
+ cap: string;
24
+ config: NormalizedAbsoluteMobileConfig;
25
+ nativeDirectory: string;
26
+ projectRoot: string;
27
+ xcodebuild: string;
28
+ xcrun: string;
29
+ };
30
+ export type AbsoluteIosDevSession = {
31
+ close: () => Promise<void>;
32
+ nativeCacheHit: boolean;
33
+ rebuild: () => Promise<AbsoluteIosDevSession>;
34
+ relaunch: () => Promise<void>;
35
+ screenshot: (destination: string) => Promise<string>;
36
+ startedSimulator: boolean;
37
+ state: AbsoluteIosDevState;
38
+ timings: Record<string, number>;
39
+ udid: string;
40
+ };
41
+ export type AbsoluteIosDevPhaseTiming = {
42
+ durationMs: number;
43
+ phase: AbsoluteIosDevState;
44
+ totalMs: number;
45
+ };
46
+ export type PrepareAbsoluteIosDevOptions = {
47
+ createNativeProject: boolean;
48
+ projectRoot: string;
49
+ run?: (command: string[], options?: AbsoluteIosCommandOptions) => Promise<number>;
50
+ };
51
+ export type StartAbsoluteIosDevOptions = {
52
+ capture?: (command: string[], options?: AbsoluteIosCommandOptions) => AbsoluteIosCommandResult;
53
+ https?: boolean;
54
+ log?: (message: string) => void;
55
+ nativeLog?: (entry: AbsoluteIosNativeLogEntry) => void;
56
+ onPhaseTiming?: (timing: AbsoluteIosDevPhaseTiming) => void;
57
+ onStateChange?: (state: AbsoluteIosDevState) => void;
58
+ port: number;
59
+ project: AbsoluteIosDevProject;
60
+ run?: (command: string[], options?: AbsoluteIosCommandOptions) => Promise<number>;
61
+ signal?: AbortSignal;
62
+ sleep?: (milliseconds: number) => Promise<void>;
63
+ spawn?: (command: string[], options?: AbsoluteIosCommandOptions) => void;
64
+ startNativeLogs?: (command: string[], options: AbsoluteIosCommandOptions, onLine: (line: string) => void) => AbsoluteIosLogStream;
65
+ };
66
+ export declare const parseIosDeviceTypes: (source: string) => {
67
+ identifier: string;
68
+ name: string;
69
+ }[];
70
+ export declare const parseIosRuntimes: (source: string) => {
71
+ identifier: string;
72
+ isAvailable: boolean;
73
+ name: string;
74
+ version: string;
75
+ }[];
76
+ export declare const parseIosSimulators: (source: string) => {
77
+ isAvailable: boolean;
78
+ name: string;
79
+ runtime: string;
80
+ state: string;
81
+ udid: string;
82
+ }[];
83
+ export declare const repairAbsoluteIosDevSession: (projectRoot: string) => Promise<boolean>;
84
+ export declare const fingerprintAbsoluteIosDevProject: (project: Pick<AbsoluteIosDevProject, "nativeDirectory">) => Promise<string>;
85
+ export declare const parseAbsoluteIosLogLine: (line: string) => AbsoluteIosNativeLogEntry | null;
86
+ export declare const redactAbsoluteIosLog: (value: string) => string;
87
+ export declare const prepareAbsoluteIosDevProject: (config: NormalizedAbsoluteMobileConfig, options: PrepareAbsoluteIosDevOptions) => Promise<AbsoluteIosDevProject>;
88
+ export declare const startAbsoluteIosDevSession: (options: StartAbsoluteIosDevOptions) => Promise<AbsoluteIosDevSession>;
89
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { NormalizedAbsoluteMobileConfig } from './config';
2
+ export declare const ABSOLUTE_AUTH_PACKAGE: "@absolutejs/auth";
3
+ export declare const ABSOLUTE_NATIVE_AUTH_CLIENTS_ENV: "ABSOLUTE_AUTH_NATIVE_CLIENTS";
4
+ export declare const ABSOLUTE_NATIVE_AUTH_SCOPES: readonly ["openid", "profile"];
5
+ export declare const ABSOLUTE_SYNC_PACKAGE: "@absolutejs/sync";
6
+ export type AbsoluteMobileAuthManifest = {
7
+ clientId: string;
8
+ issuer: string;
9
+ redirectUri: string;
10
+ scopes: string[];
11
+ };
12
+ export declare const createAbsoluteMobileAuthManifest: (config: NormalizedAbsoluteMobileConfig) => AbsoluteMobileAuthManifest;
13
+ export declare const installAbsoluteMobileAuthEnvironment: (projectRoot: string, config: NormalizedAbsoluteMobileConfig) => AbsoluteMobileAuthManifest | undefined;
14
+ export declare const projectUsesAbsoluteAuth: (projectRoot: string) => boolean;
15
+ export declare const projectUsesAbsoluteSync: (projectRoot: string) => boolean;
16
+ export declare const resolveAbsoluteMobileAuthManifest: (projectRoot: string, config: NormalizedAbsoluteMobileConfig) => AbsoluteMobileAuthManifest | undefined;
17
+ export declare const serializeAbsoluteMobileAuthEnvironment: (config: NormalizedAbsoluteMobileConfig, auth: AbsoluteMobileAuthManifest | undefined) => string | undefined;
@@ -0,0 +1,4 @@
1
+ import type { NormalizedAbsoluteMobileConfig } from './config';
2
+ export declare const applyAbsoluteNativeBackgroundSync: (projectRoot: string, config: NormalizedAbsoluteMobileConfig, platforms?: import("..").MobilePlatform[]) => Promise<{
3
+ changed: boolean;
4
+ }>;
@@ -8,6 +8,8 @@ export type AbsoluteMobileCompatibilityPage = {
8
8
  framework: AbsoluteMobilePageFramework;
9
9
  pageId: string;
10
10
  propsSchemaHash: string;
11
+ styleBundleHash?: string;
12
+ styleBundlePath?: string;
11
13
  };
12
14
  export type AbsoluteMobileCompatibilityRoute = {
13
15
  method: 'GET' | 'HEAD';
@@ -0,0 +1,130 @@
1
+ import type { AbsoluteAndroidReleaseMetadata } from './androidRelease';
2
+ import type { AbsoluteIosReleaseMetadata } from './iosRelease';
3
+ export type AbsoluteGooglePlayReleaseTarget = {
4
+ changesNotSentForReview?: boolean;
5
+ inAppUpdatePriority?: number;
6
+ name?: string;
7
+ releaseNotes?: readonly {
8
+ language: string;
9
+ text: string;
10
+ }[];
11
+ reviewBehavior?: 'CANCEL_IN_REVIEW_AND_SUBMIT' | 'ERROR_IF_IN_REVIEW';
12
+ status?: 'completed' | 'draft' | 'halted' | 'inProgress';
13
+ track: string;
14
+ userFraction?: number;
15
+ };
16
+ export type AbsoluteAppStoreConnectReleaseTarget = {
17
+ groups?: readonly string[];
18
+ submitForReview?: boolean;
19
+ whatsNew?: readonly {
20
+ locale: string;
21
+ text: string;
22
+ }[];
23
+ };
24
+ export type AbsoluteNativeReleasePublication = {
25
+ channel?: {
26
+ channel: string;
27
+ releaseId: string;
28
+ };
29
+ record: {
30
+ metadata: AbsoluteAndroidReleaseMetadata | AbsoluteIosReleaseMetadata;
31
+ };
32
+ reused: boolean;
33
+ googlePlay?: {
34
+ receipt: {
35
+ intent: {
36
+ track: string;
37
+ };
38
+ packageName: string;
39
+ provider: 'google-play';
40
+ releaseId: string;
41
+ sha256: string;
42
+ stage: string;
43
+ versionCode?: string;
44
+ };
45
+ reused: boolean;
46
+ };
47
+ appStoreConnect?: {
48
+ receipt: {
49
+ appleAppId: string;
50
+ buildId?: string;
51
+ buildNumber: number;
52
+ intent: {
53
+ groups: string[];
54
+ submitForReview: boolean;
55
+ };
56
+ marketingVersion: string;
57
+ provider: 'app-store-connect';
58
+ releaseId: string;
59
+ sha256: string;
60
+ stage: string;
61
+ };
62
+ reused: boolean;
63
+ };
64
+ };
65
+ export type AbsoluteNativeReleasePublisher = {
66
+ prepareAndroidRelease?: (options: {
67
+ buildIdentity: string;
68
+ googlePlay?: AbsoluteGooglePlayReleaseTarget;
69
+ packageName: string;
70
+ signal?: AbortSignal;
71
+ }) => Promise<{
72
+ versionCode?: number;
73
+ }>;
74
+ prepareIosRelease?: (options: {
75
+ buildIdentity: string;
76
+ bundleId: string;
77
+ marketingVersion: string;
78
+ signal?: AbortSignal;
79
+ }) => Promise<{
80
+ buildNumber: number;
81
+ }>;
82
+ publish: (options: {
83
+ allowUnsigned?: boolean;
84
+ appStoreConnect?: AbsoluteAppStoreConnectReleaseTarget;
85
+ channel?: string;
86
+ googlePlay?: AbsoluteGooglePlayReleaseTarget;
87
+ releaseRoot: string;
88
+ signal?: AbortSignal;
89
+ }) => Promise<AbsoluteNativeReleasePublication>;
90
+ };
91
+ export declare const prepareAbsoluteIosRelease: (publisher: AbsoluteNativeReleasePublisher, options: {
92
+ buildIdentity: string;
93
+ bundleId: string;
94
+ marketingVersion: string;
95
+ signal?: AbortSignal;
96
+ }) => Promise<number>;
97
+ type PrepareAbsoluteAndroidReleaseOptions = {
98
+ buildIdentity: string;
99
+ googlePlay: AbsoluteGooglePlayReleaseTarget;
100
+ packageName: string;
101
+ signal?: AbortSignal;
102
+ };
103
+ export declare const prepareAbsoluteAndroidRelease: (publisher: AbsoluteNativeReleasePublisher, options: PrepareAbsoluteAndroidReleaseOptions) => Promise<number>;
104
+ export type PublishAbsoluteAndroidReleaseOptions = {
105
+ allowUnsigned?: boolean;
106
+ channel?: string;
107
+ googlePlay?: AbsoluteGooglePlayReleaseTarget;
108
+ modulePath: string;
109
+ projectRoot: string;
110
+ release: {
111
+ metadata: AbsoluteAndroidReleaseMetadata;
112
+ releaseRoot: string;
113
+ };
114
+ signal?: AbortSignal;
115
+ };
116
+ export declare const loadAbsoluteNativeReleasePublisher: (projectRoot: string, requestedModulePath: string) => Promise<AbsoluteNativeReleasePublisher>;
117
+ export declare const publishAbsoluteAndroidRelease: (options: PublishAbsoluteAndroidReleaseOptions) => Promise<AbsoluteNativeReleasePublication>;
118
+ export declare const publishAbsoluteIosRelease: (options: {
119
+ allowUnsigned?: boolean;
120
+ appStoreConnect?: AbsoluteAppStoreConnectReleaseTarget;
121
+ channel?: string;
122
+ modulePath: string;
123
+ projectRoot: string;
124
+ release: {
125
+ metadata: AbsoluteIosReleaseMetadata;
126
+ releaseRoot: string;
127
+ };
128
+ signal?: AbortSignal;
129
+ }) => Promise<AbsoluteNativeReleasePublication>;
130
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare const runAbsoluteRemoteMacAgent: (args: string[]) => Promise<void>;
2
+ export declare const runAbsoluteRemoteMacAgentSafely: (args: string[]) => Promise<void>;
@@ -0,0 +1 @@
1
+ export {};