obsidian-integration-testing 6.0.0 → 6.2.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 +2 -0
- package/dist/lib/cjs/appium-session-config.cjs +9 -1
- package/dist/lib/cjs/appium-session-config.d.cts +22 -4
- package/dist/lib/cjs/device-readiness.cjs +43 -0
- package/dist/lib/cjs/device-readiness.d.cts +55 -0
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/transport-factory.cjs +90 -12
- package/dist/lib/cjs/transport-options.cjs +1 -1
- package/dist/lib/cjs/transport-options.d.cts +29 -0
- package/dist/lib/esm/appium-session-config.d.mts +22 -4
- package/dist/lib/esm/appium-session-config.mjs +7 -1
- package/dist/lib/esm/device-readiness.d.mts +55 -0
- package/dist/lib/esm/device-readiness.mjs +17 -0
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/transport-factory.mjs +97 -13
- package/dist/lib/esm/transport-options.d.mts +29 -0
- package/dist/obsidian-integration-testing-6.2.0.tgz +0 -0
- package/package.json +1 -1
- package/dist/obsidian-integration-testing-6.0.0.tgz +0 -0
|
@@ -1,16 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file
|
|
3
3
|
*
|
|
4
|
-
* Resolves tunable Appium session-establishment timeouts from
|
|
5
|
-
* options, applying defaults. Kept separate from the
|
|
6
|
-
* `transport-factory` so the default resolution stays
|
|
7
|
-
* factory itself needs a real Appium server and is excluded
|
|
4
|
+
* Resolves tunable Appium server-start and session-establishment timeouts from
|
|
5
|
+
* the transport options, applying defaults. Kept separate from the
|
|
6
|
+
* integration-only `transport-factory` so the default resolution stays
|
|
7
|
+
* unit-testable (the factory itself needs a real Appium server and is excluded
|
|
8
|
+
* from unit tests).
|
|
8
9
|
*/
|
|
9
10
|
import type { ObsidianAndroidAppiumTransportOptions } from './transport-options.mjs';
|
|
11
|
+
/**
|
|
12
|
+
* Default for {@link ObsidianAndroidAppiumTransportOptions.appiumStartTimeoutInMilliseconds}.
|
|
13
|
+
*/
|
|
14
|
+
export declare const DEFAULT_APPIUM_START_TIMEOUT_IN_MILLISECONDS = 180000;
|
|
10
15
|
/**
|
|
11
16
|
* Default for {@link ObsidianAndroidAppiumTransportOptions.sessionConnectionRetryTimeoutInMilliseconds}.
|
|
12
17
|
*/
|
|
13
18
|
export declare const DEFAULT_SESSION_CONNECTION_RETRY_TIMEOUT_IN_MILLISECONDS = 180000;
|
|
19
|
+
/**
|
|
20
|
+
* Resolves the auto-started Appium server readiness timeout, applying the
|
|
21
|
+
* default when the option is omitted.
|
|
22
|
+
*
|
|
23
|
+
* This governs how long the factory polls the auto-started Appium server's
|
|
24
|
+
* `/status` endpoint before giving up. Only relevant when the harness
|
|
25
|
+
* auto-starts the server; when attaching to an already-running server the wait
|
|
26
|
+
* is skipped entirely.
|
|
27
|
+
*
|
|
28
|
+
* @param options - The Android Appium transport options.
|
|
29
|
+
* @returns The timeout in milliseconds.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveAppiumStartTimeoutInMilliseconds(options: ObsidianAndroidAppiumTransportOptions): number;
|
|
14
32
|
/**
|
|
15
33
|
* Resolves the Appium session connection retry timeout, applying the default
|
|
16
34
|
* when the option is omitted.
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
const DEFAULT_APPIUM_START_TIMEOUT_IN_MILLISECONDS = 18e4;
|
|
1
2
|
const DEFAULT_SESSION_CONNECTION_RETRY_TIMEOUT_IN_MILLISECONDS = 18e4;
|
|
3
|
+
function resolveAppiumStartTimeoutInMilliseconds(options) {
|
|
4
|
+
return options.appiumStartTimeoutInMilliseconds ?? DEFAULT_APPIUM_START_TIMEOUT_IN_MILLISECONDS;
|
|
5
|
+
}
|
|
2
6
|
function resolveSessionConnectionRetryTimeoutInMilliseconds(options) {
|
|
3
7
|
return options.sessionConnectionRetryTimeoutInMilliseconds ?? DEFAULT_SESSION_CONNECTION_RETRY_TIMEOUT_IN_MILLISECONDS;
|
|
4
8
|
}
|
|
5
9
|
export {
|
|
10
|
+
DEFAULT_APPIUM_START_TIMEOUT_IN_MILLISECONDS,
|
|
6
11
|
DEFAULT_SESSION_CONNECTION_RETRY_TIMEOUT_IN_MILLISECONDS,
|
|
12
|
+
resolveAppiumStartTimeoutInMilliseconds,
|
|
7
13
|
resolveSessionConnectionRetryTimeoutInMilliseconds
|
|
8
14
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FwcGl1bS1zZXNzaW9uLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlc29sdmVzIHR1bmFibGUgQXBwaXVtIHNlcnZlci1zdGFydCBhbmQgc2Vzc2lvbi1lc3RhYmxpc2htZW50IHRpbWVvdXRzIGZyb21cbiAqIHRoZSB0cmFuc3BvcnQgb3B0aW9ucywgYXBwbHlpbmcgZGVmYXVsdHMuIEtlcHQgc2VwYXJhdGUgZnJvbSB0aGVcbiAqIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCBzbyB0aGUgZGVmYXVsdCByZXNvbHV0aW9uIHN0YXlzXG4gKiB1bml0LXRlc3RhYmxlICh0aGUgZmFjdG9yeSBpdHNlbGYgbmVlZHMgYSByZWFsIEFwcGl1bSBzZXJ2ZXIgYW5kIGlzIGV4Y2x1ZGVkXG4gKiBmcm9tIHVuaXQgdGVzdHMpLlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMubWpzJztcblxuLyoqXG4gKiBEZWZhdWx0IGZvciB7QGxpbmsgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucy5hcHBpdW1TdGFydFRpbWVvdXRJbk1pbGxpc2Vjb25kc30uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FQUElVTV9TVEFSVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDE4MDAwMDtcblxuLyoqXG4gKiBEZWZhdWx0IGZvciB7QGxpbmsgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucy5zZXNzaW9uQ29ubmVjdGlvblJldHJ5VGltZW91dEluTWlsbGlzZWNvbmRzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VTU0lPTl9DT05ORUNUSU9OX1JFVFJZX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMTgwMDAwO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBhdXRvLXN0YXJ0ZWQgQXBwaXVtIHNlcnZlciByZWFkaW5lc3MgdGltZW91dCwgYXBwbHlpbmcgdGhlXG4gKiBkZWZhdWx0IHdoZW4gdGhlIG9wdGlvbiBpcyBvbWl0dGVkLlxuICpcbiAqIFRoaXMgZ292ZXJucyBob3cgbG9uZyB0aGUgZmFjdG9yeSBwb2xscyB0aGUgYXV0by1zdGFydGVkIEFwcGl1bSBzZXJ2ZXInc1xuICogYC9zdGF0dXNgIGVuZHBvaW50IGJlZm9yZSBnaXZpbmcgdXAuIE9ubHkgcmVsZXZhbnQgd2hlbiB0aGUgaGFybmVzc1xuICogYXV0by1zdGFydHMgdGhlIHNlcnZlcjsgd2hlbiBhdHRhY2hpbmcgdG8gYW4gYWxyZWFkeS1ydW5uaW5nIHNlcnZlciB0aGUgd2FpdFxuICogaXMgc2tpcHBlZCBlbnRpcmVseS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBBbmRyb2lkIEFwcGl1bSB0cmFuc3BvcnQgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBcHBpdW1TdGFydFRpbWVvdXRJbk1pbGxpc2Vjb25kcyhcbiAgb3B0aW9uczogT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9uc1xuKTogbnVtYmVyIHtcbiAgcmV0dXJuIG9wdGlvbnMuYXBwaXVtU3RhcnRUaW1lb3V0SW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9BUFBJVU1fU1RBUlRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFM7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIEFwcGl1bSBzZXNzaW9uIGNvbm5lY3Rpb24gcmV0cnkgdGltZW91dCwgYXBwbHlpbmcgdGhlIGRlZmF1bHRcbiAqIHdoZW4gdGhlIG9wdGlvbiBpcyBvbWl0dGVkLlxuICpcbiAqIFRoaXMgZ292ZXJucyBob3cgbG9uZyBXZWJEcml2ZXJJTydzIGByZW1vdGUoKWAgd2FpdHMgZm9yIHRoZSBzZXNzaW9uIHRvIGJlXG4gKiBlc3RhYmxpc2hlZCAoVWlBdXRvbWF0b3IyIHNlcnZlciBpbnN0YWxsICsgYXBwIGxhdW5jaCkgXHUyMDE0IGVtcGlyaWNhbGx5IHRoZVxuICogbGFyZ2VzdCBhbmQgbW9zdCBsb2FkLXNlbnNpdGl2ZSBzdGVwIG9mIHRoZSBBbmRyb2lkIHNldHVwLCBzbyBpdCBpcyB0aGUga25vYlxuICogdG8gcmFpc2Ugd2hlbiBzZXNzaW9uIGVzdGFibGlzaG1lbnQgdGltZXMgb3V0IG9uIGEgY29sZCBvciBjb250ZW5kZWQgZW11bGF0b3IuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgQW5kcm9pZCBBcHBpdW0gdHJhbnNwb3J0IG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlU2Vzc2lvbkNvbm5lY3Rpb25SZXRyeVRpbWVvdXRJbk1pbGxpc2Vjb25kcyhcbiAgb3B0aW9uczogT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9uc1xuKTogbnVtYmVyIHtcbiAgcmV0dXJuIG9wdGlvbnMuc2Vzc2lvbkNvbm5lY3Rpb25SZXRyeVRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1NFU1NJT05fQ09OTkVDVElPTl9SRVRSWV9USU1FT1VUX0lOX01JTExJU0VDT05EUztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQWVPLE1BQU0sK0NBQStDO0FBS3JELE1BQU0sMkRBQTJEO0FBY2pFLFNBQVMsd0NBQ2QsU0FDUTtBQUNSLFNBQU8sUUFBUSxvQ0FBb0M7QUFDckQ7QUFjTyxTQUFTLG1EQUNkLFNBQ1E7QUFDUixTQUFPLFFBQVEsK0NBQStDO0FBQ2hFOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* Pure helpers for deciding when a freshly-booted Android emulator is idle
|
|
5
|
+
* enough to establish an Appium session, plus resolving the idle-wait timeout
|
|
6
|
+
* from the transport options. Kept separate from the integration-only
|
|
7
|
+
* `transport-factory` so the parsing and default resolution stay unit-testable
|
|
8
|
+
* (the factory itself needs a real emulator and is excluded from unit tests).
|
|
9
|
+
*
|
|
10
|
+
* `sys.boot_completed` fires *before* the guest is actually idle: package
|
|
11
|
+
* optimization (`dex2oat`) and system services keep churning after it, so a
|
|
12
|
+
* session established the instant it fires makes every one of UiAutomator2's
|
|
13
|
+
* serialized `adb` round-trips contend with that work and inflate ~3x. Gating
|
|
14
|
+
* the session on a later, quieter signal (the boot animation has stopped and
|
|
15
|
+
* the package manager is serving) lets it run against an idle guest instead.
|
|
16
|
+
*/
|
|
17
|
+
import type { ObsidianAndroidAppiumTransportOptions } from './transport-options.mjs';
|
|
18
|
+
/**
|
|
19
|
+
* Default for {@link ObsidianAndroidAppiumTransportOptions.deviceIdleTimeoutInMilliseconds}.
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_DEVICE_IDLE_TIMEOUT_IN_MILLISECONDS = 60000;
|
|
22
|
+
/**
|
|
23
|
+
* Parameters for {@link checkDeviceIdle}.
|
|
24
|
+
*/
|
|
25
|
+
export interface CheckDeviceIdleParams {
|
|
26
|
+
/** Raw stdout of `adb shell getprop init.svc.bootanim`. */
|
|
27
|
+
readonly bootAnimationProp: string;
|
|
28
|
+
/** Raw stdout of `adb shell cmd package list packages`. */
|
|
29
|
+
readonly packageListOutput: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Decides whether a booted emulator is idle enough to start an Appium session,
|
|
33
|
+
* from the raw output of the two probe commands.
|
|
34
|
+
*
|
|
35
|
+
* The guest is considered idle once the boot animation has stopped **and** the
|
|
36
|
+
* package manager is serving (it lists at least one package). Both are binary,
|
|
37
|
+
* later-than-`sys.boot_completed` signals, so this returns `true` well after the
|
|
38
|
+
* premature boot-completed flag but without any latency thresholds.
|
|
39
|
+
*
|
|
40
|
+
* @param params - The sampled probe outputs.
|
|
41
|
+
* @returns `true` when the guest is idle enough to proceed.
|
|
42
|
+
*/
|
|
43
|
+
export declare function checkDeviceIdle(params: CheckDeviceIdleParams): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Resolves the post-boot device-idle wait timeout, applying the default when
|
|
46
|
+
* the option is omitted.
|
|
47
|
+
*
|
|
48
|
+
* This bounds how long the factory waits for a freshly-started emulator to
|
|
49
|
+
* become idle (see {@link checkDeviceIdle}) before establishing the session. A
|
|
50
|
+
* value of `0` skips the wait entirely.
|
|
51
|
+
*
|
|
52
|
+
* @param options - The Android Appium transport options.
|
|
53
|
+
* @returns The timeout in milliseconds.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveDeviceIdleTimeoutInMilliseconds(options: ObsidianAndroidAppiumTransportOptions): number;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const BOOT_ANIMATION_STOPPED_STATE = "stopped";
|
|
2
|
+
const PACKAGE_LINE_PREFIX = "package:";
|
|
3
|
+
const DEFAULT_DEVICE_IDLE_TIMEOUT_IN_MILLISECONDS = 6e4;
|
|
4
|
+
function checkDeviceIdle(params) {
|
|
5
|
+
const isBootAnimationStopped = params.bootAnimationProp.trim() === BOOT_ANIMATION_STOPPED_STATE;
|
|
6
|
+
const isPackageManagerReady = params.packageListOutput.split("\n").some((line) => line.trim().startsWith(PACKAGE_LINE_PREFIX));
|
|
7
|
+
return isBootAnimationStopped && isPackageManagerReady;
|
|
8
|
+
}
|
|
9
|
+
function resolveDeviceIdleTimeoutInMilliseconds(options) {
|
|
10
|
+
return options.deviceIdleTimeoutInMilliseconds ?? DEFAULT_DEVICE_IDLE_TIMEOUT_IN_MILLISECONDS;
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
DEFAULT_DEVICE_IDLE_TIMEOUT_IN_MILLISECONDS,
|
|
14
|
+
checkDeviceIdle,
|
|
15
|
+
resolveDeviceIdleTimeoutInMilliseconds
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RldmljZS1yZWFkaW5lc3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIGhlbHBlcnMgZm9yIGRlY2lkaW5nIHdoZW4gYSBmcmVzaGx5LWJvb3RlZCBBbmRyb2lkIGVtdWxhdG9yIGlzIGlkbGVcbiAqIGVub3VnaCB0byBlc3RhYmxpc2ggYW4gQXBwaXVtIHNlc3Npb24sIHBsdXMgcmVzb2x2aW5nIHRoZSBpZGxlLXdhaXQgdGltZW91dFxuICogZnJvbSB0aGUgdHJhbnNwb3J0IG9wdGlvbnMuIEtlcHQgc2VwYXJhdGUgZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seVxuICogYHRyYW5zcG9ydC1mYWN0b3J5YCBzbyB0aGUgcGFyc2luZyBhbmQgZGVmYXVsdCByZXNvbHV0aW9uIHN0YXkgdW5pdC10ZXN0YWJsZVxuICogKHRoZSBmYWN0b3J5IGl0c2VsZiBuZWVkcyBhIHJlYWwgZW11bGF0b3IgYW5kIGlzIGV4Y2x1ZGVkIGZyb20gdW5pdCB0ZXN0cykuXG4gKlxuICogYHN5cy5ib290X2NvbXBsZXRlZGAgZmlyZXMgKmJlZm9yZSogdGhlIGd1ZXN0IGlzIGFjdHVhbGx5IGlkbGU6IHBhY2thZ2VcbiAqIG9wdGltaXphdGlvbiAoYGRleDJvYXRgKSBhbmQgc3lzdGVtIHNlcnZpY2VzIGtlZXAgY2h1cm5pbmcgYWZ0ZXIgaXQsIHNvIGFcbiAqIHNlc3Npb24gZXN0YWJsaXNoZWQgdGhlIGluc3RhbnQgaXQgZmlyZXMgbWFrZXMgZXZlcnkgb25lIG9mIFVpQXV0b21hdG9yMidzXG4gKiBzZXJpYWxpemVkIGBhZGJgIHJvdW5kLXRyaXBzIGNvbnRlbmQgd2l0aCB0aGF0IHdvcmsgYW5kIGluZmxhdGUgfjN4LiBHYXRpbmdcbiAqIHRoZSBzZXNzaW9uIG9uIGEgbGF0ZXIsIHF1aWV0ZXIgc2lnbmFsICh0aGUgYm9vdCBhbmltYXRpb24gaGFzIHN0b3BwZWQgYW5kXG4gKiB0aGUgcGFja2FnZSBtYW5hZ2VyIGlzIHNlcnZpbmcpIGxldHMgaXQgcnVuIGFnYWluc3QgYW4gaWRsZSBndWVzdCBpbnN0ZWFkLlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMubWpzJztcblxuY29uc3QgQk9PVF9BTklNQVRJT05fU1RPUFBFRF9TVEFURSA9ICdzdG9wcGVkJztcbmNvbnN0IFBBQ0tBR0VfTElORV9QUkVGSVggPSAncGFja2FnZTonO1xuXG4vKipcbiAqIERlZmF1bHQgZm9yIHtAbGluayBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zLmRldmljZUlkbGVUaW1lb3V0SW5NaWxsaXNlY29uZHN9LlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9ERVZJQ0VfSURMRV9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDYwMDAwO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjaGVja0RldmljZUlkbGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrRGV2aWNlSWRsZVBhcmFtcyB7XG4gIC8qKiBSYXcgc3Rkb3V0IG9mIGBhZGIgc2hlbGwgZ2V0cHJvcCBpbml0LnN2Yy5ib290YW5pbWAuICovXG4gIHJlYWRvbmx5IGJvb3RBbmltYXRpb25Qcm9wOiBzdHJpbmc7XG5cbiAgLyoqIFJhdyBzdGRvdXQgb2YgYGFkYiBzaGVsbCBjbWQgcGFja2FnZSBsaXN0IHBhY2thZ2VzYC4gKi9cbiAgcmVhZG9ubHkgcGFja2FnZUxpc3RPdXRwdXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWNpZGVzIHdoZXRoZXIgYSBib290ZWQgZW11bGF0b3IgaXMgaWRsZSBlbm91Z2ggdG8gc3RhcnQgYW4gQXBwaXVtIHNlc3Npb24sXG4gKiBmcm9tIHRoZSByYXcgb3V0cHV0IG9mIHRoZSB0d28gcHJvYmUgY29tbWFuZHMuXG4gKlxuICogVGhlIGd1ZXN0IGlzIGNvbnNpZGVyZWQgaWRsZSBvbmNlIHRoZSBib290IGFuaW1hdGlvbiBoYXMgc3RvcHBlZCAqKmFuZCoqIHRoZVxuICogcGFja2FnZSBtYW5hZ2VyIGlzIHNlcnZpbmcgKGl0IGxpc3RzIGF0IGxlYXN0IG9uZSBwYWNrYWdlKS4gQm90aCBhcmUgYmluYXJ5LFxuICogbGF0ZXItdGhhbi1gc3lzLmJvb3RfY29tcGxldGVkYCBzaWduYWxzLCBzbyB0aGlzIHJldHVybnMgYHRydWVgIHdlbGwgYWZ0ZXIgdGhlXG4gKiBwcmVtYXR1cmUgYm9vdC1jb21wbGV0ZWQgZmxhZyBidXQgd2l0aG91dCBhbnkgbGF0ZW5jeSB0aHJlc2hvbGRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgc2FtcGxlZCBwcm9iZSBvdXRwdXRzLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGd1ZXN0IGlzIGlkbGUgZW5vdWdoIHRvIHByb2NlZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0RldmljZUlkbGUocGFyYW1zOiBDaGVja0RldmljZUlkbGVQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgaXNCb290QW5pbWF0aW9uU3RvcHBlZCA9IHBhcmFtcy5ib290QW5pbWF0aW9uUHJvcC50cmltKCkgPT09IEJPT1RfQU5JTUFUSU9OX1NUT1BQRURfU1RBVEU7XG4gIGNvbnN0IGlzUGFja2FnZU1hbmFnZXJSZWFkeSA9IHBhcmFtcy5wYWNrYWdlTGlzdE91dHB1dFxuICAgIC5zcGxpdCgnXFxuJylcbiAgICAuc29tZSgobGluZSkgPT4gbGluZS50cmltKCkuc3RhcnRzV2l0aChQQUNLQUdFX0xJTkVfUFJFRklYKSk7XG4gIHJldHVybiBpc0Jvb3RBbmltYXRpb25TdG9wcGVkICYmIGlzUGFja2FnZU1hbmFnZXJSZWFkeTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgcG9zdC1ib290IGRldmljZS1pZGxlIHdhaXQgdGltZW91dCwgYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlblxuICogdGhlIG9wdGlvbiBpcyBvbWl0dGVkLlxuICpcbiAqIFRoaXMgYm91bmRzIGhvdyBsb25nIHRoZSBmYWN0b3J5IHdhaXRzIGZvciBhIGZyZXNobHktc3RhcnRlZCBlbXVsYXRvciB0b1xuICogYmVjb21lIGlkbGUgKHNlZSB7QGxpbmsgY2hlY2tEZXZpY2VJZGxlfSkgYmVmb3JlIGVzdGFibGlzaGluZyB0aGUgc2Vzc2lvbi4gQVxuICogdmFsdWUgb2YgYDBgIHNraXBzIHRoZSB3YWl0IGVudGlyZWx5LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIEFuZHJvaWQgQXBwaXVtIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZURldmljZUlkbGVUaW1lb3V0SW5NaWxsaXNlY29uZHMoXG4gIG9wdGlvbnM6IE9ic2lkaWFuQW5kcm9pZEFwcGl1bVRyYW5zcG9ydE9wdGlvbnNcbik6IG51bWJlciB7XG4gIHJldHVybiBvcHRpb25zLmRldmljZUlkbGVUaW1lb3V0SW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9ERVZJQ0VfSURMRV9USU1FT1VUX0lOX01JTExJU0VDT05EUztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQW1CQSxNQUFNLCtCQUErQjtBQUNyQyxNQUFNLHNCQUFzQjtBQUtyQixNQUFNLDhDQUE4QztBQXlCcEQsU0FBUyxnQkFBZ0IsUUFBd0M7QUFDdEUsUUFBTSx5QkFBeUIsT0FBTyxrQkFBa0IsS0FBSyxNQUFNO0FBQ25FLFFBQU0sd0JBQXdCLE9BQU8sa0JBQ2xDLE1BQU0sSUFBSSxFQUNWLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFLFdBQVcsbUJBQW1CLENBQUM7QUFDN0QsU0FBTywwQkFBMEI7QUFDbkM7QUFhTyxTQUFTLHVDQUNkLFNBQ1E7QUFDUixTQUFPLFFBQVEsbUNBQW1DO0FBQ3BEOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/lib/esm/library.mjs
CHANGED