@brookesia/service 0.1.1
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 +52 -0
- package/dist/common/brookesia-host.d.ts +19 -0
- package/dist/common/brookesia-host.d.ts.map +1 -0
- package/dist/common/brookesia-host.js +16 -0
- package/dist/common/brookesia-host.js.map +1 -0
- package/dist/common/index.d.ts +5 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +6 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/rpc-json.d.ts +5 -0
- package/dist/common/rpc-json.d.ts.map +1 -0
- package/dist/common/rpc-json.js +12 -0
- package/dist/common/rpc-json.js.map +1 -0
- package/dist/common/service-rpc.d.ts +11 -0
- package/dist/common/service-rpc.d.ts.map +1 -0
- package/dist/common/service-rpc.js +23 -0
- package/dist/common/service-rpc.js.map +1 -0
- package/dist/hosts/index.d.ts +3 -0
- package/dist/hosts/index.d.ts.map +1 -0
- package/dist/hosts/index.js +5 -0
- package/dist/hosts/index.js.map +1 -0
- package/dist/hosts/nvs-host.d.ts +9 -0
- package/dist/hosts/nvs-host.d.ts.map +1 -0
- package/dist/hosts/nvs-host.js +120 -0
- package/dist/hosts/nvs-host.js.map +1 -0
- package/dist/hosts/wifi-host.d.ts +20 -0
- package/dist/hosts/wifi-host.d.ts.map +1 -0
- package/dist/hosts/wifi-host.js +165 -0
- package/dist/hosts/wifi-host.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/nvs/index.d.ts +6 -0
- package/dist/nvs/index.d.ts.map +1 -0
- package/dist/nvs/index.js +7 -0
- package/dist/nvs/index.js.map +1 -0
- package/dist/nvs/nvs-client.d.ts +41 -0
- package/dist/nvs/nvs-client.d.ts.map +1 -0
- package/dist/nvs/nvs-client.js +64 -0
- package/dist/nvs/nvs-client.js.map +1 -0
- package/dist/nvs/nvs-types.d.ts +9 -0
- package/dist/nvs/nvs-types.d.ts.map +1 -0
- package/dist/nvs/nvs-types.js +4 -0
- package/dist/nvs/nvs-types.js.map +1 -0
- package/dist/nvs/nvs.d.ts +46 -0
- package/dist/nvs/nvs.d.ts.map +1 -0
- package/dist/nvs/nvs.js +87 -0
- package/dist/nvs/nvs.js.map +1 -0
- package/dist/wifi/index.d.ts +5 -0
- package/dist/wifi/index.d.ts.map +1 -0
- package/dist/wifi/index.js +7 -0
- package/dist/wifi/index.js.map +1 -0
- package/dist/wifi/wifi-client.d.ts +43 -0
- package/dist/wifi/wifi-client.d.ts.map +1 -0
- package/dist/wifi/wifi-client.js +81 -0
- package/dist/wifi/wifi-client.js.map +1 -0
- package/dist/wifi/wifi-types.d.ts +28 -0
- package/dist/wifi/wifi-types.d.ts.map +1 -0
- package/dist/wifi/wifi-types.js +4 -0
- package/dist/wifi/wifi-types.js.map +1 -0
- package/dist/wifi/wifi.d.ts +41 -0
- package/dist/wifi/wifi.d.ts.map +1 -0
- package/dist/wifi/wifi.js +95 -0
- package/dist/wifi/wifi.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ServiceClientOptions, type ServiceHandle } from '../common/service-rpc.js';
|
|
2
|
+
import type { NvsEntryInfo, NvsKeyValueMap } from './nvs-types.js';
|
|
3
|
+
/** Registered name of the NVS service (`helper::NVS::get_name()`). */
|
|
4
|
+
export declare const NVS_SERVICE_NAME = "NVS";
|
|
5
|
+
/** Default namespace when omitted on the device (`helper::NVS::DEFAULT_NAMESPACE`). */
|
|
6
|
+
export declare const NVS_DEFAULT_NAMESPACE = "storage";
|
|
7
|
+
/** RPC function names exposed by `brookesia_service_nvs`. */
|
|
8
|
+
export declare const NVS_FUNCTIONS: {
|
|
9
|
+
readonly List: "List";
|
|
10
|
+
readonly Set: "Set";
|
|
11
|
+
readonly Get: "Get";
|
|
12
|
+
readonly Erase: "Erase";
|
|
13
|
+
};
|
|
14
|
+
export type { NvsEntryInfo, NvsKeyValueMap, NvsValue, NvsValueType } from './nvs-types.js';
|
|
15
|
+
export type NvsClientOptions = ServiceClientOptions;
|
|
16
|
+
export { type ServiceHandle as NvsHandle };
|
|
17
|
+
/** Check whether the NVS service is registered on the device. */
|
|
18
|
+
export declare function isNvsAvailable(options?: NvsClientOptions): boolean;
|
|
19
|
+
/** Bind the NVS service for the current app context. */
|
|
20
|
+
export declare function openNvs(options?: NvsClientOptions): ServiceHandle;
|
|
21
|
+
/** Release a handle from {@link openNvs}. */
|
|
22
|
+
export declare function closeNvs(handle: ServiceHandle, options?: NvsClientOptions): void;
|
|
23
|
+
/** List entries in a namespace. */
|
|
24
|
+
export declare function listNvs(handle: ServiceHandle, nspace?: string, options?: NvsClientOptions): NvsEntryInfo[];
|
|
25
|
+
/** Write key-value pairs into a namespace. */
|
|
26
|
+
export declare function setNvs(handle: ServiceHandle, nspace: string, keyValuePairs: NvsKeyValueMap, options?: NvsClientOptions): void;
|
|
27
|
+
/**
|
|
28
|
+
* Read keys from a namespace.
|
|
29
|
+
* When `keys` is omitted or empty, the device returns all pairs in the namespace.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getNvs(handle: ServiceHandle, nspace: string, keys?: string[], options?: NvsClientOptions): NvsKeyValueMap;
|
|
32
|
+
/**
|
|
33
|
+
* Erase keys from a namespace.
|
|
34
|
+
* When `keys` is omitted or empty, the device erases all pairs in the namespace.
|
|
35
|
+
*/
|
|
36
|
+
export declare function eraseNvs(handle: ServiceHandle, nspace: string, keys?: string[], options?: NvsClientOptions): void;
|
|
37
|
+
/**
|
|
38
|
+
* Run `fn` with an NVS handle that is always closed in a `finally` block.
|
|
39
|
+
*/
|
|
40
|
+
export declare function withNvs<T>(fn: (handle: ServiceHandle) => T | Promise<T>, options?: NvsClientOptions): Promise<T>;
|
|
41
|
+
//# sourceMappingURL=nvs-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nvs-client.d.ts","sourceRoot":"","sources":["../../src/nvs/nvs-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEnE,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,6DAA6D;AAC7D,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE3F,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD,OAAO,EAAE,KAAK,aAAa,IAAI,SAAS,EAAE,CAAC;AAE3C,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAElE;AAED,wDAAwD;AACxD,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAEjE;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAEhF;AAWD,mCAAmC;AACnC,wBAAgB,OAAO,CACrB,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,MAA8B,EACtC,OAAO,CAAC,EAAE,gBAAgB,GACzB,YAAY,EAAE,CAEhB;AAED,8CAA8C;AAC9C,wBAAgB,MAAM,CACpB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,cAAc,EAC7B,OAAO,CAAC,EAAE,gBAAgB,GACzB,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,MAAM,CACpB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAEhB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC7C,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */
|
|
2
|
+
/* SPDX-License-Identifier: Apache-2.0 */
|
|
3
|
+
import { callServiceFunction, closeService, isServiceAvailable, openService, resolveHost, } from '../common/service-rpc.js';
|
|
4
|
+
/** Registered name of the NVS service (`helper::NVS::get_name()`). */
|
|
5
|
+
export const NVS_SERVICE_NAME = 'NVS';
|
|
6
|
+
/** Default namespace when omitted on the device (`helper::NVS::DEFAULT_NAMESPACE`). */
|
|
7
|
+
export const NVS_DEFAULT_NAMESPACE = 'storage';
|
|
8
|
+
/** RPC function names exposed by `brookesia_service_nvs`. */
|
|
9
|
+
export const NVS_FUNCTIONS = {
|
|
10
|
+
List: 'List',
|
|
11
|
+
Set: 'Set',
|
|
12
|
+
Get: 'Get',
|
|
13
|
+
Erase: 'Erase',
|
|
14
|
+
};
|
|
15
|
+
/** Check whether the NVS service is registered on the device. */
|
|
16
|
+
export function isNvsAvailable(options) {
|
|
17
|
+
return isServiceAvailable(NVS_SERVICE_NAME, options);
|
|
18
|
+
}
|
|
19
|
+
/** Bind the NVS service for the current app context. */
|
|
20
|
+
export function openNvs(options) {
|
|
21
|
+
return openService(NVS_SERVICE_NAME, options);
|
|
22
|
+
}
|
|
23
|
+
/** Release a handle from {@link openNvs}. */
|
|
24
|
+
export function closeNvs(handle, options) {
|
|
25
|
+
closeService(handle, options);
|
|
26
|
+
}
|
|
27
|
+
function callNvs(handle, functionName, params, options) {
|
|
28
|
+
return callServiceFunction(resolveHost(options), handle, functionName, params);
|
|
29
|
+
}
|
|
30
|
+
/** List entries in a namespace. */
|
|
31
|
+
export function listNvs(handle, nspace = NVS_DEFAULT_NAMESPACE, options) {
|
|
32
|
+
return callNvs(handle, NVS_FUNCTIONS.List, { Nspace: nspace }, options);
|
|
33
|
+
}
|
|
34
|
+
/** Write key-value pairs into a namespace. */
|
|
35
|
+
export function setNvs(handle, nspace, keyValuePairs, options) {
|
|
36
|
+
callNvs(handle, NVS_FUNCTIONS.Set, { Nspace: nspace, KeyValuePairs: keyValuePairs }, options);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Read keys from a namespace.
|
|
40
|
+
* When `keys` is omitted or empty, the device returns all pairs in the namespace.
|
|
41
|
+
*/
|
|
42
|
+
export function getNvs(handle, nspace, keys, options) {
|
|
43
|
+
return callNvs(handle, NVS_FUNCTIONS.Get, { Nspace: nspace, Keys: keys ?? [] }, options);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Erase keys from a namespace.
|
|
47
|
+
* When `keys` is omitted or empty, the device erases all pairs in the namespace.
|
|
48
|
+
*/
|
|
49
|
+
export function eraseNvs(handle, nspace, keys, options) {
|
|
50
|
+
callNvs(handle, NVS_FUNCTIONS.Erase, { Nspace: nspace, Keys: keys ?? [] }, options);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Run `fn` with an NVS handle that is always closed in a `finally` block.
|
|
54
|
+
*/
|
|
55
|
+
export async function withNvs(fn, options) {
|
|
56
|
+
const handle = openNvs(options);
|
|
57
|
+
try {
|
|
58
|
+
return await fn(handle);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
closeNvs(handle, options);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=nvs-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nvs-client.js","sourceRoot":"","sources":["../../src/nvs/nvs-client.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,yCAAyC;AAEzC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,GAGZ,MAAM,0BAA0B,CAAC;AAGlC,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,uFAAuF;AACvF,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;CACN,CAAC;AAQX,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,OAA0B;IACvD,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,OAAO,CAAC,OAA0B;IAChD,OAAO,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,QAAQ,CAAC,MAAqB,EAAE,OAA0B;IACxE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,OAAO,CACd,MAAqB,EACrB,YAAoB,EACpB,MAA+B,EAC/B,OAA0B;IAE1B,OAAO,mBAAmB,CAAI,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,OAAO,CACrB,MAAqB,EACrB,SAAiB,qBAAqB,EACtC,OAA0B;IAE1B,OAAO,OAAO,CAAiB,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,MAAM,CACpB,MAAqB,EACrB,MAAc,EACd,aAA6B,EAC7B,OAA0B;IAE1B,OAAO,CAAO,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;AACtG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CACpB,MAAqB,EACrB,MAAc,EACd,IAAe,EACf,OAA0B;IAE1B,OAAO,OAAO,CAAiB,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAqB,EACrB,MAAc,EACd,IAAe,EACf,OAA0B;IAE1B,OAAO,CAAO,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5F,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,EAA6C,EAC7C,OAA0B;IAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type NvsValue = boolean | number | string;
|
|
2
|
+
export type NvsKeyValueMap = Record<string, NvsValue>;
|
|
3
|
+
export type NvsValueType = 'Bool' | 'Int' | 'String';
|
|
4
|
+
export type NvsEntryInfo = {
|
|
5
|
+
nspace: string;
|
|
6
|
+
key: string;
|
|
7
|
+
type: NvsValueType;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=nvs-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nvs-types.d.ts","sourceRoot":"","sources":["../../src/nvs/nvs-types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nvs-types.js","sourceRoot":"","sources":["../../src/nvs/nvs-types.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,yCAAyC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NVS module for JS apps — wraps brookesia_service_nvs (Set / Get / List / Erase).
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* import nvs from '@brookesia/service/nvs';
|
|
6
|
+
* if (nvs.available()) {
|
|
7
|
+
* nvs.set('config', 'theme', 'dark');
|
|
8
|
+
* brookesia.print(nvs.get('config', 'theme'));
|
|
9
|
+
* nvs.close();
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
import { listNvs, type NvsClientOptions } from './nvs-client.js';
|
|
13
|
+
import type { NvsKeyValueMap, NvsValue } from './nvs-types.js';
|
|
14
|
+
export type { NvsKeyValueMap, NvsValue };
|
|
15
|
+
export type NvsModuleOptions = NvsClientOptions;
|
|
16
|
+
/** For unit tests: inject mock host and reset cached handle. */
|
|
17
|
+
export declare function configure(options: NvsModuleOptions): void;
|
|
18
|
+
declare const nvs: {
|
|
19
|
+
/** Whether the device registered the NVS service. */
|
|
20
|
+
available(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Write one key (maps to service `Set`).
|
|
23
|
+
* @param ns Namespace (`Nspace`), default `storage`
|
|
24
|
+
*/
|
|
25
|
+
set(ns: string, key: string, value: NvsValue): void;
|
|
26
|
+
/**
|
|
27
|
+
* Write multiple keys in one call (service `Set` / `KeyValuePairs`).
|
|
28
|
+
*/
|
|
29
|
+
write(ns: string, pairs: NvsKeyValueMap): void;
|
|
30
|
+
/**
|
|
31
|
+
* Read one key (`string`) or many (`string[]`). Pass `[]` to read the whole namespace.
|
|
32
|
+
*/
|
|
33
|
+
get(ns: string, keyOrKeys: string | string[]): NvsValue | NvsKeyValueMap | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* List entry metadata (service `List`).
|
|
36
|
+
*/
|
|
37
|
+
list(ns?: string): ReturnType<typeof listNvs>;
|
|
38
|
+
/**
|
|
39
|
+
* Erase keys (service `Erase`). Omit `keys` or pass `[]` to clear the whole namespace.
|
|
40
|
+
*/
|
|
41
|
+
erase(ns: string, keys?: string[]): void;
|
|
42
|
+
/** Release the NVS service binding. */
|
|
43
|
+
close(): void;
|
|
44
|
+
};
|
|
45
|
+
export default nvs;
|
|
46
|
+
//# sourceMappingURL=nvs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nvs.d.ts","sourceRoot":"","sources":["../../src/nvs/nvs.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,OAAO,EAGP,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/D,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAyBhD,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAMzD;AAED,QAAA,MAAM,GAAG;IACP,qDAAqD;iBACxC,OAAO;IAIpB;;;OAGG;YACK,MAAM,OAAO,MAAM,SAAS,QAAQ,GAAG,IAAI;IAInD;;OAEG;cACO,MAAM,SAAS,cAAc,GAAG,IAAI;IAI9C;;OAEG;YACK,MAAM,aAAa,MAAM,GAAG,MAAM,EAAE,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS;IAOpF;;OAEG;cACO,MAAM,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC;IAI7C;;OAEG;cACO,MAAM,SAAS,MAAM,EAAE,GAAG,IAAI;IAIxC,uCAAuC;aAC9B,IAAI;CAOd,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
package/dist/nvs/nvs.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */
|
|
2
|
+
/* SPDX-License-Identifier: Apache-2.0 */
|
|
3
|
+
/**
|
|
4
|
+
* NVS module for JS apps — wraps brookesia_service_nvs (Set / Get / List / Erase).
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import nvs from '@brookesia/service/nvs';
|
|
8
|
+
* if (nvs.available()) {
|
|
9
|
+
* nvs.set('config', 'theme', 'dark');
|
|
10
|
+
* brookesia.print(nvs.get('config', 'theme'));
|
|
11
|
+
* nvs.close();
|
|
12
|
+
* }
|
|
13
|
+
*/
|
|
14
|
+
import { NVS_DEFAULT_NAMESPACE, closeNvs, eraseNvs, getNvs, isNvsAvailable, listNvs, openNvs, setNvs, } from './nvs-client.js';
|
|
15
|
+
const state = { handle: null, options: {} };
|
|
16
|
+
function namespace(name) {
|
|
17
|
+
const n = name?.trim();
|
|
18
|
+
return n && n.length > 0 ? n : NVS_DEFAULT_NAMESPACE;
|
|
19
|
+
}
|
|
20
|
+
function handle() {
|
|
21
|
+
if (state.handle !== null) {
|
|
22
|
+
return state.handle;
|
|
23
|
+
}
|
|
24
|
+
if (!isNvsAvailable(state.options)) {
|
|
25
|
+
throw new Error('NVS service is not available');
|
|
26
|
+
}
|
|
27
|
+
state.handle = openNvs(state.options);
|
|
28
|
+
return state.handle;
|
|
29
|
+
}
|
|
30
|
+
/** For unit tests: inject mock host and reset cached handle. */
|
|
31
|
+
export function configure(options) {
|
|
32
|
+
if (state.handle !== null) {
|
|
33
|
+
closeNvs(state.handle, state.options);
|
|
34
|
+
}
|
|
35
|
+
state.handle = null;
|
|
36
|
+
state.options = options;
|
|
37
|
+
}
|
|
38
|
+
const nvs = {
|
|
39
|
+
/** Whether the device registered the NVS service. */
|
|
40
|
+
available() {
|
|
41
|
+
return isNvsAvailable(state.options);
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* Write one key (maps to service `Set`).
|
|
45
|
+
* @param ns Namespace (`Nspace`), default `storage`
|
|
46
|
+
*/
|
|
47
|
+
set(ns, key, value) {
|
|
48
|
+
setNvs(handle(), namespace(ns), { [key]: value }, state.options);
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* Write multiple keys in one call (service `Set` / `KeyValuePairs`).
|
|
52
|
+
*/
|
|
53
|
+
write(ns, pairs) {
|
|
54
|
+
setNvs(handle(), namespace(ns), pairs, state.options);
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Read one key (`string`) or many (`string[]`). Pass `[]` to read the whole namespace.
|
|
58
|
+
*/
|
|
59
|
+
get(ns, keyOrKeys) {
|
|
60
|
+
if (typeof keyOrKeys === 'string') {
|
|
61
|
+
return getNvs(handle(), namespace(ns), [keyOrKeys], state.options)[keyOrKeys];
|
|
62
|
+
}
|
|
63
|
+
return getNvs(handle(), namespace(ns), keyOrKeys, state.options);
|
|
64
|
+
},
|
|
65
|
+
/**
|
|
66
|
+
* List entry metadata (service `List`).
|
|
67
|
+
*/
|
|
68
|
+
list(ns) {
|
|
69
|
+
return listNvs(handle(), namespace(ns), state.options);
|
|
70
|
+
},
|
|
71
|
+
/**
|
|
72
|
+
* Erase keys (service `Erase`). Omit `keys` or pass `[]` to clear the whole namespace.
|
|
73
|
+
*/
|
|
74
|
+
erase(ns, keys) {
|
|
75
|
+
eraseNvs(handle(), namespace(ns), keys ?? [], state.options);
|
|
76
|
+
},
|
|
77
|
+
/** Release the NVS service binding. */
|
|
78
|
+
close() {
|
|
79
|
+
if (state.handle === null) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
closeNvs(state.handle, state.options);
|
|
83
|
+
state.handle = null;
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
export default nvs;
|
|
87
|
+
//# sourceMappingURL=nvs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nvs.js","sourceRoot":"","sources":["../../src/nvs/nvs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** App-facing Wi-Fi module (default import). */
|
|
2
|
+
export { default, configure, type WifiModuleOptions, type WifiConnectApInfo, type WifiGeneralAction, type WifiGeneralState, type WifiScanApInfo, type WifiScanParams, type WifiSoftApParams, } from './wifi.js';
|
|
3
|
+
/** Low-level Wi-Fi service RPC helpers (advanced). */
|
|
4
|
+
export { WIFI_SERVICE_NAME, WIFI_FUNCTIONS, closeWifi, getConnectAp, getConnectedAps, getGeneralState, getSoftApParams, isWifiAvailable, openWifi, resetWifiData, setConnectAp, setScanParams, setSoftApParams, triggerGeneralAction, triggerScanStart, triggerScanStop, triggerSoftApProvisionStart, triggerSoftApProvisionStop, triggerSoftApStart, triggerSoftApStop, type WifiClientOptions, type WifiHandle, } from './wifi-client.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wifi/index.ts"],"names":[],"mappings":"AAGA,gDAAgD;AAChD,OAAO,EACL,OAAO,EACP,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,WAAW,CAAC;AAEnB,sDAAsD;AACtD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */
|
|
2
|
+
/* SPDX-License-Identifier: Apache-2.0 */
|
|
3
|
+
/** App-facing Wi-Fi module (default import). */
|
|
4
|
+
export { default, configure, } from './wifi.js';
|
|
5
|
+
/** Low-level Wi-Fi service RPC helpers (advanced). */
|
|
6
|
+
export { WIFI_SERVICE_NAME, WIFI_FUNCTIONS, closeWifi, getConnectAp, getConnectedAps, getGeneralState, getSoftApParams, isWifiAvailable, openWifi, resetWifiData, setConnectAp, setScanParams, setSoftApParams, triggerGeneralAction, triggerScanStart, triggerScanStop, triggerSoftApProvisionStart, triggerSoftApProvisionStop, triggerSoftApStart, triggerSoftApStop, } from './wifi-client.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wifi/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,yCAAyC;AAEzC,gDAAgD;AAChD,OAAO,EACL,OAAO,EACP,SAAS,GAQV,MAAM,WAAW,CAAC;AAEnB,sDAAsD;AACtD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,GAGlB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type ServiceClientOptions, type ServiceHandle } from '../common/service-rpc.js';
|
|
2
|
+
import type { WifiConnectApInfo, WifiGeneralAction, WifiGeneralState, WifiScanParams, WifiSoftApParams } from './wifi-types.js';
|
|
3
|
+
/** Registered name (`helper::Wifi::get_name()`). */
|
|
4
|
+
export declare const WIFI_SERVICE_NAME = "Wifi";
|
|
5
|
+
/** RPC function names (`helper::Wifi::FunctionId`). */
|
|
6
|
+
export declare const WIFI_FUNCTIONS: {
|
|
7
|
+
readonly TriggerGeneralAction: "TriggerGeneralAction";
|
|
8
|
+
readonly GetGeneralState: "GetGeneralState";
|
|
9
|
+
readonly SetConnectAp: "SetConnectAp";
|
|
10
|
+
readonly GetConnectAp: "GetConnectAp";
|
|
11
|
+
readonly GetConnectedAps: "GetConnectedAps";
|
|
12
|
+
readonly SetScanParams: "SetScanParams";
|
|
13
|
+
readonly TriggerScanStart: "TriggerScanStart";
|
|
14
|
+
readonly TriggerScanStop: "TriggerScanStop";
|
|
15
|
+
readonly SetSoftApParams: "SetSoftApParams";
|
|
16
|
+
readonly GetSoftApParams: "GetSoftApParams";
|
|
17
|
+
readonly TriggerSoftApStart: "TriggerSoftApStart";
|
|
18
|
+
readonly TriggerSoftApStop: "TriggerSoftApStop";
|
|
19
|
+
readonly TriggerSoftApProvisionStart: "TriggerSoftApProvisionStart";
|
|
20
|
+
readonly TriggerSoftApProvisionStop: "TriggerSoftApProvisionStop";
|
|
21
|
+
readonly ResetData: "ResetData";
|
|
22
|
+
};
|
|
23
|
+
export type WifiClientOptions = ServiceClientOptions;
|
|
24
|
+
export { type ServiceHandle as WifiHandle };
|
|
25
|
+
export declare function isWifiAvailable(options?: WifiClientOptions): boolean;
|
|
26
|
+
export declare function openWifi(options?: WifiClientOptions): ServiceHandle;
|
|
27
|
+
export declare function closeWifi(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
28
|
+
export declare function triggerGeneralAction(handle: ServiceHandle, action: WifiGeneralAction, options?: WifiClientOptions): void;
|
|
29
|
+
export declare function getGeneralState(handle: ServiceHandle, options?: WifiClientOptions): WifiGeneralState;
|
|
30
|
+
export declare function setConnectAp(handle: ServiceHandle, ssid: string, password?: string, options?: WifiClientOptions): void;
|
|
31
|
+
export declare function getConnectAp(handle: ServiceHandle, options?: WifiClientOptions): WifiConnectApInfo;
|
|
32
|
+
export declare function getConnectedAps(handle: ServiceHandle, options?: WifiClientOptions): WifiConnectApInfo[];
|
|
33
|
+
export declare function setScanParams(handle: ServiceHandle, params: WifiScanParams, options?: WifiClientOptions): void;
|
|
34
|
+
export declare function triggerScanStart(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
35
|
+
export declare function triggerScanStop(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
36
|
+
export declare function setSoftApParams(handle: ServiceHandle, params: WifiSoftApParams, options?: WifiClientOptions): void;
|
|
37
|
+
export declare function getSoftApParams(handle: ServiceHandle, options?: WifiClientOptions): WifiSoftApParams;
|
|
38
|
+
export declare function triggerSoftApStart(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
39
|
+
export declare function triggerSoftApStop(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
40
|
+
export declare function triggerSoftApProvisionStart(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
41
|
+
export declare function triggerSoftApProvisionStop(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
42
|
+
export declare function resetWifiData(handle: ServiceHandle, options?: WifiClientOptions): void;
|
|
43
|
+
//# sourceMappingURL=wifi-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wifi-client.d.ts","sourceRoot":"","sources":["../../src/wifi/wifi-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAEhB,cAAc,EACd,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC,uDAAuD;AACvD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;CAgBjB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,aAAa,IAAI,UAAU,EAAE,CAAC;AAE5C,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAEpE;AAED,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAEnE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAElF;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAElB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAK,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,iBAAiB,CAEnB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,iBAAiB,EAAE,CAErB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAEzF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAExF;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAElB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAE3F;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAE1F;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAEtF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */
|
|
2
|
+
/* SPDX-License-Identifier: Apache-2.0 */
|
|
3
|
+
import { callServiceFunction, closeService, isServiceAvailable, openService, resolveHost, } from '../common/service-rpc.js';
|
|
4
|
+
/** Registered name (`helper::Wifi::get_name()`). */
|
|
5
|
+
export const WIFI_SERVICE_NAME = 'Wifi';
|
|
6
|
+
/** RPC function names (`helper::Wifi::FunctionId`). */
|
|
7
|
+
export const WIFI_FUNCTIONS = {
|
|
8
|
+
TriggerGeneralAction: 'TriggerGeneralAction',
|
|
9
|
+
GetGeneralState: 'GetGeneralState',
|
|
10
|
+
SetConnectAp: 'SetConnectAp',
|
|
11
|
+
GetConnectAp: 'GetConnectAp',
|
|
12
|
+
GetConnectedAps: 'GetConnectedAps',
|
|
13
|
+
SetScanParams: 'SetScanParams',
|
|
14
|
+
TriggerScanStart: 'TriggerScanStart',
|
|
15
|
+
TriggerScanStop: 'TriggerScanStop',
|
|
16
|
+
SetSoftApParams: 'SetSoftApParams',
|
|
17
|
+
GetSoftApParams: 'GetSoftApParams',
|
|
18
|
+
TriggerSoftApStart: 'TriggerSoftApStart',
|
|
19
|
+
TriggerSoftApStop: 'TriggerSoftApStop',
|
|
20
|
+
TriggerSoftApProvisionStart: 'TriggerSoftApProvisionStart',
|
|
21
|
+
TriggerSoftApProvisionStop: 'TriggerSoftApProvisionStop',
|
|
22
|
+
ResetData: 'ResetData',
|
|
23
|
+
};
|
|
24
|
+
export function isWifiAvailable(options) {
|
|
25
|
+
return isServiceAvailable(WIFI_SERVICE_NAME, options);
|
|
26
|
+
}
|
|
27
|
+
export function openWifi(options) {
|
|
28
|
+
return openService(WIFI_SERVICE_NAME, options);
|
|
29
|
+
}
|
|
30
|
+
export function closeWifi(handle, options) {
|
|
31
|
+
closeService(handle, options);
|
|
32
|
+
}
|
|
33
|
+
function callWifi(handle, functionName, params, options) {
|
|
34
|
+
return callServiceFunction(resolveHost(options), handle, functionName, params);
|
|
35
|
+
}
|
|
36
|
+
export function triggerGeneralAction(handle, action, options) {
|
|
37
|
+
callWifi(handle, WIFI_FUNCTIONS.TriggerGeneralAction, { Action: action }, options);
|
|
38
|
+
}
|
|
39
|
+
export function getGeneralState(handle, options) {
|
|
40
|
+
return callWifi(handle, WIFI_FUNCTIONS.GetGeneralState, {}, options);
|
|
41
|
+
}
|
|
42
|
+
export function setConnectAp(handle, ssid, password = '', options) {
|
|
43
|
+
callWifi(handle, WIFI_FUNCTIONS.SetConnectAp, { SSID: ssid, Password: password }, options);
|
|
44
|
+
}
|
|
45
|
+
export function getConnectAp(handle, options) {
|
|
46
|
+
return callWifi(handle, WIFI_FUNCTIONS.GetConnectAp, {}, options);
|
|
47
|
+
}
|
|
48
|
+
export function getConnectedAps(handle, options) {
|
|
49
|
+
return callWifi(handle, WIFI_FUNCTIONS.GetConnectedAps, {}, options);
|
|
50
|
+
}
|
|
51
|
+
export function setScanParams(handle, params, options) {
|
|
52
|
+
callWifi(handle, WIFI_FUNCTIONS.SetScanParams, { Param: params }, options);
|
|
53
|
+
}
|
|
54
|
+
export function triggerScanStart(handle, options) {
|
|
55
|
+
callWifi(handle, WIFI_FUNCTIONS.TriggerScanStart, {}, options);
|
|
56
|
+
}
|
|
57
|
+
export function triggerScanStop(handle, options) {
|
|
58
|
+
callWifi(handle, WIFI_FUNCTIONS.TriggerScanStop, {}, options);
|
|
59
|
+
}
|
|
60
|
+
export function setSoftApParams(handle, params, options) {
|
|
61
|
+
callWifi(handle, WIFI_FUNCTIONS.SetSoftApParams, { Param: params }, options);
|
|
62
|
+
}
|
|
63
|
+
export function getSoftApParams(handle, options) {
|
|
64
|
+
return callWifi(handle, WIFI_FUNCTIONS.GetSoftApParams, {}, options);
|
|
65
|
+
}
|
|
66
|
+
export function triggerSoftApStart(handle, options) {
|
|
67
|
+
callWifi(handle, WIFI_FUNCTIONS.TriggerSoftApStart, {}, options);
|
|
68
|
+
}
|
|
69
|
+
export function triggerSoftApStop(handle, options) {
|
|
70
|
+
callWifi(handle, WIFI_FUNCTIONS.TriggerSoftApStop, {}, options);
|
|
71
|
+
}
|
|
72
|
+
export function triggerSoftApProvisionStart(handle, options) {
|
|
73
|
+
callWifi(handle, WIFI_FUNCTIONS.TriggerSoftApProvisionStart, {}, options);
|
|
74
|
+
}
|
|
75
|
+
export function triggerSoftApProvisionStop(handle, options) {
|
|
76
|
+
callWifi(handle, WIFI_FUNCTIONS.TriggerSoftApProvisionStop, {}, options);
|
|
77
|
+
}
|
|
78
|
+
export function resetWifiData(handle, options) {
|
|
79
|
+
callWifi(handle, WIFI_FUNCTIONS.ResetData, {}, options);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=wifi-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wifi-client.js","sourceRoot":"","sources":["../../src/wifi/wifi-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Matches `helper::Wifi::GeneralAction` enum strings on device. */
|
|
2
|
+
export type WifiGeneralAction = 'Init' | 'Deinit' | 'Start' | 'Stop' | 'Connect' | 'Disconnect';
|
|
3
|
+
/** Matches `helper::Wifi::GeneralState` enum strings returned by GetGeneralState. */
|
|
4
|
+
export type WifiGeneralState = 'Idle' | 'Initing' | 'Inited' | 'Deiniting' | 'Starting' | 'Started' | 'Stopping' | 'Connecting' | 'Connected' | 'Disconnecting';
|
|
5
|
+
export type WifiConnectApInfo = {
|
|
6
|
+
ssid: string;
|
|
7
|
+
password?: string;
|
|
8
|
+
is_connectable?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type WifiScanParams = {
|
|
11
|
+
ap_count?: number;
|
|
12
|
+
interval_ms?: number;
|
|
13
|
+
timeout_ms?: number;
|
|
14
|
+
};
|
|
15
|
+
export type WifiScanApInfo = {
|
|
16
|
+
ssid: string;
|
|
17
|
+
is_locked?: boolean;
|
|
18
|
+
rssi?: number;
|
|
19
|
+
signal_level?: string;
|
|
20
|
+
channel?: number;
|
|
21
|
+
};
|
|
22
|
+
export type WifiSoftApParams = {
|
|
23
|
+
ssid?: string;
|
|
24
|
+
password?: string;
|
|
25
|
+
max_connection?: number;
|
|
26
|
+
channel?: number;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=wifi-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wifi-types.d.ts","sourceRoot":"","sources":["../../src/wifi/wifi-types.ts"],"names":[],"mappings":"AAGA,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,SAAS,GACT,YAAY,CAAC;AAEjB,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,SAAS,GACT,QAAQ,GACR,WAAW,GACX,UAAU,GACV,SAAS,GACT,UAAU,GACV,YAAY,GACZ,WAAW,GACX,eAAe,CAAC;AAEpB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wifi-types.js","sourceRoot":"","sources":["../../src/wifi/wifi-types.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,yCAAyC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wi-Fi service module for JS apps — wraps `brookesia_service_wifi` RPC.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* import wifi from '@brookesia/service/wifi';
|
|
6
|
+
* if (wifi.available()) {
|
|
7
|
+
* await wifi.triggerGeneralAction('Init');
|
|
8
|
+
* wifi.setConnectAp('MySSID', 'secret');
|
|
9
|
+
* await wifi.triggerGeneralAction('Start');
|
|
10
|
+
* await wifi.triggerGeneralAction('Connect');
|
|
11
|
+
* brookesia.print(wifi.getGeneralState());
|
|
12
|
+
* wifi.close();
|
|
13
|
+
* }
|
|
14
|
+
*/
|
|
15
|
+
import { type WifiClientOptions } from './wifi-client.js';
|
|
16
|
+
import type { WifiConnectApInfo, WifiGeneralAction, WifiGeneralState, WifiScanApInfo, WifiScanParams, WifiSoftApParams } from './wifi-types.js';
|
|
17
|
+
export type { WifiConnectApInfo, WifiGeneralAction, WifiGeneralState, WifiScanApInfo, WifiScanParams, WifiSoftApParams, };
|
|
18
|
+
export type WifiModuleOptions = WifiClientOptions;
|
|
19
|
+
/** For unit tests: inject mock host and reset cached handle. */
|
|
20
|
+
export declare function configure(options: WifiModuleOptions): void;
|
|
21
|
+
declare const wifi: {
|
|
22
|
+
available(): boolean;
|
|
23
|
+
close(): void;
|
|
24
|
+
getGeneralState(): WifiGeneralState;
|
|
25
|
+
triggerGeneralAction(action: WifiGeneralAction): void;
|
|
26
|
+
setConnectAp(ssid: string, password?: string): void;
|
|
27
|
+
getConnectAp(): WifiConnectApInfo;
|
|
28
|
+
getConnectedAps(): WifiConnectApInfo[];
|
|
29
|
+
setScanParams(params: WifiScanParams): void;
|
|
30
|
+
triggerScanStart(): void;
|
|
31
|
+
triggerScanStop(): void;
|
|
32
|
+
setSoftApParams(params: WifiSoftApParams): void;
|
|
33
|
+
getSoftApParams(): WifiSoftApParams;
|
|
34
|
+
triggerSoftApStart(): void;
|
|
35
|
+
triggerSoftApStop(): void;
|
|
36
|
+
triggerSoftApProvisionStart(): void;
|
|
37
|
+
triggerSoftApProvisionStop(): void;
|
|
38
|
+
resetData(): void;
|
|
39
|
+
};
|
|
40
|
+
export default wifi;
|
|
41
|
+
//# sourceMappingURL=wifi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wifi.d.ts","sourceRoot":"","sources":["../../src/wifi/wifi.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAmBL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAoBlD,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAM1D;AAED,QAAA,MAAM,IAAI;iBACK,OAAO;aAIX,IAAI;uBAQM,gBAAgB;iCAIN,iBAAiB,GAAG,IAAI;uBAIlC,MAAM,sBAAkB,IAAI;oBAI/B,iBAAiB;uBAId,iBAAiB,EAAE;0BAIhB,cAAc,GAAG,IAAI;wBAIvB,IAAI;uBAIL,IAAI;4BAIC,gBAAgB,GAAG,IAAI;uBAI5B,gBAAgB;0BAIb,IAAI;yBAIL,IAAI;mCAIM,IAAI;kCAIL,IAAI;iBAIrB,IAAI;CAGlB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */
|
|
2
|
+
/* SPDX-License-Identifier: Apache-2.0 */
|
|
3
|
+
/**
|
|
4
|
+
* Wi-Fi service module for JS apps — wraps `brookesia_service_wifi` RPC.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import wifi from '@brookesia/service/wifi';
|
|
8
|
+
* if (wifi.available()) {
|
|
9
|
+
* await wifi.triggerGeneralAction('Init');
|
|
10
|
+
* wifi.setConnectAp('MySSID', 'secret');
|
|
11
|
+
* await wifi.triggerGeneralAction('Start');
|
|
12
|
+
* await wifi.triggerGeneralAction('Connect');
|
|
13
|
+
* brookesia.print(wifi.getGeneralState());
|
|
14
|
+
* wifi.close();
|
|
15
|
+
* }
|
|
16
|
+
*/
|
|
17
|
+
import { closeWifi, getConnectAp, getConnectedAps, getGeneralState, getSoftApParams, isWifiAvailable, openWifi, resetWifiData, setConnectAp, setScanParams, setSoftApParams, triggerGeneralAction, triggerScanStart, triggerScanStop, triggerSoftApProvisionStart, triggerSoftApProvisionStop, triggerSoftApStart, triggerSoftApStop, } from './wifi-client.js';
|
|
18
|
+
const state = { handle: null, options: {} };
|
|
19
|
+
function handle() {
|
|
20
|
+
if (state.handle !== null) {
|
|
21
|
+
return state.handle;
|
|
22
|
+
}
|
|
23
|
+
if (!isWifiAvailable(state.options)) {
|
|
24
|
+
throw new Error('Wi-Fi service is not available');
|
|
25
|
+
}
|
|
26
|
+
state.handle = openWifi(state.options);
|
|
27
|
+
return state.handle;
|
|
28
|
+
}
|
|
29
|
+
/** For unit tests: inject mock host and reset cached handle. */
|
|
30
|
+
export function configure(options) {
|
|
31
|
+
if (state.handle !== null) {
|
|
32
|
+
closeWifi(state.handle, state.options);
|
|
33
|
+
}
|
|
34
|
+
state.handle = null;
|
|
35
|
+
state.options = options;
|
|
36
|
+
}
|
|
37
|
+
const wifi = {
|
|
38
|
+
available() {
|
|
39
|
+
return isWifiAvailable(state.options);
|
|
40
|
+
},
|
|
41
|
+
close() {
|
|
42
|
+
if (state.handle === null) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
closeWifi(state.handle, state.options);
|
|
46
|
+
state.handle = null;
|
|
47
|
+
},
|
|
48
|
+
getGeneralState() {
|
|
49
|
+
return getGeneralState(handle(), state.options);
|
|
50
|
+
},
|
|
51
|
+
triggerGeneralAction(action) {
|
|
52
|
+
triggerGeneralAction(handle(), action, state.options);
|
|
53
|
+
},
|
|
54
|
+
setConnectAp(ssid, password = '') {
|
|
55
|
+
setConnectAp(handle(), ssid, password, state.options);
|
|
56
|
+
},
|
|
57
|
+
getConnectAp() {
|
|
58
|
+
return getConnectAp(handle(), state.options);
|
|
59
|
+
},
|
|
60
|
+
getConnectedAps() {
|
|
61
|
+
return getConnectedAps(handle(), state.options);
|
|
62
|
+
},
|
|
63
|
+
setScanParams(params) {
|
|
64
|
+
setScanParams(handle(), params, state.options);
|
|
65
|
+
},
|
|
66
|
+
triggerScanStart() {
|
|
67
|
+
triggerScanStart(handle(), state.options);
|
|
68
|
+
},
|
|
69
|
+
triggerScanStop() {
|
|
70
|
+
triggerScanStop(handle(), state.options);
|
|
71
|
+
},
|
|
72
|
+
setSoftApParams(params) {
|
|
73
|
+
setSoftApParams(handle(), params, state.options);
|
|
74
|
+
},
|
|
75
|
+
getSoftApParams() {
|
|
76
|
+
return getSoftApParams(handle(), state.options);
|
|
77
|
+
},
|
|
78
|
+
triggerSoftApStart() {
|
|
79
|
+
triggerSoftApStart(handle(), state.options);
|
|
80
|
+
},
|
|
81
|
+
triggerSoftApStop() {
|
|
82
|
+
triggerSoftApStop(handle(), state.options);
|
|
83
|
+
},
|
|
84
|
+
triggerSoftApProvisionStart() {
|
|
85
|
+
triggerSoftApProvisionStart(handle(), state.options);
|
|
86
|
+
},
|
|
87
|
+
triggerSoftApProvisionStop() {
|
|
88
|
+
triggerSoftApProvisionStop(handle(), state.options);
|
|
89
|
+
},
|
|
90
|
+
resetData() {
|
|
91
|
+
resetWifiData(handle(), state.options);
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
export default wifi;
|
|
95
|
+
//# sourceMappingURL=wifi.js.map
|