Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ca5110c
[js] Add serialization and domain layer
pujagani Aug 18, 2026
e8868ce
[js] Addressed comments
pujagani Aug 24, 2026
9b8fb89
Address comments
pujagani Aug 24, 2026
8bec29d
Address comments
pujagani Aug 24, 2026
4670a18
Decouple event listening logic and add placeholder
pujagani Aug 24, 2026
90c486e
[js][bidi] Add BiDi connection-level event subscription
pujagani Aug 25, 2026
4210ede
[js][bidi] Add BiDi connection-level event subscription
pujagani Aug 25, 2026
681e5e1
Merge branch 'bidi-domain-js' of https://github.com/pujagani/selenium…
pujagani Aug 25, 2026
8a7b11a
[js] Address comments
pujagani Aug 26, 2026
ff45d8a
[js] Address comments
pujagani Aug 27, 2026
4d7e6dd
Merge branch 'trunk' into bidi-domain-js
pujagani Aug 27, 2026
99ec74d
[js] Update the BiDi generator to match the low-level contract
pujagani Sep 2, 2026
713adfc
[js] Update the BiDi generator to match the low-level contract
pujagani Sep 2, 2026
0c050bf
Merge branch 'bidi-domain-js' of https://github.com/pujagani/selenium…
pujagani Sep 2, 2026
50586c4
Fix build
pujagani Sep 2, 2026
4a45dbd
Address comments
pujagani Sep 2, 2026
2361c90
[js] Address comments
pujagani Sep 3, 2026
d927b68
Merge branch 'trunk' into bidi-domain-js
pujagani Sep 8, 2026
7c5daf8
Merge branch 'trunk' into bidi-domain-js
pujagani Sep 23, 2026
83659e5
[js] Fix BiDi generator and BUILD after trunk merge
pujagani Sep 23, 2026
5a5e074
Merge branch 'trunk' into bidi-domain-js
pujagani Sep 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions javascript/selenium-webdriver/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@ js_binary(
name = "generate_bidi_script",
data = [
"generate_bidi.mjs",
"normalize_bidi_ast.mjs",
"project_bidi_schema.mjs",
":generated_note_local",
":license_header_local",
":node_modules/cddl",
":node_modules/cddl2ts",
],
entry_point = "generate_bidi.mjs",
)
Expand Down Expand Up @@ -98,7 +99,6 @@ generate_bidi_library(
"@ua_client_hints_dfns//file:dfns.json",
"@web_bluetooth_dfns//file:dfns.json",
],
enhancements_manifest = "//javascript/selenium-webdriver/private:bidi_enhancements_manifest",
extra_cddl_files = [
"@permissions_all_cddl//file:spec.cddl",
"@prefetch_all_cddl//file:spec.cddl",
Expand Down
8 changes: 5 additions & 3 deletions javascript/selenium-webdriver/bidi/serialization/enum.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,18 @@
// specific language governing permissions and limitations
// under the License.

export interface EnumEntry<T extends string> {
export interface EnumEntry<T extends string | number> {
readonly values: readonly T[]
includes(value: unknown): value is T
}

/**
* Registers a schema `enum` — a closed set of string values a field may hold.
* Registers a schema `enum` — a closed set of string or number values a field
* may hold (e.g. emulation.MediaFeaturesGrid, CSS's `grid` media feature, is
* spec'd as the integer 0 or 1, not a string).
* @param name Schema type name, e.g. 'network.InterceptPhase'.
* @param values The enum's valid values.
* @returns The registered entry, used by validateValue() to check a ref'd value's
* membership; also returned so a generator can build a discoverable constant from it.
*/
export function defineEnum<T extends string>(name: string, values: readonly T[]): EnumEntry<T>
export function defineEnum<T extends string | number>(name: string, values: readonly T[]): EnumEntry<T>
Comment thread
qodo-code-review[bot] marked this conversation as resolved.
Resolved
8 changes: 5 additions & 3 deletions javascript/selenium-webdriver/bidi/serialization/enum.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@
const { register } = require('./registry')

/**
* Registers a schema `enum` — a closed set of string values a field may hold.
* Registers a schema `enum` — a closed set of string or number values a field
* may hold (e.g. emulation.MediaFeaturesGrid, CSS's `grid` media feature, is
* spec'd as the integer 0 or 1, not a string).
* @param {string} name Schema type name, e.g. 'network.InterceptPhase'.
* @param {string[]} values The enum's valid values.
* @returns {{kind: 'enum', values: string[], includes: function(unknown): boolean}}
* @param {Array<string|number>} values The enum's valid values.
* @returns {{kind: 'enum', values: Array<string|number>, includes: function(unknown): boolean}}
* The registered entry, used by validateValue() to check a ref'd value's
* membership; also returned so a generator can build a discoverable constant from it.
*/
Expand Down
5 changes: 4 additions & 1 deletion javascript/selenium-webdriver/bidi/serialization/record.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ export interface TypeNode {
primitive?: string
const?: unknown
ref?: string
enum?: string[]
// Almost always string (e.g. network.SameSite), but the schema can also derive
// a numeric enum where the spec itself uses one — emulation.MediaFeaturesGrid
// (CSS's `grid` media feature) is spec'd as the integer 0 or 1, not a string.
enum?: (string | number)[]
list?: TypeNode
map?: TypeNode
union?: TypeNode[]
Expand Down
Loading