diff --git a/README.md b/README.md index 3f0889a8..280abbc4 100644 --- a/README.md +++ b/README.md @@ -25,11 +25,15 @@ Every domain ships a JSON Schema under `generated/schema/`, and a top-level `gen Field shapes tell you how to *read* a stanza. They are not enough to *produce* one, nor to explain why a real client rejected the one you produced. So the IR also carries the rules WA Web's own parsers enforce — symmetric by construction, so they serve a parser and an emitter equally: - **Echo rules** (`assertions[].kind == "reference"`, and `referencePath` on a field) — an answer's `from` must equal the **request's** `to`, its `id` the request's `id`. `referencePath` is the argument list of WA's `attrStringFromReference`, so `["to"]` means "the request's `to`" and `["account","action"]` means "the `action` attribute of the request's `` child" — no name-matching required. An emitter that hardcodes `from="s.whatsapp.net"` makes every answer to a `g.us` request unparseable. -- **Pinned values** (`literalValue` on a field) — `type="admin"` on a successful promote, `matched="true"`/`"false"` on a blocklist update, `code=429` on a rate-limit error. `required` separates the two forms: a required pin is a hard discriminator (must be present and exact); an optional one is pinned only when present (may be omitted, must never be contradicted). +- **Pinned values** (`literalValue` on a field) — `type="admin"` on a successful promote, `matched="true"`/`"false"` on a blocklist update, `code=429` on a rate-limit error. `parserRequired` separates the two forms: a required pin is a hard discriminator (must be present and exact); an optional one is pinned only when present (may be omitted, must never be contradicted). - **The per-RPC error vocabulary** (`errorArms`, plus `errorEnvelope` for a two-level error) — a **closed** set, and it differs per RPC: `BatchGetGroupInfo` accepts `400 bad-request` and `429 rate-overlimit` and **rejects `404 item-not-found`**, even though that mixin exists and other RPCs use it. Each arm pairs the `code` with the `text` that must accompany it, so an emitter cannot combine one arm's code with another's text and produce a stanza no branch accepts; an arm that range-checks instead of pinning carries `codeMin`/`codeMax`. The variant's `kind` says which side is at fault (`client_error` / `server_error`), derived from the codes rather than from the parser's name. - **Response enums** (`enumRef` on a field) — the legal values behind an `attrStringEnum`, resolved the same way the request side already resolves them, instead of a bare `"type": "enum"`. - **The accessor's decoded type**, kept faithful: every `attr*` / `content*` spelling WA's parsers use is classified (a `maybeAttrX` derives from `attrX`, so a flavour cannot be covered for one spelling and missed for the other), and the JID flavours stay distinct — a PN user JID and a LID user JID are different identities for the same person and must never collapse into one `string`. - **Notification action unions** (`notifications[].actions`) — the payload inside the envelope. The `wireTag → actionType` mapping is **many-to-one** (`not_ephemeral` normalises into `ephemeral` with `duration: 0`, so branching on `not_ephemeral` is dead code) and field names are rebound (the disappearing-message timer arrives in `expiration`, but the action field is `duration`). Neither is derivable from the wire. +- **The out-of-set policy** (`unknownValue` on a field) — WA writes two things into one accessor name, and only the decoded type was ever published. `` is read with `attrEnumOrNullIfUnknown` and `` with `attrEnum`: same `"type": "enum"`, same `parserRequired`, and opposite behaviour on a value the enum does not list — one yields null and the parse continues, the other rejects the stanza. That is the difference between an enum a consumer may close and one that needs a fallback variant, and it used to be recoverable only by reading the WhatsApp method name in English. +- **What `parserRequired` does not say.** It means the accessor is `attrX` rather than `maybeAttrX` — the parser rejects the node without the value *at the point it reads it*. It is not "the wire always carries this": `polltype` is `parserRequired` and the client only reads it when the envelope's `type` is `poll`, 1 of 7 values. No domain models the branch condition, so the field is an upper bound on presence; a consumer that validated on the old name (`required`) rejected legitimate traffic. +- **One index for every enum** — `enums/index.json` is keyed by `(module, name)` and contains every enum any `enumRef` in the IR names, whether or not it is an `$InternalEnum`. `name` is **not** a key: `ENUM_FALSE_TRUE` is defined by eleven different modules, and `EventType`'s two definitions disagree on `valueKind`. Those generated names are flagged `syntheticName` — WA spells them out of their own members, so they are not type names. `bitPosition` marks an int enum whose values are shift distances (`1 << 2`, not `2`), recovered from the bundle shifting by a member. +- **What the extractor could not resolve says so.** `target` separates the group server (`g.us`) from one group's own JID (`group_jid`) — WA writes them from differently-named mixins and 26 of the 33 `w:g2` requests take the second — and says `unknown` when a `to` resolves to no fixed server, `unset` when nothing writes one, instead of all four reading `s.whatsapp.net`; a field with no accessor whose content is its children is `type: "node"` instead of `string`. Both counted in the manifest, both guarded. Note the contract version: this raised `schemaVersion` to **2.0.0**, and it is a real major bump rather than a cautious one. Four changes need action from a 1.x consumer: @@ -38,7 +42,15 @@ Note the contract version: this raised `schemaVersion` to **2.0.0**, and it is a - A response variant's `errorCodes` / `errorTexts` / `errorCodeMin` / `errorCodeMax` / `errorClass` are **gone**, replaced by `errorArms` (+ `errorEnvelope`). The flat lists were removed rather than kept alongside because they were unsound: two independent lists cannot say which code goes with which text, and 117 variants admitted combinations the parser rejects. - `ContentType` gained `integer`, the same closed-enum widening as the first item: a `` whose body is a number used to be reported as `string`. Live in the response children that read a big-endian integer content (`contentUint`). -Anything the extractor sees but cannot resolve structurally is counted under `manifest.diagnostics.iq.dropsByReason` rather than omitted, so "no constraint here" and "a constraint we failed to extract" never look alike. `manifest.diagnostics.iq.constraints` and `diagnostics.notif.actions` are floor-guarded: a WA refactor that hides one of these constructs fails the update instead of silently emptying a field. +**`schemaVersion` is now 3.0.0.** That release turned the same rule on this repository's own output: three fields were asserting things the extractor had not established, and each is fixed by widening or renaming an existing field rather than by adding an optional one. Three changes need action from a 2.x consumer: + +- `IqTarget` gained `group_jid`, `unset` and `unknown`, widening the value space of `request.target` / `target`. All 143 stanzas used to read `s.whatsapp.net` — the enum had nowhere to put "not resolved", and the rule that filled it keyed on a literal `to="g.us"` the builders had stopped writing. They now read 106 `s.whatsapp.net`, **26 `group_jid`** and **6 `g.us`** — the `w:g2` requests, which the IR addressed to the server — and 5 `unknown`: the four newsletter requests whose `to` is `WAWap.JID(newsletterId)`, plus `GetGroupProfilePictures`, which folds in a runtime router addressing either a group's JID or the group server. Migration: match the three new values. `g.us` is unchanged on the wire and still means the literal group server (create, leave, list); what moved out of it is `group_jid`, one group's own `@g.us`, which you must supply — sending the bare server there answers nothing. `unknown` means the addressee is a parameter of the call and the IR does not know it; `unset` that nothing writes a `to` at all and neither should you. A closed-enum consumer rejects the document until it handles them. +- `ParsedFieldType` gained `node`, and 617 fields that declared `string` while carrying children now declare it — `wAMOSubMixin`, `groupAddressingModeMixin` and the other folded-in payload mixins. Migration: a `node` is a container, not a value; read its `children` and generate no scalar for it. A consumer switching on `type` gets a value it has no arm for, which is better than the arm it had. +- A response field's `required` is now **`parserRequired`**. A rename rather than a doc fix, because the old name stated a wire fact the field never carried (see the note above). Migration: rename the key. Reading the old one yields `undefined`, which fails loudly instead of defaulting to "optional". + +Additive in 3.0.0, so a 2.x consumer can ignore them: `unknownValue` on enum-accessor fields; `syntheticName` / `bitPosition` in the enum catalog; and the catalog itself growing from 328 to 403 entries so every `enumRef` resolves against it — 75 of the 87 referenced `(module, name)` pairs were in no catalog before. + +Anything the extractor sees but cannot resolve structurally is counted under `manifest.diagnostics.iq.dropsByReason` rather than omitted, so "no constraint here" and "a constraint we failed to extract" never look alike. `manifest.diagnostics.iq.constraints`, `diagnostics.iq.targets.resolved` and `diagnostics.notif.actions` are floor-guarded: a WA refactor that hides one of these constructs fails the update instead of silently emptying a field. The unresolved states are guarded the other way — `scripts/lint-ir.py` pins the count of unaddressed requests and of unjudged accessors to an exact baseline. A rise means a constraint is being lost; a fall means extraction improved and the baseline owes an update. Either way the lint fails, so neither direction passes unnoticed. ## Quick start diff --git a/crates/wa-codegen/src/emit.rs b/crates/wa-codegen/src/emit.rs index 641b59db..91448267 100644 --- a/crates/wa-codegen/src/emit.rs +++ b/crates/wa-codegen/src/emit.rs @@ -58,7 +58,7 @@ pub(crate) fn emit_field_parse(f: &ParsedField, node_var: &str, indent: &str) -> // // The attribute path below has read the same flag since the round it was written; this // one asked only the accessor spelling, and no content accessor spells optionality. - let optional_leaf = !f.required; + let optional_leaf = !f.parser_required; let mut out = raw_length_check(Some(f), &name, &fmsg, indent, node_var); out.push(if optional_leaf { // …and it must DECODE what is there. `content_decoder_opt` ends its integer spelling @@ -150,7 +150,7 @@ pub(crate) fn emit_field_parse(f: &ParsedField, node_var: &str, indent: &str) -> // See `rust_field_type`: the accessor spelling and the IR's `required` are both // sources of optionality, and the two must agree or the initializer will not match the // declared field type. - let optional = wap::is_optional_method(method) || !f.required; + let optional = wap::is_optional_method(method) || !f.parser_required; // A declared band is part of what the accessor accepts, and this path decoded the number and // enforced nothing — so `attrIntRange("weight", -10000, 10000)` took a `-20000` the source // turns away. Harmless while every integer was `u64`, because the parse itself refused every @@ -501,7 +501,7 @@ fn raw_length_check( // present node away for having no payload — the child's absence and the payload's absence // read as one thing. Round twenty-five settled that a wrong length is not an absence; this // is the same sentence about whose absence is being asked. - let present = if leaf.required { + let present = if leaf.parser_required { "is_some_and" } else { "is_none_or" @@ -726,7 +726,7 @@ fn emit_relaxed_path_field(cf: &ParsedField, base: &str, indent: &str) -> Vec bool { - !cf.required && cf.source_path.as_deref().is_some_and(|p| !p.is_empty()) + !cf.parser_required && cf.source_path.as_deref().is_some_and(|p| !p.is_empty()) } fn descend_from( @@ -938,7 +938,7 @@ fn emit_struct_reads( out }); // Same two sources as the declared type, or the initializer will not match it. - if f.method == "maybeChild" || !f.required { + if f.method == "maybeChild" || !f.parser_required { // The child lookup and the leaf decode are two questions, and chaining them // into `get_optional_child(…).and_then(|n| n.read())` folds a PRESENT element // with no payload into the same `None` as an absent element. Round sixty drew @@ -979,7 +979,7 @@ fn emit_struct_reads( Some(c) => content_read_relaxed(c, &format!("{id}_node"), &fmsg), None => format!("{id}_node.{opt_read}"), }; - if leaf.is_some_and(|c| c.required) { + if leaf.is_some_and(|c| c.parser_required) { // A required leaf makes an absent payload a REJECTION, not an absence: the // accessor throws, and folding it to `None` would leave the field simply // missing from a response the parser turns away. @@ -1027,7 +1027,7 @@ fn emit_struct_reads( // first accepted everything the second wanted, which is exactly the shadowing // the gate exists to refuse. I added the signature entry last round without // checking every emitter path honoured it; this is the path that did not. - let demands = leaf.is_some_and(|c| c.required); + let demands = leaf.is_some_and(|c| c.parser_required); lines.push(match leaf.filter(|_| demands) { Some(c) => format!( "{indent}let {id} = {};", @@ -1213,7 +1213,7 @@ fn emit_struct_reads( lines, indent, ); - if f.required { + if f.parser_required { // Required child: a missing `` is a parse error. lines.push(format!( "{indent}let {cvar} = {base}.get_optional_child({})", @@ -2113,7 +2113,7 @@ mod tests { name: name.into(), wire_name: Some(name.into()), field_type: ParsedFieldType::Integer, - required, + parser_required: required, int_min: lo, int_max: hi, ..Default::default() @@ -2147,7 +2147,7 @@ mod tests { ), ] { let f: ParsedField = serde_json::from_value(serde_json::json!({ - "method": m, "name": "elementValue", "type": ty, "required": false + "method": m, "name": "elementValue", "type": ty, "parserRequired": false })) .expect("field"); let src = emit_field_parse(&f, "n", "").join("\n"); @@ -2157,7 +2157,7 @@ mod tests { // value the field holds, not one the accessor rejects. let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": false, "byteLength": 32 + "parserRequired": false, "byteLength": 32 })) .expect("field"); let src = emit_field_parse(&f, "n", "").join("\n"); @@ -2172,7 +2172,7 @@ mod tests { // emitted module would not compile. let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "contentInt", "name": "weight", "type": "integer", - "required": false, "intMin": -10 + "parserRequired": false, "intMin": -10 })) .expect("field"); let src = emit_field_parse(&f, "n", "").join("\n"); @@ -2182,7 +2182,7 @@ mod tests { ); let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "contentInt", "name": "weight", "type": "integer", - "required": false, "intMin": -10, "intMax": 10 + "parserRequired": false, "intMin": -10, "intMax": 10 })) .expect("field"); let src = emit_field_parse(&f, "n", "").join("\n"); @@ -2194,7 +2194,7 @@ mod tests { // required all along — the shape moved deliberately and this is the new spelling. let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, "byteLength": 32 + "parserRequired": true, "byteLength": 32 })) .expect("field"); let src = emit_field_parse(&f, "n", "").join("\n"); @@ -2215,7 +2215,7 @@ mod tests { fn a_required_content_leaf_demands_something_it_can_decode() { let src = |m: &str, ty: &str| { let f: ParsedField = serde_json::from_value(serde_json::json!({ - "method": m, "name": "elementValue", "type": ty, "required": true + "method": m, "name": "elementValue", "type": ty, "parserRequired": true })) .expect("field"); emit_field_parse(&f, "n", "").join("\n") @@ -2251,7 +2251,7 @@ mod tests { // The bound: an OPTIONAL leaf still hands back an `Option` and demands nothing. let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "contentInt", "name": "elementValue", "type": "integer", - "required": false + "parserRequired": false })) .expect("field"); let opt = emit_field_parse(&f, "n", "").join("\n"); @@ -2350,7 +2350,7 @@ mod tests { let src = |method: &str, required: bool| { let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": method, "name": "from", "wireName": "from", "type": "user_jid", - "required": required, "literalValue": "s.whatsapp.net" + "parserRequired": required, "literalValue": "s.whatsapp.net" })) .expect("field"); emit_field_parse(&f, "n", "").join("\n") @@ -2377,7 +2377,7 @@ mod tests { // attribute were not there — the collapse the relaxed integer had, one branch over. let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "attrUserJid", "name": "from", "wireName": "from", "type": "user_jid", - "required": false + "parserRequired": false })) .expect("field"); let relaxed = emit_field_parse(&f, "n", "").join("\n"); @@ -2389,7 +2389,7 @@ mod tests { // The bound: a `maybe…` accessor tolerates absence by design and is untouched. let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "maybeAttrUserJid", "name": "from", "wireName": "from", - "type": "user_jid", "required": false + "type": "user_jid", "parserRequired": false })) .expect("field"); let lenient = emit_field_parse(&f, "n", "").join("\n"); @@ -2400,7 +2400,7 @@ mod tests { // The bound: an unpinned JID is read exactly as before. let f: ParsedField = serde_json::from_value(serde_json::json!({ "method": "attrUserJid", "name": "from", "wireName": "from", "type": "user_jid", - "required": true + "parserRequired": true })) .expect("field"); let unpinned = emit_field_parse(&f, "n", "").join("\n"); @@ -2503,16 +2503,16 @@ mod tests { fn an_optional_same_node_wrapper_weakens_every_descendant() { let wrapper: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "result", "type": "string", - "required": false, "sameNode": true, + "parserRequired": false, "sameNode": true, "children": [ - {"method": "attrString", "name": "label", "type": "string", "required": true}, - {"method": "attrUserJid", "name": "jid", "type": "user_jid", "required": true}, + {"method": "attrString", "name": "label", "type": "string", "parserRequired": true}, + {"method": "attrUserJid", "name": "jid", "type": "user_jid", "parserRequired": true}, {"method": "contentString", "name": "elementValue", "type": "string", - "required": true}, - {"method": "child", "name": "detail", "type": "string", "required": true, + "parserRequired": true}, + {"method": "child", "name": "detail", "type": "string", "parserRequired": true, "children": [ {"method": "attrInt", "name": "count", "type": "integer", - "required": true} + "parserRequired": true} ]} ] })) @@ -2520,7 +2520,7 @@ mod tests { let flat = crate::fields::flatten_same_node(std::slice::from_ref(&wrapper)); for f in &flat { assert!( - !f.required, + !f.parser_required, "every lifted leaf is optional, not just the ones with a `maybe…` spelling: {f:?}" ); } @@ -2535,15 +2535,15 @@ mod tests { let detail = by("detail"); let kids = detail.children.as_deref().unwrap_or(&[]); assert!( - kids.iter().all(|c| !c.required), + kids.iter().all(|c| !c.parser_required), "a grandchild of the wrapper is no more required than a child: {kids:?}" ); // The bound: a REQUIRED same-node wrapper lifts its descendants unchanged. let mut required_wrapper = wrapper.clone(); - required_wrapper.required = true; + required_wrapper.parser_required = true; let flat = crate::fields::flatten_same_node(std::slice::from_ref(&required_wrapper)); assert!( - flat.iter().all(|f| f.required), + flat.iter().all(|f| f.parser_required), "nothing is weakened under a wrapper that is always there: {flat:?}" ); } @@ -2634,10 +2634,10 @@ mod tests { let child = |method: &str, required: bool| -> ParsedField { serde_json::from_value(serde_json::json!({ "method": "maybeChild", "name": "participant_count", "tag": "participant_count", - "type": "string", "required": false, + "type": "string", "parserRequired": false, "children": [{ "method": method, "name": "content", "type": "integer", - "required": required + "parserRequired": required }] })) .expect("child") @@ -2668,12 +2668,12 @@ mod tests { fn a_repeated_items_field_is_read_through_its_source_path() { let leaf: ParsedField = serde_json::from_value(serde_json::json!({ "method": "attrString", "name": "label", "wireName": "label", "type": "string", - "required": true, "sourcePath": ["background"] + "parserRequired": true, "sourcePath": ["background"] })) .expect("leaf"); let item: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "item", "tag": "item", "type": "string", - "required": true, "repeats": true, "children": [leaf] + "parserRequired": true, "repeats": true, "children": [leaf] })) .expect("item"); let src = emit_struct_parser(&[item], "n", "R", "", "P").join("\n"); @@ -2689,17 +2689,17 @@ mod tests { // …and the nested repeated loop reads its fields the same way. let inner_leaf: ParsedField = serde_json::from_value(serde_json::json!({ "method": "attrString", "name": "label", "wireName": "label", "type": "string", - "required": true, "sourcePath": ["background"] + "parserRequired": true, "sourcePath": ["background"] })) .expect("leaf"); let inner_item: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "part", "tag": "part", "type": "string", - "required": true, "repeats": true, "children": [inner_leaf] + "parserRequired": true, "repeats": true, "children": [inner_leaf] })) .expect("inner"); let outer: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "item", "tag": "item", "type": "string", - "required": true, "repeats": true, "children": [inner_item] + "parserRequired": true, "repeats": true, "children": [inner_item] })) .expect("outer"); let src = emit_struct_parser(&[outer], "n", "R", "", "P").join("\n"); @@ -2713,12 +2713,12 @@ mod tests { // rejection is one the descent introduced, since these reads had no descent before. let leaf: ParsedField = serde_json::from_value(serde_json::json!({ "method": "maybeAttrString", "name": "label", "wireName": "label", - "type": "string", "required": false, "sourcePath": ["meta"] + "type": "string", "parserRequired": false, "sourcePath": ["meta"] })) .expect("leaf"); let item: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "item", "tag": "item", "type": "string", - "required": true, "repeats": true, "children": [leaf] + "parserRequired": true, "repeats": true, "children": [leaf] })) .expect("item"); let src = emit_struct_parser(&[item], "n", "R", "", "P").join("\n"); @@ -2734,17 +2734,17 @@ mod tests { // …and the nested repeated loop reads a relaxed path the same way. let leaf: ParsedField = serde_json::from_value(serde_json::json!({ "method": "maybeAttrString", "name": "label", "wireName": "label", - "type": "string", "required": false, "sourcePath": ["meta"] + "type": "string", "parserRequired": false, "sourcePath": ["meta"] })) .expect("leaf"); let inner_item: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "part", "tag": "part", "type": "string", - "required": true, "repeats": true, "children": [leaf] + "parserRequired": true, "repeats": true, "children": [leaf] })) .expect("inner"); let outer: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "item", "tag": "item", "type": "string", - "required": true, "repeats": true, "children": [inner_item] + "parserRequired": true, "repeats": true, "children": [inner_item] })) .expect("outer"); let src = emit_struct_parser(&[outer], "n", "R", "", "P").join("\n"); @@ -2756,12 +2756,12 @@ mod tests { // The bound: a field with no source path is still read straight off the item. let leaf: ParsedField = serde_json::from_value(serde_json::json!({ "method": "attrString", "name": "label", "wireName": "label", "type": "string", - "required": true + "parserRequired": true })) .expect("leaf"); let item: ParsedField = serde_json::from_value(serde_json::json!({ "method": "child", "name": "item", "tag": "item", "type": "string", - "required": true, "repeats": true, "children": [leaf] + "parserRequired": true, "repeats": true, "children": [leaf] })) .expect("item"); let src = emit_struct_parser(&[item], "n", "R", "", "P").join("\n"); @@ -2780,10 +2780,10 @@ mod tests { let optional_child = |field: &str| -> ParsedField { serde_json::from_value(serde_json::json!({ "method": "maybeChild", "name": "item", "tag": "item", "type": "string", - "required": false, + "parserRequired": false, "children": [{ "method": "attrString", "name": field, "wireName": field, "type": "string", - "required": true, "sourcePath": ["meta"] + "parserRequired": true, "sourcePath": ["meta"] }] })) .expect("child") @@ -3607,9 +3607,9 @@ mod tests { // sharing the wrapper must read off it too, while a plain root attr stays // on `response`. let fields: Vec = serde_json::from_value(serde_json::json!([ - {"method":"attrString","name":"propsProtocol","wireName":"protocol","type":"string","required":true,"sourcePath":["props"]}, - {"method":"maybeAttrString","name":"propsHash","wireName":"hash","type":"string","required":false,"sourcePath":["props"]}, - {"method":"attrString","name":"type","wireName":"type","type":"string","required":true} + {"method":"attrString","name":"propsProtocol","wireName":"protocol","type":"string","parserRequired":true,"sourcePath":["props"]}, + {"method":"maybeAttrString","name":"propsHash","wireName":"hash","type":"string","parserRequired":false,"sourcePath":["props"]}, + {"method":"attrString","name":"type","wireName":"type","type":"string","parserRequired":true} ])) .unwrap(); let code = emit_response_parser(&fields, "Resp", " ", "Foo").join("\n"); @@ -3637,8 +3637,8 @@ mod tests { // child lives under , not the root, and its attrs // are read off that descended child. let fields: Vec = serde_json::from_value(serde_json::json!([ - {"method":"child","name":"detailRequest","tag":"request","type":"string","required":false,"sourcePath":["detail"], - "children":[{"method":"attrString","name":"foo","wireName":"foo","type":"string","required":true}]} + {"method":"child","name":"detailRequest","tag":"request","type":"string","parserRequired":false,"sourcePath":["detail"], + "children":[{"method":"attrString","name":"foo","wireName":"foo","type":"string","parserRequired":true}]} ])) .unwrap(); let code = emit_response_parser(&fields, "Resp", " ", "Foo").join("\n"); @@ -3663,8 +3663,8 @@ mod tests { // A `required:false` child (smax `optionalChildWithTag`) must not bail the whole // parse when absent: its fields read inside `if let Some` and default otherwise. let fields: Vec = serde_json::from_value(serde_json::json!([ - {"method":"child","name":"suspended","tag":"suspended","type":"string","required":false, - "children":[{"method":"attrInt","name":"value","wireName":"value","type":"integer","required":true}]} + {"method":"child","name":"suspended","tag":"suspended","type":"string","parserRequired":false, + "children":[{"method":"attrInt","name":"value","wireName":"value","type":"integer","parserRequired":true}]} ])) .unwrap(); let code = emit_response_parser(&fields, "Resp", " ", "Foo").join("\n"); @@ -3686,8 +3686,8 @@ mod tests { fn required_child_still_bails_when_absent() { // A `required:true` child keeps the fail-fast descent. let fields: Vec = serde_json::from_value(serde_json::json!([ - {"method":"child","name":"group","tag":"group","type":"string","required":true, - "children":[{"method":"attrString","name":"id","wireName":"id","type":"string","required":true}]} + {"method":"child","name":"group","tag":"group","type":"string","parserRequired":true, + "children":[{"method":"attrString","name":"id","wireName":"id","type":"string","parserRequired":true}]} ])) .unwrap(); let code = emit_response_parser(&fields, "Resp", " ", "Foo").join("\n"); @@ -3701,7 +3701,7 @@ mod tests { #[test] fn nested_source_path_descends_each_segment() { let fields: Vec = serde_json::from_value(serde_json::json!([ - {"method":"attrString","name":"nonceValue","wireName":"value","type":"string","required":true,"sourcePath":["detail","nonce"]} + {"method":"attrString","name":"nonceValue","wireName":"value","type":"string","parserRequired":true,"sourcePath":["detail","nonce"]} ])) .unwrap(); let code = emit_response_parser(&fields, "Resp", " ", "Foo").join("\n"); @@ -3725,8 +3725,8 @@ mod tests { // (smax `flattenedChildWithTag`), so it must be descended, not read off the // root (else the attrs would always parse as None). let fields: Vec = serde_json::from_value(serde_json::json!([ - {"method":"maybeAttrString","name":"propsAbKey","wireName":"ab_key","type":"string","required":false,"sourcePath":["props"]}, - {"method":"maybeAttrString","name":"propsHash","wireName":"hash","type":"string","required":false,"sourcePath":["props"]} + {"method":"maybeAttrString","name":"propsAbKey","wireName":"ab_key","type":"string","parserRequired":false,"sourcePath":["props"]}, + {"method":"maybeAttrString","name":"propsHash","wireName":"hash","type":"string","parserRequired":false,"sourcePath":["props"]} ])) .unwrap(); let code = emit_response_parser(&fields, "Resp", " ", "Foo").join("\n"); @@ -3750,8 +3750,8 @@ mod tests { // wrapper. When flattened the wrapper disappears, so its required attr child // must be weakened to an optional read (the wrapper may be absent). let fields: Vec = serde_json::from_value(serde_json::json!([ - {"method":"","name":"displayNameMixin","type":"string","required":false,"sameNode":true, - "children":[{"method":"attrString","name":"displayName","wireName":"display_name","type":"string","required":true}]} + {"method":"","name":"displayNameMixin","type":"string","parserRequired":false,"sameNode":true, + "children":[{"method":"attrString","name":"displayName","wireName":"display_name","type":"string","parserRequired":true}]} ])) .unwrap(); // Struct field is Option<…>. @@ -4009,7 +4009,7 @@ mod tests { method: if required { "child" } else { "maybeChild" }.into(), name: "weight".into(), wire_name: Some("weight".into()), - required, + parser_required: required, children: Some(vec![leaf]), ..Default::default() } @@ -4081,7 +4081,7 @@ mod tests { // The bound on that third case: when the LEAF itself is optional, an empty element is a // value the field can hold and only a payload that IS there has to satisfy the band. let mut leaf = bounded_leaf(Some(-10), Some(10)); - leaf.required = false; + leaf.parser_required = false; let src = emit_struct_parser(&[child_over(leaf, false)], "n", "R", "", "P").join("\n"); assert!( !src.contains("has no content"), @@ -4170,7 +4170,7 @@ mod tests { name: "elementValue".into(), wire_name: Some("elementValue".into()), field_type: ParsedFieldType::Bytes, - required: true, + parser_required: true, byte_length: len, byte_min: lo, byte_max: hi, @@ -4194,7 +4194,7 @@ mod tests { method: method.into(), name: "elementValue".into(), wire_name: Some("elementValue".into()), - required: true, + parser_required: true, byte_length: len, ..Default::default() }; @@ -4219,7 +4219,7 @@ mod tests { method: "contentUint".into(), name: "elementValue".into(), wire_name: Some("elementValue".into()), - required: true, + parser_required: true, byte_length: Some(8), ..Default::default() }; @@ -4412,7 +4412,7 @@ mod tests { ); f.method = "attrEnum".into(); - f.required = true; + f.parser_required = true; let src = emit_field_parse(&f, "n", "").join("\n"); assert!( src.contains(r#"matches!(reason.as_str(), "a" | "b")"#), @@ -4460,7 +4460,7 @@ mod tests { ); f.method = "maybeAttrString".into(); - f.required = false; + f.parser_required = false; let src = emit_field_parse(&f, "n", "").join("\n"); assert!( src.contains(r#"matches!(r#type.as_deref(), None | Some("result"))"#), diff --git a/crates/wa-codegen/src/enums_export.rs b/crates/wa-codegen/src/enums_export.rs index 9956408e..d8ffdd86 100644 --- a/crates/wa-codegen/src/enums_export.rs +++ b/crates/wa-codegen/src/enums_export.rs @@ -46,11 +46,30 @@ pub fn generate_enums(ir: &EnumsIr) -> String { fn emit_enum(out: &mut String, d: &InternalEnumDef, const_name: &str) { // The value type (`i64` vs `&'static str`) already signals int-code vs - // wire-string, so the const needs no doc comment beyond its name. + // wire-string, so the const needs no doc comment beyond its name — except for the two + // things the type cannot say. let ty = match d.value_kind { EnumValueKind::Int => "i64", EnumValueKind::String => "&'static str", }; + // A bit-position table looks exactly like a code table here: three `i64`s. Emitting + // the raw value with nothing said would put back the ambiguity the IR flag removes — + // `HID_FAILED_DECRYPT` is position 2 and reaches the wire as 4. The position is what + // is published (shifting it here would contradict `enums/index.json`), so the note + // carries the shift and a `_BITS` companion applies it. + if d.bit_position { + out.push_str( + " /// **Bit positions, not wire values**: a variant's value is the shift\n\ + \x20 /// distance, so what goes on the wire is `1 << value`. See the\n\ + \x20 /// `_BITS` table below for the masks.\n", + ); + } + if d.synthetic_name { + out.push_str( + " /// The name is WA's build-generated one, spelled from the variants\n\ + \x20 /// themselves — not descriptive, and not unique across modules.\n", + ); + } out.push_str(&format!( " pub const {const_name}: &[(&str, {ty})] = &[\n" )); @@ -64,6 +83,41 @@ fn emit_enum(out: &mut String, d: &InternalEnumDef, const_name: &str) { out.push_str(&format!(" ({:?}, {value}),\n", v.name)); } out.push_str(" ];\n"); + if d.bit_position { + out.push_str(&format!( + " /// The same variants as `{const_name}`, with the shift applied — the\n\ + \x20 /// values that actually go on the wire. The client computes these with\n\ + \x20 /// JavaScript's 32-bit `1 << n`, so a position outside `0..=30` has no\n\ + \x20 /// distinct positive mask and is listed as a comment instead of a\n\ + \x20 /// number; `{const_name}` above still carries its position.\n\ + \x20 pub const {const_name}_BITS: &[(&str, i64)] = &[\n" + )); + for v in &d.variants { + // The mask is whatever the CLIENT computes, and the client computes it in + // JavaScript: `t |= 1 << ReceiptModeBitPosition.ORPHAN`, where `<<` is a + // 32-bit SIGNED operation. So the arithmetic to mirror is not `1i64 << i`. + // Past 30 that shift stops describing the client at all — JS gives + // `1 << 31 === -2147483648` and `1 << 32 === 1`, wrapping the count mod 32, + // so an i64 shift would publish a mask for a bit the client never sets (and + // at 63 would hand back `i64::MIN`, a negative "mask", which `checked_shl` + // does not catch because the shift COUNT is in range). + // + // The position comes from the bundle as a bare `i64` and nothing upstream + // bounds it, so anything outside 0..=30 gets the note rather than a number. + // The positions table above still carries the raw value: the fact is not + // hidden, only the mask this generator cannot honestly derive. + let Scalar::Int(i) = v.value else { continue }; + match i { + 0..=30 => out.push_str(&format!(" ({:?}, {}),\n", v.name, 1i64 << i)), + _ => out.push_str(&format!( + " // {:?}: position {i} is outside the 0..=30 a 32-bit `1 << n` \ + gives a distinct positive mask for — see enums/index.json.\n", + v.name + )), + } + } + out.push_str(" ];\n"); + } } #[cfg(test)] @@ -77,18 +131,17 @@ mod tests { kind: EnumValueKind, vs: &[(&str, Scalar)], ) -> InternalEnumDef { - InternalEnumDef { - name: name.into(), - module: module.into(), - value_kind: kind, - variants: vs - .iter() + InternalEnumDef::new( + name.into(), + module.into(), + kind, + vs.iter() .map(|(n, v)| EnumVariant { name: (*n).into(), value: v.clone(), }) .collect(), - } + ) } #[test] @@ -118,6 +171,52 @@ mod tests { assert!(code.contains("(\"STALE\", 421)")); } + #[test] + fn a_bit_position_table_carries_only_masks_the_client_computes() { + let mut d = def( + "M", + "Bits", + EnumValueKind::Int, + &[ + ("LOW", Scalar::Int(0)), + ("TOP", Scalar::Int(30)), + // JS `1 << 31` is -2147483648 and `1 << 32` is 1: past 30 the client's + // 32-bit shift stops producing a distinct positive mask, and 63 is where + // an i64 shift silently hands back `i64::MIN` — a negative "mask" that + // `checked_shl` accepts because the shift count itself is in range. + ("SIGN", Scalar::Int(31)), + ("WRAPS", Scalar::Int(32)), + ("I64_SIGN", Scalar::Int(63)), + ("ABSURD", Scalar::Int(9999)), + ], + ); + d.bit_position = true; + let code = generate_enums(&EnumsIr { + wa_version: "1.0".into(), + enums: vec![d], + }); + // The positions themselves are published either way — the bundle said them. + for name in ["LOW", "TOP", "SIGN", "WRAPS", "I64_SIGN", "ABSURD"] { + assert!( + code.contains(&format!("({name:?}, ")) || code.contains(&format!("// {name:?}")) + ); + } + assert!(code.contains("pub const BITS_BITS: &[(&str, i64)]")); + assert!(code.contains("(\"LOW\", 1),")); + assert!(code.contains("(\"TOP\", 1073741824),")); + // …but no mask is invented for a position the client's `<<` cannot express. + for name in ["SIGN", "WRAPS", "I64_SIGN", "ABSURD"] { + assert!( + code.contains(&format!("// {name:?}: position")), + "{name} must get the note, not a number" + ); + } + assert!( + !code.contains("-2147483648") && !code.contains("-9223372036854775808"), + "a negative mask is never published" + ); + } + #[test] fn dedups_colliding_const_names() { let ir = EnumsIr { diff --git a/crates/wa-codegen/src/fields.rs b/crates/wa-codegen/src/fields.rs index 576ba890..eeb0b298 100644 --- a/crates/wa-codegen/src/fields.rs +++ b/crates/wa-codegen/src/fields.rs @@ -233,7 +233,7 @@ pub(crate) fn rust_field_type(field: &ParsedField) -> &'static str { // artifact are `attrUserJid` with `required: false`, and deriving from the name alone // declared them `Jid` and emitted `ok_or_else("missing …")` — rejecting responses the // IR explicitly says may omit them. - if wap::is_optional_method(&field.method) || !field.required { + if wap::is_optional_method(&field.method) || !field.parser_required { match base { "u64" => "Option", "i64" => "Option", @@ -345,7 +345,7 @@ fn flatten_same_node_inner(fields: &[ParsedField], force_optional: bool) -> Vec< let mut out = Vec::new(); for f in fields { if f.same_node { - let child_optional = force_optional || !f.required; + let child_optional = force_optional || !f.parser_required; out.extend(flatten_same_node_inner( f.children.as_deref().unwrap_or(&[]), child_optional, @@ -380,7 +380,7 @@ fn flatten_same_node_inner(fields: &[ParsedField], force_optional: bool) -> Vec< /// serve. The comment here called that "a rare over-strictness in the reference codegen"; it was /// this function's own. fn weaken_attr_to_optional(f: &mut ParsedField) { - f.required = false; + f.parser_required = false; let weakened = match f.method.as_str() { wap::ATTR_STRING => Some(wap::MAYBE_ATTR_STRING), wap::ATTR_INT => Some(wap::MAYBE_ATTR_INT), @@ -452,7 +452,7 @@ pub(crate) fn collect_response_fields( // accessor, so a `child` the scanner had relaxed still emitted a mandatory // field — and the requiredness work in this branch relaxed 27 of them, none of // which reached the generated decoder for a content-only child. - let wrapped = if f.method == "maybeChild" || !f.required { + let wrapped = if f.method == "maybeChild" || !f.parser_required { format!("Option<{base}>") } else { base.to_string() diff --git a/crates/wa-codegen/src/lib.rs b/crates/wa-codegen/src/lib.rs index cbc4b713..3caaab2d 100644 --- a/crates/wa-codegen/src/lib.rs +++ b/crates/wa-codegen/src/lib.rs @@ -260,7 +260,7 @@ mod tests { method: method.into(), name: name.into(), field_type: ty, - required: true, + parser_required: true, ..Default::default() } } @@ -331,7 +331,7 @@ mod tests { let mut c = parsed("child", "detail", ParsedFieldType::String); c.tag = Some("detail".into()); let mut leaf = parsed("contentString", "content", ParsedFieldType::String); - leaf.required = leaf_required; + leaf.parser_required = leaf_required; c.children = Some(vec![leaf]); c }; @@ -632,7 +632,7 @@ mod tests { // conditional makes a field optional without renaming its // accessor, and 108 such JID fields are live in the artifact. ParsedField { - required: false, + parser_required: false, ..parsed("attrUserJid", "to", ParsedFieldType::UserJid) }, ], @@ -821,14 +821,14 @@ mod tests { module_name: "WAWebAck".into(), namespace: "w:x".into(), iq_type: IqType::Set, - target: IqTarget::Group, + target: IqTarget::GroupServer, parser_name: "p".into(), exported_function: None, all_exports: vec![], request: IqRequestDef { namespace: "w:x".into(), iq_type: IqType::Set, - target: IqTarget::Group, + target: IqTarget::GroupServer, children: vec![], }, response: ParsedResponse { diff --git a/crates/wa-codegen/src/notif_export.rs b/crates/wa-codegen/src/notif_export.rs index 89d7b485..90e27ec7 100644 --- a/crates/wa-codegen/src/notif_export.rs +++ b/crates/wa-codegen/src/notif_export.rs @@ -292,8 +292,33 @@ const FIELD_TYPE_VARIANTS: &[&str] = &[ "JidTyped", "Bool", "Union", + "Node", ]; +/// The out-of-set policy as the generated table spells it. +/// +/// A `bool` rather than a mirrored enum: the reference table only has to answer "may I +/// close this enum", and `Reject` vs `Null` is exactly that question. `Unclassified` +/// answers it with `None` — the same as "no table" — because a policy nobody judged is +/// not a licence to close anything. +/// +/// `has_values` is the other half, and it is not a detail: this field's whole meaning is +/// "what happens to a value outside `enum_values`", so with that table empty there is no +/// set for the answer to be about. The one action it applies to is `create.reason`, whose +/// handler recognizes several reasons the action extractor could not name — publishing +/// `Some(false)` there described every possible reason as outside an empty set. Same rule +/// as `attrJidEnum` in `wa_ir::wap`: no policy without the set it judges. +fn rejects_unknown_value(p: Option, has_values: bool) -> &'static str { + if !has_values { + return "None"; + } + match p { + Some(wa_ir::UnknownValuePolicy::Reject) => "Some(true)", + Some(wa_ir::UnknownValuePolicy::Null) => "Some(false)", + Some(wa_ir::UnknownValuePolicy::Unclassified) | None => "None", + } +} + /// The generated variant name for an IR field type. Exhaustive on purpose; see /// [`FIELD_TYPE_VARIANTS`]. fn field_type_variant(t: wa_ir::ParsedFieldType) -> &'static str { @@ -318,6 +343,7 @@ fn field_type_variant(t: wa_ir::ParsedFieldType) -> &'static str { T::JidTyped => "JidTyped", T::Bool => "Bool", T::Union => "Union", + T::Node => "Node", } } @@ -366,6 +392,15 @@ fn emit_action_tables(notifications: &[NotificationDef]) -> String { \x20 /// constrained; this says to WHAT.\n", ); l.push_str(" pub enum_values: &'static [&'static str],\n"); + l.push_str( + " /// What the handler does with a value outside `enum_values`: `Some(true)`\n\ + \x20 /// rejects the notification, `Some(false)` yields null and parses on.\n\ + \x20 /// `None` means no usable policy — the accessor checks no table, one was\n\ + \x20 /// checked and this build has not judged which it does, or `enum_values`\n\ + \x20 /// is empty, leaving no set for the answer to be about.\n\ + \x20 /// A consumer may close a generated enum only on `Some(true)`.\n", + ); + l.push_str(" pub rejects_unknown_value: Option,\n"); l.push_str("}\n\n"); l.push_str( "/// A value an arm stamps rather than reading. Typed, because `false` and the\n\ @@ -416,13 +451,14 @@ fn emit_action_tables(notifications: &[NotificationDef]) -> String { .map(|e| e.variants.iter().map(|v| rust_lit(&v.value)).collect()) .unwrap_or_default(); format!( - "NotifActionField {{ name: {}, wire_name: {}, field_type: NotifFieldType::{}, required: {}, content: {}, enum_values: &[{}] }}", + "NotifActionField {{ name: {}, wire_name: {}, field_type: NotifFieldType::{}, required: {}, content: {}, enum_values: &[{}], rejects_unknown_value: {} }}", rust_lit(&f.name), rust_lit(&f.wire_name), field_type_variant(f.field_type), f.required, f.content, - values.join(", ") + values.join(", "), + rejects_unknown_value(f.unknown_value, !values.is_empty()), ) }) .collect(); @@ -493,6 +529,54 @@ mod tests { SubDiscriminant, SubDiscriminantOn, }; + #[test] + fn a_policy_needs_the_set_it_judges() { + // `rejects_unknown_value` answers "what happens to a value outside + // `enum_values`". With that table empty there is no set for it to be about, and + // `Some(false)` there described every possible value as outside an empty one — + // the live case being `create.reason`, whose handler recognizes several reasons + // the action extractor could not name. + let field = |name: &str, enum_ref: Option| wa_ir::NotifActionField { + name: name.into(), + wire_name: name.into(), + field_type: ParsedFieldType::Enum, + required: false, + content: false, + enum_ref, + unknown_value: Some(wa_ir::UnknownValuePolicy::Null), + }; + let mut ir = ir(); + ir.notifications[0].actions = vec![wa_ir::NotifActionDef { + wire_tag: "add".into(), + action_type: None, + fields: vec![ + field("reason", None), + field( + "kind", + Some(wa_ir::AttrEnumRef { + name: "K".into(), + module: "M".into(), + variants: vec![wa_ir::AttrEnumVariant { + name: "INVITE".into(), + value: "invite".into(), + }], + }), + ), + ], + constant_fields: vec![], + children: vec![], + }]; + let src = generate_notif(&ir); + assert!( + src.contains(r#"name: "reason", wire_name: "reason", field_type: NotifFieldType::Enum, required: false, content: false, enum_values: &[], rejects_unknown_value: None"#), + "no set, so no policy:\n{src}" + ); + assert!( + src.contains(r#"enum_values: &["invite"], rejects_unknown_value: Some(false)"#), + "the set is published, so the policy is usable:\n{src}" + ); + } + #[test] fn the_payload_action_union_reaches_generated_rust() { // The envelope structs describe what WRAPS the payload; the arms inside it are a @@ -553,7 +637,7 @@ mod tests { method: "attrString".into(), name: "id".into(), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() }], ..Default::default() diff --git a/crates/wa-codegen/src/spec.rs b/crates/wa-codegen/src/spec.rs index 9c490338..8b591bb7 100644 --- a/crates/wa-codegen/src/spec.rs +++ b/crates/wa-codegen/src/spec.rs @@ -135,7 +135,7 @@ fn fail_required_fields(fields: &[wa_ir::ParsedField]) -> std::collections::BTre // Content has no NAME — it is the node's own payload — so the descent path is the // whole of its identity, which is exactly what distinguishes one node's content // from another's. - if reached && f.required && wa_ir::wap::is_content_method(&f.method) { + if reached && f.parser_required && wa_ir::wap::is_content_method(&f.method) { out.insert(format!("{}/content", path.join("/"))); } // …and a REPEATED child fails on nothing. Its parser iterates `get_children_by_tag` @@ -144,7 +144,7 @@ fn fail_required_fields(fields: &[wa_ir::ParsedField]) -> std::collections::BTre // gate then admitted a union whose first arm accepts the later arm's response. let repeated = f.repeats == Some(true); if reached - && f.required + && f.parser_required && !repeated && (f.method == "child" || f.method.starts_with("attr")) { @@ -166,7 +166,7 @@ fn fail_required_fields(fields: &[wa_ir::ParsedField]) -> std::collections::BTre // recorded it anyway, and once round forty-six qualified these keys by path // that false requirement could differ from a later variant's real one — so the // subset gate admitted a union whose first arm then took the later response. - walk(kids, &inner, reached && f.required, out); + walk(kids, &inner, reached && f.parser_required, out); } } } @@ -830,11 +830,39 @@ fn emit_build_iq( attr_fields: &AttrFieldMap, ) -> Vec { let mut lines = vec![" fn build_iq(&self) -> InfoQuery<'static> {".to_string()]; - let target = if matches!(op.target, IqTarget::Group) { - "Jid::new(\"\", Server::Group)" - } else { - "Jid::new(\"\", Server::Pn)" + let target = match op.target { + // The two literal addressees, the only ones the builder can write on its own. + IqTarget::GroupServer => "Jid::new(\"\", Server::Group)".to_string(), + IqTarget::Server => "Jid::new(\"\", Server::Pn)".to_string(), + // Everything else needs the caller. `GroupJid` is the case that matters: 26 of + // the 33 `w:g2` requests address one group's own `@g.us`, and emitting the + // bare `g.us` for them would send a subject change to the group server. `Unknown` + // is the same shape with less known about it. `Unset` is here for a different + // reason — there is nothing to send — but `InfoQuery` has no way to omit `to`, so + // the caller is asked rather than a server silently substituted; the generated + // comment says which of the three it is. + IqTarget::GroupJid | IqTarget::Unset | IqTarget::Unknown => { + let name = if reserved.contains("target") { + "iq_target" + } else { + "target" + }; + variant_fields.push((name.to_string(), "Jid".to_string(), true)); + lines.push(format!( + " // `{name}` is {}", + match op.target { + IqTarget::GroupJid => + "the group's own JID (`@g.us`) — not the bare `g.us` server.", + IqTarget::Unset => + "`unset`: the client writes no `to` at all, and `InfoQuery` \ + cannot omit it — yours to decide.", + _ => "`unknown`: a runtime JID the IR could not name.", + } + )); + format!("self.{name}.clone()") + } }; + let target = target.as_str(); if !op.request.children.is_empty() { let mut ctx = VariantCtx { spec_base, @@ -1036,7 +1064,7 @@ mod tests { }; let content = field(serde_json::json!({ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true })); assert!( !fail_required_fields(std::slice::from_ref(&content)).is_empty(), @@ -1046,15 +1074,15 @@ mod tests { // content must not stand in for another's. Both shapes below require the same child, so // the child entry cannot be what tells them apart — only where the content sits can. let content_inside = vec![field(serde_json::json!({ - "method": "child", "name": "detail", "type": "string", "required": true, + "method": "child", "name": "detail", "type": "string", "parserRequired": true, "children": [{ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true }] }))]; let content_outside = vec![ field(serde_json::json!({ - "method": "child", "name": "detail", "type": "string", "required": true + "method": "child", "name": "detail", "type": "string", "parserRequired": true })), content.clone(), ]; @@ -1067,9 +1095,9 @@ mod tests { // vector where the child is absent, so it cannot tell one variant from another. let repeated = field(serde_json::json!({ "method": "child", "name": "item", "tag": "item", "type": "string", - "required": true, "repeats": true, + "parserRequired": true, "repeats": true, "children": [{"method": "attrString", "name": "v", "wireName": "v", - "type": "string", "required": true}] + "type": "string", "parserRequired": true}] })); assert!( !fail_required_fields(std::slice::from_ref(&repeated)) @@ -1081,9 +1109,9 @@ mod tests { // repetition rather than about children. let single = field(serde_json::json!({ "method": "child", "name": "item", "tag": "item", "type": "string", - "required": true, + "parserRequired": true, "children": [{"method": "attrString", "name": "v", "wireName": "v", - "type": "string", "required": true}] + "type": "string", "parserRequired": true}] })); assert!( fail_required_fields(std::slice::from_ref(&single)) @@ -1095,7 +1123,7 @@ mod tests { // back a `None` the field holds rather than an error. let optional = field(serde_json::json!({ "method": "contentString", "name": "elementValue", "type": "string", - "required": false + "parserRequired": false })); assert!( fail_required_fields(std::slice::from_ref(&optional)).is_empty(), @@ -1352,7 +1380,7 @@ mod tests { method: "attrString".into(), name: name.into(), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() } } @@ -1420,7 +1448,7 @@ mod tests { method: "attrString".into(), name: name.into(), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() } } @@ -1488,7 +1516,7 @@ mod tests { method: "attrString".into(), name: name.into(), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() } } @@ -1570,7 +1598,7 @@ mod tests { .into(), name: name.into(), field_type: ParsedFieldType::String, - required, + parser_required: required, ..Default::default() } } @@ -1580,7 +1608,7 @@ mod tests { name: tag.into(), tag: Some(tag.into()), field_type: ParsedFieldType::String, - required: false, + parser_required: false, children: Some(kids), ..Default::default() } @@ -1616,7 +1644,7 @@ mod tests { let mut op = stanza("WASmaxOutFooOptRequest", Some("makeOptRequest")); let mut required_child = optional_child("detail", vec![attr("code", true)]); required_child.method = "child".into(); - required_child.required = true; + required_child.parser_required = true; op.response = ParsedResponse { parser_name: "FooOptRPC".into(), variants: vec![ @@ -1690,7 +1718,7 @@ mod tests { name: name.into(), wire_name: Some("code".into()), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() } } @@ -1795,7 +1823,7 @@ mod tests { method: "attrString".into(), name: name.into(), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() } } @@ -1869,7 +1897,7 @@ mod tests { method: "attrString".into(), name: name.into(), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() } } diff --git a/crates/wa-codegen/src/union.rs b/crates/wa-codegen/src/union.rs index 30d8ac10..1b1bb186 100644 --- a/crates/wa-codegen/src/union.rs +++ b/crates/wa-codegen/src/union.rs @@ -222,7 +222,7 @@ fn variant_signature(v: &UnionVariant) -> BTreeSet { let mut path = base.to_vec(); path.extend(f.source_path.iter().flatten().cloned()); if f.field_type == ParsedFieldType::Union { - if reached && f.required { + if reached && f.parser_required { // A nested union has no wire read of its own to name; its TAG is what the // arm descends to, and failing that is what discriminates. s.insert(format!( @@ -242,7 +242,8 @@ fn variant_signature(v: &UnionVariant) -> BTreeSet { if f.repeats == Some(true) { continue; } - if reached && f.required && (f.method == "child" || f.method.starts_with("attr")) { + if reached && f.parser_required && (f.method == "child" || f.method.starts_with("attr")) + { let (kind, wire) = if f.method == "child" { ("child", f.tag.as_deref().unwrap_or(&f.name)) } else { @@ -259,7 +260,7 @@ fn variant_signature(v: &UnionVariant) -> BTreeSet { // defaults the whole subtree when it is missing. The outcome-union walk has the // same rule and took it in the same commit; review named both this time, which // is the only reason the pair moved together. - walk(kids, &inner, reached && f.required, s); + walk(kids, &inner, reached && f.parser_required, s); } } } @@ -461,7 +462,7 @@ fn is_simple_leaf(f: &ParsedField) -> bool { fn required_attrs(v: &UnionVariant) -> BTreeSet { v.fields .iter() - .filter(|f| f.required && f.method.starts_with("attr")) + .filter(|f| f.parser_required && f.method.starts_with("attr")) .map(|f| f.wire_name.clone().unwrap_or_else(|| f.name.clone())) .collect() } @@ -876,7 +877,10 @@ fn emit_attr_discriminated( // leaf pinned to a value before the guard below could compare it, so the arm // took a present `mode="y"` where the source accepts only `"x"` or nothing. .filter(|f| { - f.required || enum_values(f).is_some() || is_typed(f) || f.literal_value.is_some() + f.parser_required + || enum_values(f).is_some() + || is_typed(f) + || f.literal_value.is_some() }) .filter_map(|f| leaf_guard(f, node_var)) .collect(); @@ -1118,7 +1122,7 @@ fn leaf_guard(f: &ParsedField, node_var: &str) -> Option { // Absence stays allowed for an optional leaf; a value that IS there // still has to be one the accessor accepts. let mut arms: Vec = Vec::new(); - if !f.required { + if !f.parser_required { arms.push("None".to_string()); } arms.extend(values.iter().map(|v| format!("Some({})", rust_lit(v)))); @@ -1185,14 +1189,14 @@ fn leaf_guard(f: &ParsedField, node_var: &str) -> Option { // not selected by carrying one — and gating on presence // turned an absent payload the source accepts into no // variant at all. - if !f.required { + if !f.parser_required { return None; } format!("{node_var}.{raw}.is_some()") } } }; - if f.required { + if f.parser_required { return Some(decodes); } // Absence is what `required: false` means; only a payload that IS @@ -1226,7 +1230,7 @@ fn leaf_guard(f: &ParsedField, node_var: &str) -> Option { rust_lit(lit) ), }; - if f.required { + if f.parser_required { return Some(pinned); } return Some(format!( @@ -1240,10 +1244,10 @@ fn leaf_guard(f: &ParsedField, node_var: &str) -> Option { // length and buries the cases that really do validate something. if !is_typed(f) && int_band(f, "n").is_none() { let present = format!("{node_var}.get_attr({}).is_some()", rust_lit(wire_name)); - return f.required.then_some(present); + return f.parser_required.then_some(present); } let mut probe = f.clone(); - probe.required = false; + probe.parser_required = false; let read = field_expr(&probe, node_var); // A bounded accessor rejects a value outside its band, and reading it as a // bare `attrInt` let `attrIntRange("count", 1, 10)` select the arm on a @@ -1252,7 +1256,7 @@ fn leaf_guard(f: &ParsedField, node_var: &str) -> Option { Some(band) => format!("{read}.is_some_and(|n| {band})"), None => format!("{read}.is_some()"), }; - if f.required { + if f.parser_required { return Some(decodes); } let wire = f.wire_name.as_deref().unwrap_or(&f.name); @@ -1288,14 +1292,14 @@ fn field_expr(f: &ParsedField, node_var: &str) -> String { if wap::is_content_method(method) { // An arm that reads its content only sometimes declares the member `Option` // (`rust_field_type` reads the IR's `required`), so the read has to hand one back. - if !f.required { + if !f.parser_required { return format!("{node_var}.{}", crate::emit::content_decoder_opt(method)); } return format!("{node_var}.{}", crate::emit::content_decoder(method)); } let wire = f.wire_name.as_deref().unwrap_or(&f.name); let flit = rust_lit(wire); - let optional = wap::is_optional_method(method) || !f.required; + let optional = wap::is_optional_method(method) || !f.parser_required; match wap::method_field_type(method) { ParsedFieldType::Integer if optional => { format!("{node_var}.get_attr({flit}).and_then(|v| v.as_str().parse().ok())") @@ -1337,7 +1341,7 @@ mod tests { fields: vec![ serde_json::from_value(serde_json::json!({ "method": "attrIntRange", "name": "count", "wireName": "count", - "type": "integer", "required": true, "intMin": 1, "intMax": 10 + "type": "integer", "parserRequired": true, "intMin": 1, "intMax": 10 })) .expect("field"), ], @@ -1363,7 +1367,7 @@ mod tests { fields: vec![ serde_json::from_value(serde_json::json!({ "method": "contentInt", "name": "elementValue", - "type": "integer", "required": true + "type": "integer", "parserRequired": true })) .expect("field"), ], @@ -1384,7 +1388,7 @@ mod tests { fields: vec![ serde_json::from_value(serde_json::json!({ "method": "contentString", "name": "elementValue", - "type": "string", "required": required + "type": "string", "parserRequired": required })) .expect("field"), ], @@ -1407,7 +1411,7 @@ mod tests { fn member_mode_union() -> ParsedField { union_field(serde_json::json!({ "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, "sourcePath": ["member_add_mode"], + "parserRequired": true, "sourcePath": ["member_add_mode"], "unionVariants": [ {"name": "AdminAddMode", "fields": [], "assertions": [{"kind": "tag", "name": "member_add_mode"}, @@ -1417,7 +1421,7 @@ mod tests { {"kind": "content", "value": "all_member_add"}]}, {"name": "UnknownAddMode", "fields": [{"method": "contentString", "name": "elementValue", - "type": "string", "required": true}], + "type": "string", "parserRequired": true}], "assertions": [{"kind": "tag", "name": "member_add_mode"}]} ] })) @@ -1428,14 +1432,14 @@ mod tests { fn subject_union() -> ParsedField { union_field(serde_json::json!({ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", - "type": "union", "required": true, + "type": "union", "parserRequired": true, "unionVariants": [ {"name": "NamedSubject", "fields": [{"method": "attrString", "name": "subject", - "wireName": "subject", "type": "string", "required": true}]}, + "wireName": "subject", "type": "string", "parserRequired": true}]}, {"name": "UnnamedSubjectFallback", "fields": [{"method": "maybeAttrString", "name": "subject", - "wireName": "subject", "type": "string", "required": false}]} + "wireName": "subject", "type": "string", "parserRequired": false}]} ] })) } @@ -1444,16 +1448,16 @@ mod tests { /// runtime calls the value read beside it. fn category_union() -> ParsedField { union_field(serde_json::json!({ - "method": "dispatch", "name": "name_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "name_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "readreceipts", "assertions": [{"kind": "attr", "name": "name", "value": "readreceipts"}], "fields": [{"method": "attrString", "name": "readReceipts", - "wireName": "value", "type": "string", "required": true}]}, + "wireName": "value", "type": "string", "parserRequired": true}]}, {"name": "calladd", "assertions": [{"kind": "attr", "name": "name", "value": "calladd"}], "fields": [{"method": "attrString", "name": "callAdd", - "wireName": "value", "type": "string", "required": true}]}, + "wireName": "value", "type": "string", "parserRequired": true}]}, {"name": "stickers", "assertions": [{"kind": "attr", "name": "name", "value": "stickers"}], "fields": []} @@ -1514,12 +1518,12 @@ mod tests { // Presence alone lets an unparseable value through to `unwrap_or_default`, which // fabricates a number the element never carried. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrInt", "name": "count", - "wireName": "count", "type": "integer", "required": true}]}, + "wireName": "count", "type": "integer", "parserRequired": true}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -1540,12 +1544,12 @@ mod tests { // The accessor the parser used rejects a value outside the table; read as a plain // string the arm would accept anything and hand back a value WA never sends. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrEnum", "name": "mode", "wireName": "value", - "type": "enum", "required": true, + "type": "enum", "parserRequired": true, "enumKeys": ["on", "off"]}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], @@ -1565,12 +1569,12 @@ mod tests { // Selected on the discriminator alone, an absent payload came back as an empty // vector where the source accessor enforces it. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentBytes", "name": "content", - "type": "bytes", "required": true, "byteLength": 32}]}, + "type": "bytes", "parserRequired": true, "byteLength": 32}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -1596,12 +1600,12 @@ mod tests { // anyway produced Rust that does not compile. Skipping the check instead would // accept every other payload of that length, so the shape is declined. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentLiteralBytes", "name": "content", - "type": "bytes", "required": true, + "type": "bytes", "parserRequired": true, "byteLength": 1, "literalValue": "05"}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], @@ -1616,12 +1620,12 @@ mod tests { // Looking for an attribute of that name found nothing, so a node carrying accepted // text fell through to `None`. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentEnum", "name": "content", - "type": "enum", "required": true, + "type": "enum", "parserRequired": true, "enumKeys": ["on", "off"]}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], @@ -1640,12 +1644,12 @@ mod tests { fn attr_discriminated_union_validates_an_optional_enum_when_present() { // Absence is allowed; a value that IS there still has to be one the accessor takes. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "maybeAttrEnum", "name": "mode", "wireName": "mode", - "type": "enum", "required": false, + "type": "enum", "parserRequired": false, "enumKeys": ["on", "off"]}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], @@ -1665,12 +1669,12 @@ mod tests { // Any text passed, and the decoder then turned `abc` into `0` — a value the source // accessor rejects outright. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentInt", "name": "content", - "type": "integer", "required": true}]}, + "type": "integer", "parserRequired": true}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -1689,12 +1693,12 @@ mod tests { // A band is as much a constraint as a fixed length; checking only the latter let a // payload outside it decode. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentBytesRange", "name": "content", - "type": "bytes", "required": true, + "type": "bytes", "parserRequired": true, "byteMin": 16, "byteMax": 64}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], @@ -1798,7 +1802,7 @@ mod tests { // Drop the fallback variant → an unknown content must decode to None. let f = union_field(serde_json::json!({ "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, "sourcePath": ["member_add_mode"], + "parserRequired": true, "sourcePath": ["member_add_mode"], "unionVariants": [ {"name": "AdminAddMode", "fields": [], "assertions": [{"kind": "content", "value": "admin_add"}]}, @@ -1851,12 +1855,12 @@ mod tests { // An UNRECOGNIZED value is still `None`, which is a different answer and the right one: // a name this bundle did not know about leaves the field empty. let f = union_field(serde_json::json!({ - "method": "", "name": "dispatch", "type": "union", "required": true, + "method": "", "name": "dispatch", "type": "union", "parserRequired": true, "attrDiscriminator": "kind", "unionVariants": [ {"name": "A", "fields": [ {"method": "attrInt", "name": "count", "wireName": "count", - "type": "integer", "required": true} + "type": "integer", "parserRequired": true} ], "assertions": [{"kind": "attr", "name": "kind", "value": "a"}]}, {"name": "B", "fields": [], "assertions": [{"kind": "attr", "name": "kind", "value": "b"}]} @@ -1892,18 +1896,18 @@ mod tests { // Review named both walks this time; the previous two rounds each found a twin I had // not been told about, so this pair moving together is the cheap version of that. let f = union_field(serde_json::json!({ - "method": "", "name": "opt", "type": "union", "required": true, + "method": "", "name": "opt", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Alpha", "fields": [ {"method": "maybeChild", "name": "detail", "tag": "detail", - "type": "string", "required": false, "children": [ + "type": "string", "parserRequired": false, "children": [ {"method": "attrString", "name": "code", "wireName": "code", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ]} ], "assertions": [{"kind": "tag", "name": "item"}]}, {"name": "Beta", "fields": [ {"method": "attrString", "name": "reason", "wireName": "reason", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}]} ] })); @@ -1914,18 +1918,18 @@ mod tests { // The bound: the same attribute under a REQUIRED child does make the arm bail, so it // separates them and the union stands. let f = union_field(serde_json::json!({ - "method": "", "name": "opt", "type": "union", "required": true, + "method": "", "name": "opt", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Alpha", "fields": [ {"method": "child", "name": "detail", "tag": "detail", - "type": "string", "required": true, "children": [ + "type": "string", "parserRequired": true, "children": [ {"method": "attrString", "name": "code", "wireName": "code", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ]} ], "assertions": [{"kind": "tag", "name": "item"}]}, {"name": "Beta", "fields": [ {"method": "attrString", "name": "reason", "wireName": "reason", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}]} ] })); @@ -1945,15 +1949,15 @@ mod tests { // unreachable. Round forty-six made this correction in the OUTCOME-union gate and left // this copy alone, which is the one-rule-two-places shape again. let f = union_field(serde_json::json!({ - "method": "", "name": "coded", "type": "union", "required": true, + "method": "", "name": "coded", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Alpha", "fields": [ {"method": "attrString", "name": "successCode", "wireName": "code", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}]}, {"name": "Beta", "fields": [ {"method": "attrString", "name": "errorCode", "wireName": "code", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}]} ] })); @@ -1964,15 +1968,15 @@ mod tests { // The bounds, both things the key must not conflate. Two arms reading DIFFERENT wire // attributes are separable exactly as before… let f = union_field(serde_json::json!({ - "method": "", "name": "coded", "type": "union", "required": true, + "method": "", "name": "coded", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Alpha", "fields": [ {"method": "attrString", "name": "successCode", "wireName": "code", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}]}, {"name": "Beta", "fields": [ {"method": "attrString", "name": "errorCode", "wireName": "reason", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}]} ] })); @@ -1983,15 +1987,15 @@ mod tests { // …and so is the same name read at a different DESCENT, which is told apart by whether // the wrapper exists. let f = union_field(serde_json::json!({ - "method": "", "name": "coded", "type": "union", "required": true, + "method": "", "name": "coded", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Alpha", "fields": [ {"method": "attrString", "name": "successCode", "wireName": "code", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}]}, {"name": "Beta", "fields": [ {"method": "attrString", "name": "errorCode", "wireName": "code", - "type": "string", "required": true, "sourcePath": ["error"]} + "type": "string", "parserRequired": true, "sourcePath": ["error"]} ], "assertions": [{"kind": "tag", "name": "item"}]} ] })); @@ -2009,16 +2013,16 @@ mod tests { // protective in this emitter — which is the reason to pin it rather than to leave it to // the next round to find. let f = union_field(serde_json::json!({ - "method": "", "name": "twinned", "type": "union", "required": true, + "method": "", "name": "twinned", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Alpha", "fields": [ {"method": "attrString", "name": "alphaOnly", "wireName": "alpha_only", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}, {"kind": "attr", "name": "kind", "value": "a"}]}, {"name": "Beta", "fields": [ {"method": "attrString", "name": "betaOnly", "wireName": "beta_only", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}, {"kind": "attr", "name": "kind", "value": "a"}]} ] @@ -2059,16 +2063,16 @@ mod tests { // back as the fallback variant — where the source dispatch takes the `a` path and // rejects the integer. The pin is hoisted out and the payload is propagated. let f = union_field(serde_json::json!({ - "method": "", "name": "dispatched", "type": "union", "required": true, + "method": "", "name": "dispatched", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Alpha", "fields": [ {"method": "attrInt", "name": "count", "wireName": "count", - "type": "integer", "required": true} + "type": "integer", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}, {"kind": "attr", "name": "kind", "value": "a"}]}, {"name": "Beta", "fields": [ {"method": "attrString", "name": "other", "wireName": "other", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "item"}, {"kind": "attr", "name": "kind", "value": "b"}]} ] @@ -2106,15 +2110,15 @@ mod tests { // handed back the `0` its failed parse defaults to for a node the source rejects. // Presence is not decoding, and it is not a vocabulary, a band, a length or a pin. let f = union_field(serde_json::json!({ - "method": "", "name": "counted", "type": "union", "required": true, + "method": "", "name": "counted", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Counted", "fields": [ {"method": "attrInt", "name": "count", "wireName": "count", - "type": "integer", "required": true} + "type": "integer", "parserRequired": true} ], "assertions": [{"kind": "attr", "name": "count"}]}, {"name": "Plain", "fields": [ {"method": "attrString", "name": "label", "wireName": "label", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ]} ] })); @@ -2138,15 +2142,15 @@ mod tests { // accessor says nothing the pin has not already settled — and this filter exists to keep // that redundancy out. let f = union_field(serde_json::json!({ - "method": "", "name": "kinded", "type": "union", "required": true, + "method": "", "name": "kinded", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Kind", "fields": [ {"method": "attrString", "name": "kind", "wireName": "kind", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ], "assertions": [{"kind": "attr", "name": "kind", "value": "a"}]}, {"name": "Plain", "fields": [ {"method": "attrString", "name": "label", "wireName": "label", - "type": "string", "required": true} + "type": "string", "parserRequired": true} ]} ] })); @@ -2167,12 +2171,12 @@ mod tests { // First variant has NO required attr → it would always match and shadow the // second. Must classify as unsupported (None), not emit a misleading cascade. let f = union_field(serde_json::json!({ - "method": "", "name": "ambiguous", "type": "union", "required": true, + "method": "", "name": "ambiguous", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Always", "fields": [{"method": "maybeAttrString", "name": "a", - "type": "string", "required": false}]}, + "type": "string", "parserRequired": false}]}, {"name": "Specific", "fields": [{"method": "attrString", "name": "b", - "type": "string", "required": true}]} + "type": "string", "parserRequired": true}]} ] })); assert!( @@ -2191,14 +2195,14 @@ mod tests { // over per-variant structs. let f = union_field(serde_json::json!({ "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ {"name": "GroupInfoParticipantAdmin", "fields": [ - {"method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", "required": true}, - {"method": "maybeAttrString", "name": "participantLabel", "wireName": "participant_label", "type": "string", "required": false} + {"method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", "parserRequired": true}, + {"method": "maybeAttrString", "name": "participantLabel", "wireName": "participant_label", "type": "string", "parserRequired": false} ], "assertions": [{"kind": "tag", "name": "participant"}]}, {"name": "GroupInfoParticipantNonAdmin", "fields": [ - {"method": "maybeAttrString", "name": "participantLabel", "wireName": "participant_label", "type": "string", "required": false} + {"method": "maybeAttrString", "name": "participantLabel", "wireName": "participant_label", "type": "string", "parserRequired": false} ], "assertions": [{"kind": "tag", "name": "participant"}]} ] })); @@ -2232,14 +2236,14 @@ mod tests { // Newsletter text/media: same tag, told apart by a pinned `type` attr value. let f = union_field(serde_json::json!({ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ {"name": "NewsletterText", "fields": [ - {"method": "attrString", "name": "type", "wireName": "type", "type": "string", "required": true} + {"method": "attrString", "name": "type", "wireName": "type", "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "message"}, {"kind": "attr", "name": "type", "value": "text"}]}, {"name": "NewsletterMedia", "fields": [ - {"method": "attrString", "name": "type", "wireName": "type", "type": "string", "required": true}, - {"method": "attrEnum", "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", "required": true} + {"method": "attrString", "name": "type", "wireName": "type", "type": "string", "parserRequired": true}, + {"method": "attrEnum", "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "message"}, {"kind": "attr", "name": "type", "value": "media"}]} ] })); @@ -2262,18 +2266,18 @@ mod tests { // userFetch shape: Error and ErrorFallback have IDENTICAL required sets and no // pinned-attr conflict → ErrorFallback is unreachable → must drop, not misclassify. let f = union_field(serde_json::json!({ - "method": "", "name": "userFetch", "type": "union", "required": true, + "method": "", "name": "userFetch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Success", "fields": [ - {"method": "attrString", "name": "skeyId", "wireName": "skey_id", "type": "string", "required": true} + {"method": "attrString", "name": "skeyId", "wireName": "skey_id", "type": "string", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "user"}]}, {"name": "Error", "fields": [ - {"method": "attrString", "name": "errorText", "wireName": "error_text", "type": "string", "required": true}, - {"method": "attrInt", "name": "errorCode", "wireName": "error_code", "type": "integer", "required": true} + {"method": "attrString", "name": "errorText", "wireName": "error_text", "type": "string", "parserRequired": true}, + {"method": "attrInt", "name": "errorCode", "wireName": "error_code", "type": "integer", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "user"}]}, {"name": "ErrorFallback", "fields": [ - {"method": "attrString", "name": "errorText", "wireName": "error_text", "type": "string", "required": true}, - {"method": "attrInt", "name": "errorCode", "wireName": "error_code", "type": "integer", "required": true} + {"method": "attrString", "name": "errorText", "wireName": "error_text", "type": "string", "parserRequired": true}, + {"method": "attrInt", "name": "errorCode", "wireName": "error_code", "type": "integer", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "user"}]} ] })); @@ -2290,15 +2294,15 @@ mod tests { // unconditionally and shadows the later `count`-attr arm. Must be rejected, not // emitted (which would drop the deprecated count). let f = union_field(serde_json::json!({ - "method": "", "name": "viewsCountViewsOrDeprecated", "type": "union", "required": true, + "method": "", "name": "viewsCountViewsOrDeprecated", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Views", "fields": [ {"method": "child", "name": "viewsCount", "tag": "views_count", "type": "string", - "required": true, "repeats": true, - "children": [{"method": "attrInt", "name": "v", "wireName": "v", "type": "integer", "required": true}]} + "parserRequired": true, "repeats": true, + "children": [{"method": "attrInt", "name": "v", "wireName": "v", "type": "integer", "parserRequired": true}]} ], "assertions": [{"kind": "tag", "name": "message"}]}, {"name": "Deprecated", "fields": [ - {"method": "attrInt", "name": "viewsCountCount", "wireName": "count", "type": "integer", "required": true} + {"method": "attrInt", "name": "viewsCountCount", "wireName": "count", "type": "integer", "parserRequired": true} ], "assertions": [{"kind": "tag", "name": "message"}]} ] })); @@ -2314,18 +2318,18 @@ mod tests { // emitting neither — a parser selecting the arm on its payload alone, for every // `kind`/`mode` the source rejects. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}, {"kind": "attr", "name": "mode", "value": "x"}], "fields": [{"method": "attrString", "name": "payloadA", - "wireName": "payload_a", "type": "string", "required": true}]}, + "wireName": "payload_a", "type": "string", "parserRequired": true}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}, {"kind": "attr", "name": "mode", "value": "y"}], "fields": [{"method": "attrString", "name": "payloadB", - "wireName": "payload_b", "type": "string", "required": true}]} + "wireName": "payload_b", "type": "string", "parserRequired": true}]} ] })); let (lines, _) = emit_union_read(&f, "node", "Spec", "").expect("emitted"); @@ -2342,17 +2346,17 @@ mod tests { // The blocklist shape: the last arm reads `unknown_identifier` AND pins it to // `"true"`. Told apart by presence, it also matched `unknown_identifier="false"`. let f = union_field(serde_json::json!({ - "method": "", "name": "blocklistIds", "type": "union", "required": true, + "method": "", "name": "blocklistIds", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "Username", "fields": [{"method": "attrString", "name": "username", - "wireName": "username", "type": "string", "required": true}]}, + "wireName": "username", "type": "string", "parserRequired": true}]}, {"name": "UnknownIdentifier", "assertions": [{"kind": "attr", "name": "unknown_identifier", "value": "true"}], "fields": [{"method": "attrString", "name": "unknownIdentifier", "wireName": "unknown_identifier", "type": "string", - "required": true, "literalValue": "true"}]} + "parserRequired": true, "literalValue": "true"}]} ] })); let (lines, _) = emit_union_read(&f, "node", "Spec", "").expect("emitted"); @@ -2374,12 +2378,12 @@ mod tests { // The member is typed from the IR's `required`; defaulting the read handed a // `String` to an `Option` field and the module did not compile. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentString", "name": "body", - "type": "string", "required": false}]}, + "type": "string", "parserRequired": false}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -2407,12 +2411,12 @@ mod tests { // only `attrIntRange` sets a range — but codegen takes the IR directly, which is where // the two spellings of one rule could drift apart unobserved. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentInt", "name": "content", - "type": "integer", "required": true, + "type": "integer", "parserRequired": true, "intMin": -10, "intMax": -1}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], @@ -2432,12 +2436,12 @@ mod tests { // The bound: an unranged content integer has nothing to compare, and inventing a // comparison would reject payloads the parser accepts. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentInt", "name": "content", - "type": "integer", "required": true}]}, + "type": "integer", "parserRequired": true}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -2456,12 +2460,12 @@ mod tests { // `attrIntRange("count", 1, 10)` rejects `count="99"` at the source; guarded on // parsing alone the arm materialized a value the parser turns away. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrIntRange", "name": "count", "wireName": "count", - "type": "integer", "required": true, + "type": "integer", "parserRequired": true, "intMin": 1, "intMax": 10}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], @@ -2480,12 +2484,12 @@ mod tests { // `literal(attrString, node, "mode", "x")` rejects `mode="y"` at the source; a // guard testing only that `mode` decodes materialized the variant anyway. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrString", "name": "mode", "wireName": "mode", - "type": "string", "required": true, "literalValue": "x"}]}, + "type": "string", "parserRequired": true, "literalValue": "x"}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -2503,11 +2507,11 @@ mod tests { // The pin may be absent, but a value that IS there has to be the pinned one — // the leaf was filtered out before the comparison could be emitted at all. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "maybeAttrString", "name": "mode", "wireName": "mode", - "type": "string", "required": false, "literalValue": "x"}]}, + "type": "string", "parserRequired": false, "literalValue": "x"}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} ] @@ -2525,11 +2529,11 @@ mod tests { // The equality is against a request field this decoder was never handed, so there // is nothing to compare with — and read unguarded it took any value at all. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "maybeAttrString", "name": "to", "wireName": "to", - "type": "string", "required": false, + "type": "string", "parserRequired": false, "referencePath": ["request", "to"]}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -2547,11 +2551,11 @@ mod tests { // bounds: keeping only the maximum over an unsigned parse is what made a wire // `-500` fail `samplingWeight`'s guard and take the whole union field down with it. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrInt", "name": "count", "wireName": "count", - "type": "integer", "required": true, + "type": "integer", "parserRequired": true, "intMin": -10, "intMax": -1}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -2575,11 +2579,11 @@ mod tests { // alone left it `u64`, so the guard rejected everything the source accepts and the arm // was additionally classified unreachable. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrInt", "name": "score", "wireName": "score", - "type": "integer", "required": true, "intMax": -1}]}, + "type": "integer", "parserRequired": true, "intMax": -1}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} ] @@ -2597,11 +2601,11 @@ mod tests { // ordinary signed band meaning "at most -1", and declining it lost every value the // source accepts. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrInt", "name": "count", "wireName": "count", - "type": "integer", "required": true, + "type": "integer", "parserRequired": true, "intMin": 5, "intMax": -1}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} @@ -2617,11 +2621,11 @@ mod tests { // `literal(attrInt, node, "code", 429)` accepts a wire `"0429"`; a raw text // compare against `"429"` turned that element away and selected no variant. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrInt", "name": "code", "wireName": "code", - "type": "integer", "required": true, "literalValue": "429"}]}, + "type": "integer", "parserRequired": true, "literalValue": "429"}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} ] @@ -2638,14 +2642,14 @@ mod tests { // Presence alone selected the arm and `field_expr` then handed back the JID // default for a node the source parser rejects. let f = union_field(serde_json::json!({ - "method": "group", "name": "ids", "type": "union", "required": true, + "method": "group", "name": "ids", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "PnJid", "assertions": [], "fields": [{"method": "attrUserJid", "name": "pn_jid", "wireName": "pn_jid", - "type": "user_jid", "required": true}]}, + "type": "user_jid", "parserRequired": true}]}, {"name": "Plain", "assertions": [], "fields": [{"method": "attrString", "name": "other", "wireName": "other", - "type": "string", "required": true}]} + "type": "string", "parserRequired": true}]} ] })); let (lines, _) = emit_union_read(&f, "node", "Spec", "").expect("emitted"); @@ -2665,11 +2669,11 @@ mod tests { // then validated only the byte payload and the arm could be selected and materialized // on a band nothing satisfies. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "contentUint", "name": "code", "wireName": "code", - "type": "integer", "required": true, "intMax": -1}]}, + "type": "integer", "parserRequired": true, "intMax": -1}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} ] @@ -2686,11 +2690,11 @@ mod tests { // `attrIntRange` with no floor is signed, so "at most -1" is a band values really do // satisfy. Declining on a negative ceiling alone would throw the arm away. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrIntRange", "name": "code", "wireName": "code", - "type": "integer", "required": true, "intMax": -1}]}, + "type": "integer", "parserRequired": true, "intMax": -1}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} ] @@ -2708,11 +2712,11 @@ mod tests { // Compared as text the arm takes `"-1"`, and the payload then decodes that to `0` // — the source returns the pinned negative integer. let f = union_field(serde_json::json!({ - "method": "dispatch", "name": "kind_dispatch", "type": "union", "required": true, + "method": "dispatch", "name": "kind_dispatch", "type": "union", "parserRequired": true, "unionVariants": [ {"name": "a", "assertions": [{"kind": "attr", "name": "kind", "value": "a"}], "fields": [{"method": "attrInt", "name": "code", "wireName": "code", - "type": "integer", "required": true, "literalValue": "-1"}]}, + "type": "integer", "parserRequired": true, "literalValue": "-1"}]}, {"name": "b", "assertions": [{"kind": "attr", "name": "kind", "value": "b"}], "fields": []} ] @@ -2727,17 +2731,17 @@ mod tests { fn optional_enum_arm_union() -> ParsedField { union_field(serde_json::json!({ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", - "type": "union", "required": true, + "type": "union", "parserRequired": true, "unionVariants": [ {"name": "NamedSubject", "fields": [{"method": "attrString", "name": "subject", - "wireName": "subject", "type": "string", "required": true}, + "wireName": "subject", "type": "string", "parserRequired": true}, {"method": "maybeAttrEnum", "name": "mode", "wireName": "mode", - "type": "string", "required": false, + "type": "string", "parserRequired": false, "enumKeys": ["fast", "slow"]}]}, {"name": "UnnamedSubjectFallback", "fields": [{"method": "maybeAttrString", "name": "subject", - "wireName": "subject", "type": "string", "required": false}]} + "wireName": "subject", "type": "string", "parserRequired": false}]} ] })) } @@ -2765,16 +2769,16 @@ mod tests { // payload of any length — `value_payload` copies or defaults whatever it finds. let f = union_field(serde_json::json!({ "method": "", "name": "blobModes", "type": "union", - "required": true, "sourcePath": ["blob"], + "parserRequired": true, "sourcePath": ["blob"], "unionVariants": [ {"name": "Known", "fields": [], "assertions": [{"kind": "tag", "name": "blob"}, {"kind": "content", "value": "known"}]}, {"name": "Other", "fields": [{"method": "contentBytes", "name": "elementValue", - "type": "bytes", "required": true, "byteLength": 32}, + "type": "bytes", "parserRequired": true, "byteLength": 32}, {"method": "attrString", "name": "kind", "wireName": "kind", - "type": "string", "required": true}], + "type": "string", "parserRequired": true}], "assertions": [{"kind": "tag", "name": "blob"}, {"kind": "attr", "name": "extra", "value": "yes"}]} ] diff --git a/crates/wa-enums/src/lib.rs b/crates/wa-enums/src/lib.rs index a81c72f9..f0fd11fb 100644 --- a/crates/wa-enums/src/lib.rs +++ b/crates/wa-enums/src/lib.rs @@ -61,10 +61,22 @@ pub fn extract_enums_from_modules( // Deterministic order independent of bundle layout. enums.sort_by(|a, b| a.module.cmp(&b.module).then_with(|| a.name.cmp(&b.name))); enums.dedup_by(|a, b| a.module == b.module && a.name == b.name); - EnumsIr { + let mut ir = EnumsIr { wa_version: wa_version.to_string(), enums, - } + }; + // Here, not only in the caller. `bitPosition` is part of what this IR says, and the + // evidence for it — a `1 << Enum.VARIANT` somewhere in the bundle — is in the `source` + // this function already holds. A consumer calling the documented extractor otherwise + // gets every definition flagged `false`, which is not "we did not check" but a plain + // statement that no enum here is bit positions. + // + // The pipeline calls it again after promoting inline `enumRef`s into the catalog, + // which is the one thing this cannot cover: an enum reachable only through a + // reference does not exist yet at this point. Marking is idempotent, so the second + // pass costs a scan and changes nothing already decided here. + mark_bit_position_enums(&mut ir, source); + ir } fn extract_from_module(slice: &str, module: &str) -> Vec { @@ -90,12 +102,12 @@ fn extract_from_module(slice: &str, module: &str) -> Vec { if out.iter().any(|d| d.name == name) { continue; // first binding wins (aliases collapse) } - out.push(InternalEnumDef { + out.push(InternalEnumDef::new( name, - module: module.to_string(), + module.to_string(), value_kind, variants, - }); + )); } out.sort_by(|a, b| a.name.cmp(&b.name)); out @@ -337,12 +349,12 @@ pub fn resolve_named_enum(module_slice: &str, module: &str, name: &str) -> Optio return None; } let (value_kind, variants) = r.exports.get(name)?.clone(); - Some(InternalEnumDef { - name: name.to_string(), - module: module.to_string(), + Some(InternalEnumDef::new( + name.to_string(), + module.to_string(), value_kind, variants, - }) + )) } /// The parameter names of the `__d("Name", deps, factory, id)` factory, if it is there. @@ -418,12 +430,12 @@ fn extract_plain_object_enums(slice: &str, module: &str) -> Vec let mut out: Vec = Vec::new(); for (name, (value_kind, variants)) in r.exports { if variants.len() >= 2 && variants.iter().all(|v| is_constant_case(&v.name)) { - out.push(InternalEnumDef { + out.push(InternalEnumDef::new( name, - module: module.to_string(), + module.to_string(), value_kind, variants, - }); + )); } } out.sort_by(|a, b| a.name.cmp(&b.name)); @@ -1206,6 +1218,67 @@ fn parse_enum(obj: &ObjectExpression) -> Option { } } +/// Mark every catalog entry the bundle **shifts by** — `t |= 1 << Mod.Enum.VARIANT` — +/// as a bit-position enum ([`InternalEnumDef::bit_position`]). +/// +/// This is the only evidence there is. An enum of bit positions and an enum of codes are +/// the same `{NAME: 0, NAME: 1, NAME: 2}` object at the definition site; what tells them +/// apart is that one of them is only ever used as a shift distance, and that happens in +/// the *consumer* module. `ReceiptModeBitPosition` is the single enum in the catalog with +/// any: two `1 <<` sites, in a module that does not define it. +/// +/// A text scan rather than a parse, deliberately: shift sites live anywhere in ~71 MB of +/// bundle, and re-walking every module's AST to find two of them costs more than the +/// whole enum extraction. It cannot invent a match — the module, the enum and the variant +/// must all name a real catalog entry, so a false positive needs a string literal +/// spelling out `<")..`. +/// +/// A shift by an enum this build did not capture marks nothing, and is not reported: the +/// enum is absent from the catalog either way. +pub fn mark_bit_position_enums(ir: &mut EnumsIr, source: &str) { + let mut shifted: HashSet<(&str, &str, &str)> = HashSet::new(); + let mut rest = source; + while let Some(at) = rest.find("<<") { + let after = &rest[at + 2..]; + if let Some(parts) = qualified_member(after.trim_start()) { + shifted.insert(parts); + } + rest = after; + } + for def in &mut ir.enums { + // Never on a string enum: a wire token has no bit to shift into. The variant has + // to belong to this enum too — that is what makes a stray text match impossible + // rather than merely unlikely. + def.bit_position = def.value_kind == EnumValueKind::Int + && def.variants.iter().any(|v| { + shifted.contains(&(def.module.as_str(), def.name.as_str(), v.name.as_str())) + }); + } +} + +/// `o("Module").Name.VARIANT` at the very start of `s` → its three parts. +/// +/// The qualified spelling only. A bare `x.Name.VARIANT` names no module, and guessing +/// one from the enum name alone would resolve `ENUM_FALSE_TRUE` to whichever of its +/// eleven definitions came first. +fn qualified_member(s: &str) -> Option<(&str, &str, &str)> { + let rest = s.strip_prefix(|c: char| c.is_ascii_alphabetic() || c == '_' || c == '$')?; + let rest = rest.strip_prefix("(\"")?; + let (module, rest) = rest.split_once("\")")?; + let rest = rest.strip_prefix('.')?; + let (name, rest) = split_ident(rest)?; + let (variant, _) = split_ident(rest.strip_prefix('.')?)?; + Some((module, name, variant)) +} + +/// Split a leading JS identifier off `s`, returning it and the remainder. +fn split_ident(s: &str) -> Option<(&str, &str)> { + let end = s + .find(|c: char| !(c.is_ascii_alphanumeric() || c == '_' || c == '$')) + .unwrap_or(s.len()); + (end > 0).then(|| s.split_at(end)) +} + #[cfg(test)] mod tests { use super::*; @@ -1744,6 +1817,111 @@ mod tests { extract_enums_from_modules(src, &defs, "1.0").enums } + /// Extract, then mark the bit-position enums from the same source. + fn run_with_shifts(src: &str) -> Vec { + let defs = wa_transform::extract_module_definitions(src); + let mut ir = extract_enums_from_modules(src, &defs, "1.0"); + mark_bit_position_enums(&mut ir, src); + ir.enums + } + + #[test] + fn an_enum_the_bundle_shifts_by_is_marked_as_bit_positions() { + // Two enums of the same shape — `{A:0,B:1,C:2}` — and only one of them is used as + // a shift distance. Nothing at the definition site tells them apart, which is why + // the mark comes from the consumer module: `MODE.C` reaches the wire as + // `1 << 2 == 4`, `CODE.C` as `2`. + let src = r#" + __d("WAWebModes",["$InternalEnum"],(function(t,n,r,o,a,i){var e=n("$InternalEnum")({A:0,B:1,C:2});i.MODE=e}),1); + __d("WAWebCodes",["$InternalEnum"],(function(t,n,r,o,a,i){var e=n("$InternalEnum")({A:0,B:1,C:2});i.CODE=e}),1); + __d("WAWebUser",["WAWebModes"],(function(t,n,r,o,a,i){function f(){var x=0;x|=1<, + /// The name is **WA's build-generated one, spelled out of the variants themselves** + /// (`ENUM_FALSE_TRUE`, `ENUM_0_1_7`, `ENUM_HIDDEN_HSCROLL_…`) rather than chosen to + /// mean anything. Set when the name is exactly `ENUM_` followed by the variants' + /// (or values') alphanumerics, uppercased, de-duplicated and sorted — the rule WA's + /// own emitter uses, applied in reverse, not a guess from the prefix. + /// + /// It is a warning to a code generator, not a defect: eleven different modules each + /// define a *different* two-value enum called `ENUM_FALSE_TRUE`, so the name is + /// neither unique nor descriptive and must not become a type name. What the enum + /// means lives at the reference site, in the field that reads it. + /// + /// It does not say the enum is uninteresting, and its absence does not promise the + /// name is unique — [`name`] is not a key either way. + /// + /// [`name`]: InternalEnumDef::name + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub synthetic_name: bool, + /// The integer values are **bit positions**, so the value that reaches the wire for + /// a variant is `1 << value`, not `value`. Recovered from the bundle shifting by a + /// member of this enum (`t |= 1 << Mod.ReceiptModeBitPosition.ORPHAN`), never from + /// the name: it is evidence, and `ReceiptModeBitPosition` is the only enum in the + /// catalog that carries any. + /// + /// `false` means no shift use was found, which is not proof the enum is a plain code + /// table — an enum whose only consumer computes the shift somewhere the scan cannot + /// follow looks the same. It is never set on a string enum. + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub bit_position: bool, +} + +impl InternalEnumDef { + /// Build a definition, deciding [`synthetic_name`] from the variants. + /// + /// The only constructor, so an extraction path added later cannot forget the flag + /// and publish a generated name as if it were a chosen one. [`bit_position`] is not + /// decided here: it comes from how the bundle *uses* the enum, which no single + /// definition site can see. + /// + /// [`synthetic_name`]: InternalEnumDef::synthetic_name + /// [`bit_position`]: InternalEnumDef::bit_position + pub fn new( + name: String, + module: String, + value_kind: EnumValueKind, + variants: Vec, + ) -> Self { + let mut def = Self { + name, + module, + value_kind, + variants, + synthetic_name: false, + bit_position: false, + }; + def.synthetic_name = def.has_generated_name(); + def + } + + /// The name WA's emitter would generate for this enum from `pick` of each variant — + /// alphanumerics only, uppercased, de-duplicated, sorted, joined, `ENUM_`-prefixed. + fn generated_name(&self, pick: fn(&EnumVariant) -> String) -> String { + let mut parts: Vec = self + .variants + .iter() + .map(|v| { + pick(v) + .chars() + .filter(char::is_ascii_alphanumeric) + .flat_map(char::to_uppercase) + .collect() + }) + .collect(); + parts.sort(); + parts.dedup(); + format!("ENUM_{}", parts.join("_")) + } + + /// Whether [`name`] is reconstructible from the variants — see [`synthetic_name`], + /// which this sets. Checked against both the variant names and the wire values + /// because WA spells the generated name from whichever it has. + /// + /// [`name`]: InternalEnumDef::name + /// [`synthetic_name`]: InternalEnumDef::synthetic_name + pub fn has_generated_name(&self) -> bool { + self.name == self.generated_name(|v| v.name.clone()) + || self.name == self.generated_name(|v| scalar_text(&v.value)) + } +} + +/// The source text of a scalar enum value, as WA's name generator would spell it. +fn scalar_text(v: &Scalar) -> String { + match v { + Scalar::Bool(b) => b.to_string(), + Scalar::Int(i) => i.to_string(), + Scalar::Float(f) => f.to_string(), + Scalar::Str(s) => s.clone(), + } } /// The enum-catalog IR document: version stamp + every captured enum, sorted by /// `(module, name)` for determinism. +/// +/// It is the **complete** index every `enumRef` in every other domain resolves against: +/// an enum a response or request field references is in here whether or not it is an +/// `$InternalEnum`, so a consumer never has to know in advance whether a reference will +/// be found. Before that was true, 75 of the 87 enums referenced inline existed nowhere +/// in the catalog, and a generator reading the catalog alone emitted a fraction of the +/// types it needed. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase")] diff --git a/crates/wa-ir/src/incoming.rs b/crates/wa-ir/src/incoming.rs index e494f0c4..38a7d49a 100644 --- a/crates/wa-ir/src/incoming.rs +++ b/crates/wa-ir/src/incoming.rs @@ -54,3 +54,12 @@ pub struct IncomingIr { /// Received stanza read-shapes, sorted by `(tag, parser name)`. pub incoming: Vec, } + +impl IncomingIr { + /// Run [`ParsedResponse::classify_accessors`] over every read-shape. + pub fn classify_accessors(&mut self) { + for d in &mut self.incoming { + d.shape.classify_accessors(); + } + } +} diff --git a/crates/wa-ir/src/iq.rs b/crates/wa-ir/src/iq.rs index 0deb266a..065b8ba8 100644 --- a/crates/wa-ir/src/iq.rs +++ b/crates/wa-ir/src/iq.rs @@ -220,14 +220,88 @@ pub enum IqType { Set, } -/// IQ target server. +/// Who the builder addresses an `` to — the `to` attribute it writes on the root. +/// +/// The first three are claims about the wire and are **three different addresses**, not +/// two. WA keeps `@g.us` and the bare `g.us` apart in its own mixin names +/// (`WASmaxOutGroupsBaseGetGroupMixin` writes `GROUP_JID(x)`, +/// `…BaseGetServerMixin` writes `g.us`), and 26 of the 33 `w:g2` requests take the +/// first: collapsing them told an emitter to send a group's subject change to the group +/// server, which answers nothing. +/// +/// The last two record what the builder does when no server can be named: [`Unset`] +/// means it writes no `to` at all, [`Unknown`] that it writes one whose value the scan +/// could not resolve. Neither is a polite spelling of "server" — an `` addressed to a +/// runtime JID is exactly the case a `s.whatsapp.net` default sends to the wrong place, +/// which is how every `w:g2` request came to claim the server while the client addressed +/// the group. +/// +/// [`Unset`]: IqTarget::Unset +/// [`Unknown`]: IqTarget::Unknown #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] pub enum IqTarget { + /// `to="s.whatsapp.net"` — written as the literal or as WA's `S_WHATSAPP_NET` + /// constant. The literal string to send. #[serde(rename = "s.whatsapp.net")] Server, + /// `to="g.us"` — the group *server*, written as the literal or as `G_US`. Also the + /// literal string to send. Used by the operations that are not about one group: + /// creating one, listing, exiting. + /// + /// Distinct from [`GroupJid`], which is a specific group. + /// + /// [`GroupJid`]: IqTarget::GroupJid #[serde(rename = "g.us")] - Group, + GroupServer, + /// `to=GROUP_JID(x)` — a `@g.us` JID built at runtime from the call's + /// argument. **Not a literal to send**: the server is fixed, the JID is not, so an + /// emitter has to supply the group. Serialized as `group_jid` rather than a JID-like + /// string for exactly that reason — there is no string here to copy. + #[serde(rename = "group_jid")] + GroupJid, + /// The builder writes **no** `to` attribute, and no mixin it folds in adds one. A + /// fact about the request, not a failure: `deprecatedSendIq` adds nothing of its + /// own, so the stanza really does go out without the attribute. An emitter should + /// omit it too rather than substitute a server. + #[serde(rename = "unset")] + Unset, + /// The builder writes a `to` whose value is a runtime JID the scan could not resolve + /// to a server (`JID(x)`, `DOMAIN_JID(x)`, a field of an argument). The addressee is + /// a parameter of the call, so the IR states that it does not know it — counted + /// under `manifest.diagnostics.iq.targets.unknown`, never rounded to [`Server`]. + /// + /// [`Server`]: IqTarget::Server + #[serde(rename = "unknown")] + Unknown, +} + +impl IqTarget { + /// Whether the scan named the server this request goes to. `false` for [`Unset`] and + /// [`Unknown`] alike — the two differ in *why* no server is named, not in whether + /// one is. + /// + /// True for [`GroupJid`]: the server (`g.us`) is known even though the JID's user + /// part is a runtime value, which is the same position [`Server`] is in for a + /// request whose `to` is the bare server. + /// + /// [`Unset`]: IqTarget::Unset + /// [`Unknown`]: IqTarget::Unknown + /// [`GroupJid`]: IqTarget::GroupJid + /// [`Server`]: IqTarget::Server + pub fn is_resolved(&self) -> bool { + matches!( + self, + IqTarget::Server | IqTarget::GroupServer | IqTarget::GroupJid + ) + } + + /// Whether the request is addressed to a group — either the group server or one + /// group's own JID. The question a consumer routing by namespace used to ask of + /// `target == "g.us"`, kept answerable now that the two are separate variants. + pub fn is_group(&self) -> bool { + matches!(self, IqTarget::GroupServer | IqTarget::GroupJid) + } } /// The outgoing request half of an IQ operation. @@ -348,6 +422,22 @@ pub enum ParsedFieldType { /// A discriminated union (`{name, value}` smax disjunction) — the alternatives /// are carried in [`ParsedField::union_variants`]. Union, + /// A structural container, not a value: the field has **no accessor of its own** + /// (`method` is empty) and its content is entirely in [`ParsedField::children`] — + /// a smax payload mixin folded into the response (`groupAddressingModeMixin`, + /// `wAMOSubMixin`, …), read off this same node when [`same_node`] is set. + /// + /// It exists because the alternative was worse: `method_field_type("")` fell through + /// to [`String`], so 517 containers in `iq/index.json` alone declared a scalar type + /// they have no value for, and a codegen switching on `type` emitted `String` for a + /// node with children. Carrying no scalar type at all is the fact. + /// + /// It says nothing about the *identity* of the mixin that was folded in — that + /// survives only in the field's camelCase name. + /// + /// [`String`]: ParsedFieldType::String + /// [`same_node`]: ParsedField::same_node + Node, } impl ParsedFieldType { @@ -372,6 +462,38 @@ impl ParsedFieldType { } } +/// What a response parser does when the wire carries a value **outside** the legal set +/// a field's accessor checks against. +/// +/// The second dimension of an accessor, next to the type it decodes to +/// ([`crate::wap::method_field_type`]): WA spells both into one method name, and only +/// the first was ever published. See [`ParsedField::unknown_value`] for why the +/// difference is not cosmetic. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "snake_case")] +pub enum UnknownValuePolicy { + /// The parse fails: an unrecognised value makes the whole node unparseable, so the + /// variant does not match and the stanza falls through to the next one (or is + /// rejected outright). `attrEnum`, `attrEnumValues`, `attrStringEnum`, `contentEnum`, + /// `contentStringEnum`. A consumer may generate a closed enum — the client cannot see + /// a value outside it either. + Reject, + /// The field becomes null and the parse continues — `attrEnumOrNullIfUnknown`. The + /// wire may legitimately carry a value this bundle's enum does not list (a newer + /// server), so a consumer needs a fallback variant or an optional field; closing the + /// enum here rejects traffic the official client accepts. + Null, + /// The accessor has a closed value set and this build does **not** know which of the + /// above it does with a value outside it. Emitted rather than silently folded into + /// [`Reject`], the commoner state: a new WA enum accessor must be visible as + /// unclassified — `scripts/lint-ir.py` counts it and holds the count at zero — rather + /// than arriving with a policy nobody checked. + /// + /// [`Reject`]: UnknownValuePolicy::Reject + Unclassified, +} + /// How a child/leaf node's content is accessed in the response parser. #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] @@ -441,7 +563,42 @@ pub struct ParsedField { pub wire_name: Option, #[serde(rename = "type")] pub field_type: ParsedFieldType, - pub required: bool, + /// **The accessor does not tolerate absence** — it is `attrX`, not `maybeAttrX`, so + /// the parser rejects the node when the value is missing *at the point it reads it*. + /// + /// Deliberately not called `required`, which is what it was called and what it never + /// meant. `` is read with a non-`maybe` accessor and so is + /// `parserRequired`, but the client only reaches that read when the envelope's + /// `type` is `poll` — 1 of 7 values. A consumer that treated the old name as "the + /// wire always carries this" and validated on it rejected legitimate traffic. + /// + /// The IR models shape and constraint, not control flow: **no domain carries the + /// branch condition** that decides whether a field is read at all, so `true` here is + /// an upper bound on presence, never a guarantee of it. `false` is the sharper + /// claim — the parser accepts the node without the value. + /// + /// On the *request* side [`WapAttrDef::required`] is a different statement (the + /// builder always writes the attribute) and keeps its name. + #[serde(rename = "parserRequired")] + pub parser_required: bool, + /// What the parser does with a wire value **outside** this field's legal set — the + /// dimension the accessor's name carried and the IR did not. Present exactly on the + /// fields whose type is `enum`, which are the ones this document publishes a value + /// set for; absent means there is no set *here*, not that anything goes. + /// + /// The JID accessors are outside it, `attrJidEnum` included. They do reject an + /// unrecognised server, but they decode to [`ParsedFieldType::JidTyped`] and the enum + /// linker never resolves their argument, so a policy on them would name a set this + /// document does not carry. + /// + /// Without it `attrEnum` and `attrEnumOrNullIfUnknown` are the same field — same + /// `type`, same `parserRequired` — while one rejects the whole stanza on an + /// unrecognised value and the other yields null. Which one a wire enum is decides + /// whether a consumer may close its generated enum or must give it a fallback + /// variant, so reading it off the WhatsApp method name in English was the last step + /// a consumer had to do by hand. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub unknown_value: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub byte_length: Option, /// Inclusive lower bound on the byte-content length, enforced via @@ -509,8 +666,8 @@ pub struct ParsedField { /// /// [`byte_length`]: ParsedField::byte_length /// - /// [`required`] tells the two pinning forms apart, and the difference matters to an - /// emitter: a **required** literal (`literal`) is a hard discriminator — the + /// [`parser_required`] tells the two pinning forms apart, and the difference matters + /// to an emitter: a **required** literal (`literal`) is a hard discriminator — the /// attribute MUST be present and equal to this value or the variant does not match; /// an **optional** one (`optionalLiteral`) is pinned only when present — the emitter /// may omit the attribute, but must never send a contradicting value. @@ -522,7 +679,7 @@ pub struct ParsedField { /// pin constrains that attribute when present, and never the boolean itself. /// /// [`field_type`]: ParsedField::field_type - /// [`required`]: ParsedField::required + /// [`parser_required`]: ParsedField::parser_required /// [`wire_name`]: ParsedField::wire_name #[serde(default, skip_serializing_if = "Option::is_none")] pub literal_value: Option, @@ -716,6 +873,23 @@ pub struct ParsedResponse { pub pending_drops: Vec, } +impl ParsedResponse { + /// Stamp every field in this shape — the root ones and each variant's — with the + /// accessor classification that is derived rather than scanned + /// ([`ParsedField::unknown_value`]). + /// + /// Every domain that emits a [`ParsedResponse`] must run this before serializing; + /// `scripts/lint-ir.py` fails the build for one that does not, so a domain added + /// later cannot ship enum fields with no policy the way `incoming` and `notif` once + /// shipped enum links that resolved to nothing. + pub fn classify_accessors(&mut self) { + crate::wap::classify_unknown_values(&mut self.fields); + for v in &mut self.variants { + crate::wap::classify_unknown_values(&mut v.fields); + } + } +} + // ─── IQ operation ──────────────────────────────────────────────────────────────── /// A complete IQ operation: its request shape and response parser. @@ -859,6 +1033,15 @@ pub struct IqIr { pub unparseable: Vec, } +impl IqIr { + /// Run [`ParsedResponse::classify_accessors`] over every stanza's response. + pub fn classify_accessors(&mut self) { + for s in &mut self.stanzas { + s.response.classify_accessors(); + } + } +} + /// The versioned generalized-stanza IR document: every outgoing non-IQ stanza the /// bundle builds (`receipt`, `presence`, `chatstate`, `ack`, …), in the same /// `{ waVersion, … }` envelope as the other domains. @@ -870,6 +1053,17 @@ pub struct StanzaIr { pub stanzas: Vec, } +impl StanzaIr { + /// Run [`ParsedResponse::classify_accessors`] over every stanza that has a response. + pub fn classify_accessors(&mut self) { + for s in &mut self.stanzas { + if let Some(r) = s.response.as_mut() { + r.classify_accessors(); + } + } + } +} + #[cfg(test)] mod tests { use super::*; @@ -896,7 +1090,7 @@ mod tests { method: "maybeChild".into(), name: "media".into(), field_type: ParsedFieldType::JidTyped, - required: false, + parser_required: false, byte_length: None, enum_keys: None, tag: Some("media".into()), diff --git a/crates/wa-ir/src/lib.rs b/crates/wa-ir/src/lib.rs index df938f1e..fc1531e8 100644 --- a/crates/wa-ir/src/lib.rs +++ b/crates/wa-ir/src/lib.rs @@ -93,8 +93,34 @@ pub enum Scalar { /// The migration is one variant wide: handle (or ignore) `kind: "reference"` on response /// assertions. Everything else in 2.0.0 is opt-in. /// +/// # 3.0.0 — why the major bump +/// +/// The same rule applied to ourselves. This release stops three fields from asserting +/// something the extractor did not establish, and each of the three does it by widening +/// or renaming an existing field rather than by adding an optional one: +/// +/// - [`IqTarget`] gained `unset` and `unknown`. All 143 stanzas used to say +/// `s.whatsapp.net` because the enum had nowhere else to put "not resolved" — the 33 +/// `w:g2` requests included, which the client addresses to the group. A closed-enum +/// 2.x consumer now rejects the document instead of silently reading the two new +/// states as absent. +/// - [`ParsedFieldType`] gained `node`, and 617 fields that declared `string` while +/// carrying children now declare it. A consumer switching on `type` sees a value it +/// has no arm for — which is the point, since the arm it *had* was wrong. +/// - `ParsedField`'s `required` is now [`parserRequired`]. A rename rather than a doc +/// fix because the old name stated a wire fact the field never carried; a consumer +/// reading the old key gets `undefined`, which fails loudly instead of defaulting to +/// "optional". +/// +/// The rest is additive: [`ParsedField::unknown_value`], the two enum-catalog flags, and +/// the enums catalog growing to cover every `enumRef` in the IR. +/// /// [`AssertionKind`]: crate::AssertionKind -pub const SCHEMA_VERSION: &str = "2.0.0"; +/// [`IqTarget`]: crate::IqTarget +/// [`ParsedFieldType`]: crate::ParsedFieldType +/// [`parserRequired`]: crate::ParsedField::parser_required +/// [`ParsedField::unknown_value`]: crate::ParsedField::unknown_value +pub const SCHEMA_VERSION: &str = "3.0.0"; /// Envelope that stamps a domain IR document with [`SCHEMA_VERSION`] at emit /// time, without altering the inner document's shape. diff --git a/crates/wa-ir/src/notif.rs b/crates/wa-ir/src/notif.rs index e4e2919d..5afb8ea9 100644 --- a/crates/wa-ir/src/notif.rs +++ b/crates/wa-ir/src/notif.rs @@ -214,6 +214,14 @@ pub struct NotifActionField { /// rather than faked; recovering those value sets is a separate modelling question. #[serde(default, skip_serializing_if = "Option::is_none")] pub enum_ref: Option, + /// What the arm does with a wire value outside [`enum_ref`]'s set — the same + /// question [`crate::ParsedField::unknown_value`] answers on the response side, and + /// the one that decides whether a generated enum may be closed. Stamped from the + /// accessor at extraction time because this shape does not carry the accessor. + /// + /// [`enum_ref`]: NotifActionField::enum_ref + #[serde(default, skip_serializing_if = "Option::is_none")] + pub unknown_value: Option, } /// A `key → constant` pair an action arm stamps onto its result unconditionally. @@ -286,6 +294,22 @@ pub struct NotifIr { pub notifications: Vec, } +impl NotifIr { + /// Run the derived accessor classification over every typed content shape — see + /// [`crate::ParsedResponse::classify_accessors`]. + /// + /// The payload-action fields are not covered here: [`NotifActionField`] records the + /// decoded type but never the accessor it came from, so the policy cannot be derived + /// after the fact. `wa-notif` stamps those at the point it still has the accessor. + pub fn classify_accessors(&mut self) { + for n in &mut self.notifications { + if let Some(c) = n.content.as_mut() { + c.classify_accessors(); + } + } + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/crates/wa-ir/src/srvreq.rs b/crates/wa-ir/src/srvreq.rs index 9d1c8591..b537d45c 100644 --- a/crates/wa-ir/src/srvreq.rs +++ b/crates/wa-ir/src/srvreq.rs @@ -75,3 +75,12 @@ pub struct ServerRequestIr { /// Server-initiated request read-shapes, sorted by `(tag, module, parser name)`. pub requests: Vec, } + +impl ServerRequestIr { + /// Run [`ParsedResponse::classify_accessors`] over every read-shape. + pub fn classify_accessors(&mut self) { + for r in &mut self.requests { + r.shape.classify_accessors(); + } + } +} diff --git a/crates/wa-ir/src/wap.rs b/crates/wa-ir/src/wap.rs index 21f63eee..2a878d9e 100644 --- a/crates/wa-ir/src/wap.rs +++ b/crates/wa-ir/src/wap.rs @@ -3,7 +3,7 @@ //! can't drift — a past drift silently dropped `maybeAttrEnum`. Pure and //! dependency-free, so it stays WASM-safe like the rest of the IR contract. -use crate::ParsedFieldType; +use crate::{ParsedField, ParsedFieldType, UnknownValuePolicy}; // Attribute accessors. pub const ATTR_STRING: &str = "attrString"; @@ -170,6 +170,95 @@ pub fn method_field_type(m: &str) -> ParsedFieldType { } } +/// Whether an accessor validates what it reads against an enum table **the IR carries**, +/// and so has an out-of-set behaviour a consumer can act on. `attrString` accepts +/// whatever is there and has none. +/// +/// Derived from [`method_field_type`] rather than from a second list of spellings — a +/// table kept twice drifts, and the half that drifts is the one nobody is looking at. +/// Reading it off the decoded type is also what makes the condition the right one: the +/// enum-linking pass only resolves a field's `enumRef` when the field decodes to +/// [`ParsedFieldType::Enum`], so "the accessor checks a table" and "the IR publishes that +/// table" are the same question. +/// +/// The JID accessors are deliberately outside it, `attrJidEnum` included. They do reject +/// an unrecognised server — but they decode to [`ParsedFieldType::JidTyped`], the linker +/// never resolves their argument, and all 34 `attrJidEnum` fields carry neither `enumRef` +/// nor `enumKeys`. A policy on them would tell a consumer that values outside a set are +/// rejected while naming no set, which is the unusable state this dimension exists to +/// remove, not to relocate. +pub fn has_closed_value_set(m: &str) -> bool { + method_field_type(m) == ParsedFieldType::Enum +} + +/// What a parser does with a value outside the set the accessor `m` checks against, or +/// `None` when `m` checks against no set at all (see [`has_closed_value_set`]). +/// +/// `maybeAttrX` derives from `attrX` here for the same reason it does in +/// [`method_field_type`], and it is worth stating why the derivation is *sound* and not +/// merely convenient: `maybe` governs a value that is **absent**, this governs one that +/// is **present and unrecognised**, and the two are independent. `maybeAttrEnum` yields +/// null for a missing attribute and still rejects `type="wat"` — which is why the +/// optionality already published as `parserRequired` never answered this question. +pub fn method_unknown_value_policy(m: &str) -> Option { + if !has_closed_value_set(m) { + return None; + } + if let Some(rest) = m.strip_prefix("maybe") + && let Some(first) = rest.chars().next() + { + let attr: String = first.to_lowercase().chain(rest.chars().skip(1)).collect(); + return method_unknown_value_policy(&attr); + } + Some(match m { + // `WAHasProperty(set, v) ? set[v] : null` — the value is dropped, the parse + // survives, and the field is null on a value this bundle's enum does not list. + "attrEnumOrNullIfUnknown" => UnknownValuePolicy::Null, + // The legacy accessors `throw` on a miss (`to have "type"={a|b} but has value + // "c"`), and their smax counterparts return a failed `ResultOrError` the caller + // propagates — the node does not parse either way. + // + // `attrEnumValues` takes an OPTIONAL third argument it would return instead of + // throwing; no call site in the bundle passes one, and the argument is not in + // the IR, so a build where one appears must not keep reading `reject` here. + ATTR_ENUM | ATTR_ENUM_VALUES | "attrStringEnum" | "contentEnum" | "contentStringEnum" => { + UnknownValuePolicy::Reject + } + // A new enum accessor: visible as unjudged rather than assumed to reject. + _ => UnknownValuePolicy::Unclassified, + }) +} + +/// Stamp [`ParsedField::unknown_value`] from each field's accessor, throughout the +/// subtree (children and union variants alike). +/// +/// The policy is a property of the accessor, so it is filled in once here rather than at +/// every site that builds a [`ParsedField`] — five domains build them and the sixth one +/// added would forget. `scripts/lint-ir.py` re-checks the invariant against the emitted +/// documents so a domain that skips this pass fails the build rather than shipping enum +/// fields with no policy. +/// +/// A policy already on the field wins. `method` is not always the accessor the client +/// called: where an extractor merges two reads of one attribute it records the merged +/// shape, and re-deriving from that name would answer for an accessor that never ran. +/// Whoever performed the merge knows which accessor decides the out-of-set case and says +/// so; this pass only fills the silence. +pub fn classify_unknown_values(fields: &mut [ParsedField]) { + for f in fields { + if f.unknown_value.is_none() { + f.unknown_value = method_unknown_value_policy(&f.method); + } + if let Some(children) = f.children.as_mut() { + classify_unknown_values(children); + } + if let Some(variants) = f.union_variants.as_mut() { + for v in variants { + classify_unknown_values(&mut v.fields); + } + } + } +} + #[cfg(test)] mod tests { use super::*; @@ -315,6 +404,170 @@ mod tests { } } + #[test] + fn every_closed_set_accessor_has_a_policy() { + // The accessors WA checks a value set with, swept from the bundle, with what its + // implementation actually does on a miss. `attrEnum` throws + // (`to have "type"={a|b} but has value "c"`); the smax spellings return a failed + // `ResultOrError` the caller propagates; `attrEnumOrNullIfUnknown` returns null. + // + // Pinned so a spelling that appears in a later bundle has to be judged: an + // accessor that falls through classifies `Unclassified`, which this asserts none + // of these does, and which `scripts/lint-ir.py` holds at zero in the emitted + // documents. + for (m, want) in [ + (ATTR_ENUM, UnknownValuePolicy::Reject), + (MAYBE_ATTR_ENUM, UnknownValuePolicy::Reject), + (ATTR_ENUM_VALUES, UnknownValuePolicy::Reject), + ("attrStringEnum", UnknownValuePolicy::Reject), + ("contentEnum", UnknownValuePolicy::Reject), + ("contentStringEnum", UnknownValuePolicy::Reject), + ("attrEnumOrNullIfUnknown", UnknownValuePolicy::Null), + ] { + assert_eq!(method_unknown_value_policy(m), Some(want), "{m}"); + } + // An accessor whose table the IR does not carry has no policy — absent is "there + // is no set here", not "anything goes past a set we forgot". Both JID accessors + // are deliberately in this half: they do reject an unrecognised server, but the + // linker never resolves their argument, so a policy would name a set the document + // does not contain. + for m in [ + ATTR_STRING, + ATTR_INT, + CONTENT_BYTES, + ATTR_USER_JID, + HAS_ATTR, + ATTR_JID_WITH_TYPE, + "attrJidEnum", + "attrStringFromReference", + ] { + assert_eq!(method_unknown_value_policy(m), None, "{m}"); + } + // Every accessor the type table calls an enum is judged. `Unclassified` is not + // reachable by any spelling today, by construction — this is the assertion that + // keeps it that way, since the state only appears when someone teaches + // `method_field_type` a new enum accessor and not the table below it. + // `scripts/lint-ir.py` holds the emitted count of it at zero for the same reason. + for m in [ + ATTR_ENUM, + MAYBE_ATTR_ENUM, + ATTR_ENUM_VALUES, + "attrStringEnum", + "contentEnum", + "contentStringEnum", + "attrEnumOrNullIfUnknown", + ] { + assert!(has_closed_value_set(m), "{m}"); + assert_ne!( + method_unknown_value_policy(m), + Some(UnknownValuePolicy::Unclassified), + "{m} must be judged, not defaulted", + ); + } + } + + #[test] + fn maybe_spellings_inherit_their_unknown_value_policy() { + // Same derivation rule as `method_field_type`, and it has to be: the two + // questions are independent. `maybe` says the ATTRIBUTE may be absent; the policy + // says what happens when it is present with a value the enum does not list. + // `maybeAttrEnum` is `hasAttr(x) ? attrEnum(x) : null`, so it still rejects + // `type="wat"` — enumerating the `maybe` spellings separately is how one of them + // would eventually get the other answer. + for base in [ATTR_ENUM, ATTR_ENUM_VALUES, "attrStringEnum", "contentEnum"] { + let maybe = format!("maybe{}{}", base[..1].to_uppercase(), &base[1..]); + assert_eq!( + method_unknown_value_policy(&maybe), + method_unknown_value_policy(base), + "{maybe} must judge unknown values like {base}", + ); + } + assert!(is_optional_method(MAYBE_ATTR_ENUM)); + assert_eq!( + method_unknown_value_policy(MAYBE_ATTR_ENUM), + Some(UnknownValuePolicy::Reject), + ); + } + + #[test] + fn classification_reaches_children_and_union_variants() { + // The pass must not stop at the root: an enum field nested under a mixin + // container or inside a union arm is where the policy matters most, since that is + // where a generator decides whether to close the enum. + let leaf = |m: &str| ParsedField { + method: m.to_string(), + field_type: method_field_type(m), + ..Default::default() + }; + let mut fields = vec![ + ParsedField { + method: String::new(), + field_type: ParsedFieldType::Node, + children: Some(vec![leaf(ATTR_ENUM)]), + ..Default::default() + }, + ParsedField { + method: String::new(), + field_type: ParsedFieldType::Union, + union_variants: Some(vec![crate::UnionVariant { + name: "A".into(), + fields: vec![leaf("attrEnumOrNullIfUnknown")], + assertions: vec![], + }]), + ..Default::default() + }, + ]; + classify_unknown_values(&mut fields); + assert_eq!(fields[0].unknown_value, None, "the container has no set"); + assert_eq!( + fields[0].children.as_ref().unwrap()[0].unknown_value, + Some(UnknownValuePolicy::Reject), + ); + assert_eq!( + fields[1].union_variants.as_ref().unwrap()[0].fields[0].unknown_value, + Some(UnknownValuePolicy::Null), + ); + } + + #[test] + fn a_policy_the_extractor_already_judged_survives_the_pass() { + // Where two reads of one attribute are merged into one field, `method` names the + // merged shape and not the accessor that decides an out-of-set value. Re-deriving + // from `attrEnum` there would publish a rejection the client does not perform, so + // a policy already on the field is left alone — including a deliberate + // `Unclassified`, which must stay visible rather than be overwritten with a guess. + let mut fields = vec![ + ParsedField { + method: ATTR_ENUM.into(), + field_type: ParsedFieldType::Enum, + unknown_value: Some(UnknownValuePolicy::Null), + ..Default::default() + }, + ParsedField { + method: MAYBE_ATTR_ENUM.into(), + field_type: ParsedFieldType::Enum, + unknown_value: Some(UnknownValuePolicy::Unclassified), + ..Default::default() + }, + ParsedField { + method: ATTR_ENUM.into(), + field_type: ParsedFieldType::Enum, + ..Default::default() + }, + ]; + classify_unknown_values(&mut fields); + assert_eq!(fields[0].unknown_value, Some(UnknownValuePolicy::Null)); + assert_eq!( + fields[1].unknown_value, + Some(UnknownValuePolicy::Unclassified) + ); + assert_eq!( + fields[2].unknown_value, + Some(UnknownValuePolicy::Reject), + "silence is still filled in" + ); + } + #[test] fn optional_and_field_types() { assert!(is_optional_method(MAYBE_ATTR_ENUM)); diff --git a/crates/wa-ir/tests/committed_ir.rs b/crates/wa-ir/tests/committed_ir.rs new file mode 100644 index 00000000..feefbdc8 --- /dev/null +++ b/crates/wa-ir/tests/committed_ir.rs @@ -0,0 +1,215 @@ +//! Invariants checked against the **committed** `generated/`, not a fixture. +//! +//! A fixture proves the code does what the test wrote down. These questions are about +//! the document a consumer actually downloads: whether the key it is told to index by is +//! a key, and whether every reference in the IR lands somewhere. Both were false before, +//! and both were false in a way no unit test could have seen — the collisions and the +//! missing entries only exist at the scale of the whole bundle. +//! +//! Skips (rather than fails) when a document is absent, so a fresh checkout without +//! `generated/` still runs the rest of the suite. + +use std::collections::{BTreeMap, BTreeSet}; + +/// The domains whose documents carry `enumRef` references. +const REFERENCING_DOMAINS: &[&str] = &["iq", "incoming", "notif", "srvreq", "stanza"]; + +fn read(domain: &str) -> Option { + let path = format!( + "{}/../../generated/{domain}/index.json", + env!("CARGO_MANIFEST_DIR") + ); + let raw = std::fs::read_to_string(&path).ok()?; + Some(serde_json::from_str(&raw).unwrap_or_else(|e| panic!("parse {path}: {e}"))) +} + +/// Every `enumRef` object anywhere in `v`, as `(module, name)` → its variant values. +fn enum_refs(v: &serde_json::Value, out: &mut BTreeMap<(String, String), BTreeSet>) { + match v { + serde_json::Value::Object(map) => { + for (k, child) in map { + if k == "enumRef" + && let (Some(m), Some(n)) = (child.get("module"), child.get("name")) + && let (Some(m), Some(n)) = (m.as_str(), n.as_str()) + { + let values = child + .get("variants") + .and_then(|v| v.as_array()) + .map(|vs| { + vs.iter() + .filter_map(|v| v.get("value").map(ToString::to_string)) + .collect() + }) + .unwrap_or_default(); + out.insert((m.to_string(), n.to_string()), values); + } + enum_refs(child, out); + } + } + serde_json::Value::Array(items) => items.iter().for_each(|i| enum_refs(i, out)), + _ => {} + } +} + +#[test] +fn the_enum_catalog_key_is_module_and_name_and_it_does_not_collide() { + let Some(doc) = read("enums") else { + eprintln!("skip: generated/enums/index.json not committed"); + return; + }; + let enums: &Vec = doc["enums"].as_array().expect("enums array"); + + let mut by_key: BTreeMap<(&str, &str), usize> = BTreeMap::new(); + let mut by_name: BTreeMap<&str, usize> = BTreeMap::new(); + for e in enums { + let (m, n) = (e["module"].as_str().unwrap(), e["name"].as_str().unwrap()); + *by_key.entry((m, n)).or_default() += 1; + *by_name.entry(n).or_default() += 1; + } + + let key_collisions: Vec<_> = by_key.iter().filter(|&(_, c)| *c > 1).collect(); + assert!( + key_collisions.is_empty(), + "(module, name) is the catalog key and must be unique: {key_collisions:?}", + ); + + // The other half, and the reason the key had to be spelled out: `name` alone is NOT + // one. Asserted as a positive fact rather than left implicit, so a consumer — or a + // future version of this repo — cannot quietly go back to indexing by name and have + // the suite agree. `ENUM_FALSE_TRUE` is defined by eleven different modules, and + // `EventType`'s two definitions disagree on `valueKind`. + let name_collisions: BTreeSet<&str> = by_name + .iter() + .filter(|&(_, c)| *c > 1) + .map(|(n, _)| *n) + .collect(); + assert!( + !name_collisions.is_empty(), + "name is not a key, and this asserts the collisions are still there to prove it. \ + If a bundle ever makes `name` unique, that is a fact worth re-reading this \ + contract over — not a licence to index by it, since nothing keeps it unique.", + ); + + // The named examples are illustrations, not invariants: WhatsApp may rename or drop + // either one without anything in this repository regressing. Checked when present, + // noted when not, so an upstream rename does not read as a failure here. + match enums.iter().filter(|e| e["name"] == "EventType").count() { + 0 => eprintln!("note: EventType is no longer in the catalog"), + n => { + assert!(n > 1, "EventType used to be defined twice"); + let kinds: BTreeSet<&str> = enums + .iter() + .filter(|e| e["name"] == "EventType") + .filter_map(|e| e["valueKind"].as_str()) + .collect(); + assert_eq!( + kinds.len(), + 2, + "EventType's two definitions disagree on valueKind — indexing by name \ + picks one and generates a type from the other's universe", + ); + } + } +} + +#[test] +fn every_enum_reference_in_the_ir_resolves_against_the_catalog() { + let Some(catalog) = read("enums") else { + eprintln!("skip: generated/enums/index.json not committed"); + return; + }; + let known: BTreeSet<(String, String)> = catalog["enums"] + .as_array() + .expect("enums array") + .iter() + .map(|e| { + ( + e["module"].as_str().unwrap().to_string(), + e["name"].as_str().unwrap().to_string(), + ) + }) + .collect(); + + let mut refs = BTreeMap::new(); + let mut seen_a_domain = false; + for d in REFERENCING_DOMAINS { + if let Some(doc) = read(d) { + seen_a_domain = true; + enum_refs(&doc, &mut refs); + } + } + assert!(seen_a_domain, "no referencing domain committed"); + assert!(!refs.is_empty(), "the IR references no enum at all"); + + let unresolved: Vec<_> = refs.keys().filter(|k| !known.contains(k)).collect(); + assert!( + unresolved.is_empty(), + "{} enum reference(s) resolve against no catalog entry — a consumer reading the \ + catalog alone generates a fraction of the types the IR names: {unresolved:?}", + unresolved.len(), + ); +} + +#[test] +fn a_bit_position_enum_is_distinguishable_from_a_code_enum() { + let Some(doc) = read("enums") else { + eprintln!("skip: generated/enums/index.json not committed"); + return; + }; + let enums = doc["enums"].as_array().expect("enums array"); + let bit: Vec<&serde_json::Value> = enums + .iter() + .filter(|e| e["bitPosition"] == serde_json::Value::Bool(true)) + .collect(); + assert!( + !bit.is_empty(), + "no enum is marked as bit positions — the shift evidence stopped being found", + ); + for e in &bit { + assert_eq!( + e["valueKind"], "int", + "a wire token has no bit to shift into" + ); + } + // The pair the finding is about: two int enums, same shape, different meaning. + // `HID_FAILED_DECRYPT: 2` goes on the wire as `1 << 2 == 4`; a nack code of 2 goes + // on the wire as 2. Nothing but this flag separates them. + let receipt = bit + .iter() + .find(|e| e["name"] == "ReceiptModeBitPosition") + .expect("ReceiptModeBitPosition is marked"); + assert_eq!(receipt["module"], "WAWebSendReceiptJobCommon"); + let code_enum = enums + .iter() + .find(|e| e["valueKind"] == "int" && e["bitPosition"] != serde_json::Value::Bool(true)) + .expect("a plain int enum to contrast with"); + assert_ne!(receipt["bitPosition"], code_enum["bitPosition"]); +} + +#[test] +fn a_generated_enum_name_is_marked_as_one() { + let Some(doc) = read("enums") else { + eprintln!("skip: generated/enums/index.json not committed"); + return; + }; + let enums = doc["enums"].as_array().expect("enums array"); + let synthetic: Vec<&str> = enums + .iter() + .filter(|e| e["syntheticName"] == serde_json::Value::Bool(true)) + .map(|e| e["name"].as_str().unwrap()) + .collect(); + assert!(!synthetic.is_empty(), "no name is marked generated"); + // The invariant: the flag SEPARATES generated names from chosen ones, so a catalog + // where everything is marked says nothing. That holds whatever WA spells them. + assert!( + synthetic.len() < enums.len(), + "every name is marked generated — the flag distinguishes nothing", + ); + // `ENUM_` is what WA's emitter happens to prefix today, not something the rule + // requires: it reconstructs the name from the variants and compares. Noted rather + // than asserted, since a future bundle spelling them differently would be news, not + // a regression here. + if let Some(other) = synthetic.iter().find(|n| !n.starts_with("ENUM_")) { + eprintln!("note: a generated name no longer uses WA's `ENUM_` prefix: {other}"); + } +} diff --git a/crates/wa-notif/src/actions.rs b/crates/wa-notif/src/actions.rs index fab680cb..416ccac8 100644 --- a/crates/wa-notif/src/actions.rs +++ b/crates/wa-notif/src/actions.rs @@ -2016,6 +2016,7 @@ fn read_field<'b, 'a>( required: !optional_by_guard && !wap::is_optional_method(&acc.method), content: acc.content, enum_ref, + unknown_value: wap::method_unknown_value_policy(&acc.method), }) } @@ -2069,6 +2070,7 @@ fn value_selection<'b, 'a>( wire_name: x.wire_name, content: x.content, enum_ref: x.enum_arg.and_then(|a| consts.enum_ref(a)), + unknown_value: wap::method_unknown_value_policy(&x.method), })) } else { Some(None) // two sources for one key: refuse @@ -2209,6 +2211,7 @@ fn guarded_field(key: &str, acc: Accessor, consts: &ConstResolver) -> NotifActio required: false, content: acc.content, enum_ref, + unknown_value: wap::method_unknown_value_policy(&acc.method), } } @@ -2510,6 +2513,7 @@ fn collect_accessor_fields<'b, 'a>( required: !wap::is_optional_method(&acc.method), content: acc.content, enum_ref, + unknown_value: wap::method_unknown_value_policy(&acc.method), } }) .into_iter() @@ -2650,4 +2654,9 @@ fn same_wire_read(a: &NotifActionField, b: &NotifActionField) -> bool { && a.field_type == b.field_type && a.content == b.content && a.enum_ref == b.enum_ref + // Two branches reading the same attribute against the same enum are still not the + // same read when one rejects an unrecognised value and the other nulls it. Leaving + // it out of the identity merged them and kept whichever policy came first, so the + // action table would state the opposite behaviour for one of the two branches. + && a.unknown_value == b.unknown_value } diff --git a/crates/wa-notif/src/lib.rs b/crates/wa-notif/src/lib.rs index 55f4b542..4274095b 100644 --- a/crates/wa-notif/src/lib.rs +++ b/crates/wa-notif/src/lib.rs @@ -214,15 +214,19 @@ pub fn extract_notif_with_diagnostics( .entry("action enum table not structurally resolvable".to_string()) .or_default() += action_enum_drops; } - ( - NotifIr { - wa_version: wa_version.to_string(), - dispatcher_modules, - stanza_tags: dispatch.stanza_tags, - notifications: dispatch.notifications, - }, - drops, - ) + let mut ir = NotifIr { + wa_version: wa_version.to_string(), + dispatcher_modules, + stanza_tags: dispatch.stanza_tags, + notifications: dispatch.notifications, + }; + // Here, not in the caller. This is where the versioned IR is minted, and + // `unknownValue` is part of what it says — a library consumer serializing what a + // documented extractor returns must not get a document `lint-ir.py` would reject for + // a normalization step it was never told about. The pass fills silence only, so the + // pipeline's own call after this one is a no-op rather than a conflict. + ir.classify_accessors(); + (ir, drops) } /// Fold one dispatcher's arms into the accumulated catalog. New tags/types are diff --git a/crates/wa-scan/src/alias.rs b/crates/wa-scan/src/alias.rs index 0f683bcd..d19f633a 100644 --- a/crates/wa-scan/src/alias.rs +++ b/crates/wa-scan/src/alias.rs @@ -16,9 +16,9 @@ //! Only the handful of owners the scanner cares about are tracked, so the map //! stays tiny and a pure-`.wap` module yields an empty map (no behavior change). -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; -use oxc_ast::ast::{AssignmentExpression, Expression}; +use oxc_ast::ast::{AssignmentExpression, Expression, VariableDeclarator}; use oxc_ast_visit::{Visit, walk}; use wa_oxc::{arg_expr, as_call, as_identifier, as_string_lit, assignment_target_name}; @@ -87,27 +87,71 @@ pub(crate) fn resolve_owner(e: &Expression, aliases: &AliasMap) -> Option<&'stat pub(crate) fn build_alias_map(program: &oxc_ast::ast::Program) -> AliasMap { let mut b = AliasBuilder { map: AliasMap::default(), + ambiguous: HashSet::new(), }; b.visit_program(program); + // A name that also holds something else somewhere in the module is not an alias. The + // map is keyed by name with no scope attached, so a nested `var w = o("WAWap")` would + // otherwise speak for every `w` in the module — including an unrelated builder's, whose + // `w.S_WHATSAPP_NET` would then be published as a fixed address. Dropping the name + // costs a resolution the scanner would have to earn back; keeping it risks a wrong + // address, and this IR's whole point is that those are not the same mistake. + for name in &b.ambiguous { + b.map.map.remove(name); + } b.map } struct AliasBuilder { map: AliasMap, + /// Names bound to more than one thing in the module — a different tracked owner, or + /// any non-require value. Only names *given a value* count: `var n;` followed by + /// `(n = o("WAWap"))` is one binding, which is how minified modules spell it. + ambiguous: HashSet, +} + +impl AliasBuilder { + /// Record what `name` was bound to, or mark it ambiguous if that disagrees with a + /// binding already seen. + fn bind(&mut self, name: &str, value: Option<&'static str>) { + // A `None` value is a binding to something that is not a tracked module object. + // Not a conflict: minified modules reuse every short name, so treating it as one + // costs 20 requests their addressee (measured) to remove a hazard that needs the + // other object to carry a `WAWap`-only constant. + let Some(owner) = value else { return }; + if self.map.map.get(name).is_some_and(|prev| *prev != owner) { + self.ambiguous.insert(name.to_string()); + } else { + self.map.map.insert(name.to_string(), owner); + } + } } impl<'a> Visit<'a> for AliasBuilder { fn visit_assignment_expression(&mut self, assign: &AssignmentExpression<'a>) { // `X = o("Owner")` — both standalone and embedded in a larger expression // (the visitor reaches the inner assignment of `(X = o(...)).method()`). - if let (Some(name), Some(owner)) = ( - assignment_target_name(&assign.left), - require_owner(&assign.right), - ) { - self.map.map.insert(name.to_string(), owner); + if let Some(name) = assignment_target_name(&assign.left) { + let owner = require_owner(&assign.right); + self.bind(name, owner); } walk::walk_assignment_expression(self, assign); } + + fn visit_variable_declarator(&mut self, decl: &VariableDeclarator<'a>) { + // `var w = o("Owner")` — the same binding written as a declarator instead of an + // assignment. Minified modules use both spellings for the same thing, and the + // bundle really does contain the declarator form, so recognizing only + // `X = o(...)` leaves the identical code unresolved depending on how it was + // written. + if let Some(id) = decl.id.get_binding_identifier() + && let Some(init) = &decl.init + { + let owner = require_owner(init); + self.bind(&id.name, owner); + } + walk::walk_variable_declarator(self, decl); + } } #[cfg(test)] @@ -130,9 +174,51 @@ mod tests { ); assert_eq!(m.owner_of("n"), Some("WASmaxJsx")); assert_eq!(m.owner_of("t"), Some("WASmaxAttrs")); - // `var w = o("WAWap")` is a declarator init, not an AssignmentExpression, - // so it is NOT captured here — resolve_owner handles `o("WAWap")` directly. - assert_eq!(m.owner_of("w"), None); + assert_eq!(m.owner_of("w"), Some("WAWap")); + } + + #[test] + fn a_declarator_binding_is_the_same_alias_as_an_assignment() { + // The two spellings are the same code to a reader, so they must be the same + // code to the scanner: whether the server constant is reached through + // `(n = o("WAWap")).S_WHATSAPP_NET` or through a `var` bound earlier decides + // nothing about what the attribute means. + let m = aliases(r#"var w = o("WAWap"), q = o("WASmaxJsx");"#); + assert_eq!(m.owner_of("w"), Some("WAWap")); + assert_eq!(m.owner_of("q"), Some("WASmaxJsx")); + + // Still only the tracked owners, and still nothing for a non-require init. + let m = aliases(r#"var w = o("WAWebSomethingElse"), v = someObject;"#); + assert!(m.is_empty()); + } + + #[test] + fn one_name_naming_two_owners_names_neither() { + // The map is keyed by name with no scope attached, so a name bound to two + // different tracked owners in one module cannot speak for either — whichever + // walk order wins, half its uses get the wrong module. Unresolved is the only + // answer that is true at both sites. + let m = aliases(r#"var n = o("WAWap"); function f(){ var n = o("WASmaxJsx"); }"#); + assert_eq!(m.owner_of("n"), None); + + // Binding the same owner twice is not a conflict, and neither is the + // `var n;` … `(n = o("WAWap"))` spelling the bundle actually uses — the bare + // declaration gives the name no value. + let m = aliases( + r#"var n; var u = (n = o("WAWap")).wap("iq", {to: n.S_WHATSAPP_NET}); + function f(){ var t = (n = o("WAWap")).generateId(); }"#, + ); + assert_eq!(m.owner_of("n"), Some("WAWap")); + + // A name that also holds an untracked value keeps its alias. Minified modules + // reuse every short identifier, so treating that as a conflict costs 20 requests + // their addressee (measured on this bundle) — and reading a `WAWap`-only constant + // off the other object would be `undefined`, which is not code WA ships. + let m = aliases( + r#"function a(){ var w = o("WAWap"); return w.S_WHATSAPP_NET; } + function b(){ var w = somethingElse(); return w.other; }"#, + ); + assert_eq!(m.owner_of("w"), Some("WAWap")); } #[test] diff --git a/crates/wa-scan/src/attrs.rs b/crates/wa-scan/src/attrs.rs index 9c09cf14..78f34b1c 100644 --- a/crates/wa-scan/src/attrs.rs +++ b/crates/wa-scan/src/attrs.rs @@ -12,6 +12,17 @@ use crate::alias::{AliasMap, resolve_owner}; use crate::module::require_module_name; use wa_oxc::{arg_expr, as_call, as_member, as_string_lit, callee_method, callee_object}; +/// The wire value of a `WAWap` bare-server JID constant, or `None` for any other +/// property. Only the two servers an `` is ever addressed to; the JID *flavour* +/// constructors (`GROUP_JID(x)`, `JID(x)`) are calls and are classified as such. +fn wap_server_constant(prop: &str) -> Option<&'static str> { + match prop { + "S_WHATSAPP_NET" => Some("s.whatsapp.net"), + "G_US" => Some("g.us"), + _ => None, + } +} + /// `o("Mod").EnumName.VARIANT` → `(module, enumName)`, when the base is a `require` /// call (`o("Mod")`) and `EnumName` is enum-shaped. The specific variant is dropped — /// the attribute links to the whole enum. @@ -262,16 +273,27 @@ fn classify_attr_node<'a>( } } - // Property access X.DROP_ATTR → optional. (No need to special-case - // `X.S_WHATSAPP_NET`: target detection already defaults `to:` to Server when - // it isn't the literal "g.us", and leaving it Dynamic keeps the legacy wap - // path byte-exact.) + // Property access X.DROP_ATTR → optional. if let Some((_, prop)) = as_member(value) && prop == "DROP_ATTR" { return owned(WapAttrKind::Optional, None, false); } + // `WAWap.S_WHATSAPP_NET` / `WAWap.G_US` — the two bare-server JIDs, built once as + // `WapJid.create(null, "s.whatsapp.net")` / `(null, "g.us")`. They are compile-time + // constants, so classifying them `Dynamic` was a loss, and it was the loss that made + // every `` claim the server: the target rule keyed on the literal `"g.us"`, which + // the builders had already stopped writing, and everything else fell through to + // Server. Gated on the owner resolving to `WAWap` so an unrelated property of that + // name cannot be read as an address. + if let Some((obj, prop)) = as_member(value) + && let Some(server) = wap_server_constant(prop) + && resolve_owner(obj, aliases) == Some("WAWap") + { + return owned(WapAttrKind::Const, Some(server.to_string()), true); + } + // Ternary mentioning DROP_ATTR → optional (matches JSON.stringify().includes()). // FORM B: when the guard tests an enum (`cond === o("Mod").Enum.VARIANT ? … : // DROP_ATTR`), link the attr to that enum — but only via `form_b_link`, which keeps diff --git a/crates/wa-scan/src/lib.rs b/crates/wa-scan/src/lib.rs index 6874613e..4ff7acc5 100644 --- a/crates/wa-scan/src/lib.rs +++ b/crates/wa-scan/src/lib.rs @@ -348,14 +348,18 @@ pub fn extract_iq_from_modules_with_diagnostics( wa_version: &str, ) -> (IqIr, IqScanStats) { let (scan, stats) = scan_iq_with_diagnostics(source, module_defs); - ( - IqIr { - wa_version: wa_version.to_string(), - stanzas: scan.stanzas, - unparseable: scan.unparseable, - }, - stats, - ) + let mut ir = IqIr { + wa_version: wa_version.to_string(), + stanzas: scan.stanzas, + unparseable: scan.unparseable, + }; + // Here, not in the caller. This function is where the versioned IR is minted, and + // `unknownValue` is part of what that IR says — a library consumer serializing the + // return value of a documented extractor must not get a document `lint-ir.py` would + // reject for a normalization step it was never told about. The pass fills silence + // only, so the pipeline's own call after this one is a no-op rather than a conflict. + ir.classify_accessors(); + (ir, stats) } /// Convenience: split a whole bundle into modules, then extract the IQ IR. diff --git a/crates/wa-scan/src/mixin_index.rs b/crates/wa-scan/src/mixin_index.rs index e5f9992c..30557704 100644 --- a/crates/wa-scan/src/mixin_index.rs +++ b/crates/wa-scan/src/mixin_index.rs @@ -45,7 +45,10 @@ pub(crate) struct MixinIqFragment { /// `type`: inline `type:"get"/"set"`, else inferred from the Get/Set token in /// the merge-fn name. `None` if neither. pub iq_type: Option, - /// `to:"g.us"` → Group; otherwise (S_WHATSAPP_NET / absent) → Server. + /// Who the fragment's `to` addresses, read by the same rule as a request's own root + /// ([`crate::module::iq_target_from_to`]). `None` when the fragment writes no `to` at + /// all — distinct from [`IqTarget::Unknown`], which is a `to` that resolved to no + /// server. pub target: Option, /// Other `WASmaxOut…` mixins this mixin folds in (by module name), in source /// order with duplicates removed — for transitive resolution (e.g. a Hack @@ -283,16 +286,9 @@ impl<'a> Visit<'a> for FragmentVisitor<'_> { Some("set") => self.frag.iq_type = Some(IqType::Set), _ => {} } - let to_group = attrs.iter().any(|a| { - a.name == "to" - && a.kind == WapAttrKind::Const - && a.value.as_deref() == Some("g.us") - }); - if to_group { - self.frag.target = Some(IqTarget::Group); - } else if attrs.iter().any(|a| a.name == "to") { - self.frag.target = Some(IqTarget::Server); - } + // Same rule as a request's own root, so a fragment's `to` and a + // request's cannot be read differently. + self.frag.target = crate::module::iq_target_from_to(&attrs); } // The fragment's own children (e.g. `spam_list{spam_flow}`) — merged by // tag into a Request's children so cross-module attrs/children survive. @@ -348,6 +344,7 @@ pub(crate) fn resolve( let mut iq_type: Option = None; let mut type_conflict = false; let mut target: Option = None; + let mut target_conflict = false; while let Some(name) = queue.pop_front() { if !visited.insert(name.clone()) { @@ -370,11 +367,19 @@ pub(crate) fn resolve( _ => {} } } - // First Group wins for target; Server is the default elsewhere. - if target != Some(IqTarget::Group) - && let Some(tg) = frag.target - { - target = Some(tg); + // Two fragments naming DIFFERENT addressees is not a precedence question. WA + // writes runtime routers as mixin groups — `mergeBaseGetGroupOrServerMixinGroup` + // is `if (args.baseGetGroup) …GroupMixin else if (args.isBaseGetServer) + // …ServerMixin`, and the closure reaches both arms — so a request folding one in + // has two possible addressees and the argument decides. Picking either publishes + // an address the client may not send to, which is this whole change's subject + // one level in. Recorded as a conflict, exactly like `xmlns` and `type` above. + if let Some(tg) = frag.target { + match target { + None => target = Some(tg), + Some(prev) if prev != tg => target_conflict = true, + _ => {} + } } for c in &frag.merged_callees { if !visited.contains(c) { @@ -386,7 +391,14 @@ pub(crate) fn resolve( ( if xmlns_conflict { None } else { xmlns }, if type_conflict { None } else { iq_type }, - target, + // `Unknown`, not `None`: a fragment DID name an addressee, so the request has one + // — reporting nothing would let the caller read it as `unset` and send no `to`. + // What is unknown is which of them, which is what `Unknown` says. + if target_conflict { + Some(IqTarget::Unknown) + } else { + target + }, ) } @@ -547,6 +559,56 @@ mod tests { MixinIndex { by_module } } + #[test] + fn two_fragments_naming_different_addressees_name_neither() { + // WA writes runtime routers as mixin groups — + // `mergeBaseGetGroupOrServerMixinGroup` is `if (args.baseGetGroup) …GroupMixin + // else if (args.isBaseGetServer) …ServerMixin` — and the transitive walk reaches + // both arms. Whichever the walk picked, the published addressee would be one the + // client may not use: `GetGroupProfilePictures` addresses a group's own JID or + // the group server, and the caller's argument decides. `xmlns` and `type` have + // recorded conflicts in this function all along; the addressee had not. + let with_target = |t: IqTarget| { + let mut f = frag(Some("x"), Some(IqType::Get), &[]); + f.target = Some(t); + f + }; + for (first, second) in [ + (IqTarget::Server, IqTarget::GroupServer), + (IqTarget::Server, IqTarget::GroupJid), + (IqTarget::GroupServer, IqTarget::GroupJid), + (IqTarget::Unknown, IqTarget::Server), + (IqTarget::Server, IqTarget::Unknown), + ] { + let idx = index(&[("A", with_target(first)), ("B", with_target(second))]); + let (_, _, got) = resolve(&idx, &["A".into(), "B".into()]); + assert_eq!( + got, + Some(IqTarget::Unknown), + "{first:?} vs {second:?}: two addressees, so neither is the answer" + ); + } + + // Agreement is not a conflict, and one fragment naming an addressee still + // resolves it — the union must not become useless in the name of caution. + let idx = index(&[ + ("A", with_target(IqTarget::GroupJid)), + ("B", with_target(IqTarget::GroupJid)), + ]); + assert_eq!( + resolve(&idx, &["A".into(), "B".into()]).2, + Some(IqTarget::GroupJid) + ); + let idx = index(&[ + ("A", frag(Some("x"), Some(IqType::Get), &[])), + ("B", with_target(IqTarget::Server)), + ]); + assert_eq!( + resolve(&idx, &["A".into(), "B".into()]).2, + Some(IqTarget::Server) + ); + } + #[test] fn unions_xmlns_and_type_from_two_mixins() { // spam case: one mixin gives xmlns, another gives type. diff --git a/crates/wa-scan/src/module.rs b/crates/wa-scan/src/module.rs index 7a453498..0f4be883 100644 --- a/crates/wa-scan/src/module.rs +++ b/crates/wa-scan/src/module.rs @@ -141,15 +141,28 @@ pub fn scan_module_outcome( // // The mixin union is module-level (one set of referenced mixins per module), // so compute it once and only when some iq call actually needs it. - let needs_resolution = scanner - .iq_calls - .iter() - .any(|iq| iq.namespace.is_none() || iq.iq_type.is_none()); + // A call also needs the union when it has no addressee of its own: a `to` the local + // builder never writes is exactly the one a folded-in fragment supplies, and leaving + // the union uncomputed would report `unset` for a request that has a target. + let needs_resolution = scanner.iq_calls.iter().any(|iq| { + iq.namespace.is_none() + || iq.iq_type.is_none() + || !iq.target.is_some_and(|t| t.is_resolved()) + }); let mixin_resolved = if needs_resolution { crate::mixin_index::resolve(mixins, &scanner.mixin_callees) } else { (None, None, None) }; + // The union names the fragments the MODULE folds in, not the ones this call does. + // With one `` builder in the module those are the same statement; with more than + // one they are not, and handing a sibling's addressee to a request that writes no `to` + // publishes an address it may never send to. Withheld rather than guessed — and the + // withholding is remembered, because "some fragment in this module names an addressee + // and we cannot say whose" is `Unknown`, not `Unset`. + let one_builder = scanner.iq_calls.len() == 1; + let mixin_target = if one_builder { mixin_resolved.2 } else { None }; + let target_unattributable = !one_builder && mixin_resolved.2.is_some(); // Cross-module `mergeStanzas` fragments: the children/attrs the referenced // mixins add to the `` (e.g. `spam_list{spam_flow}`). Merged by tag into the // locally-built children so those cross-module fields aren't lost. @@ -174,10 +187,30 @@ pub fn scan_module_outcome( if iq.iq_type.is_none() { iq.iq_type = mixin_resolved.1; } - // Adopt a Group target only if a mixin said so and we hadn't already. - if iq.target != IqTarget::Group && mixin_resolved.2 == Some(IqTarget::Group) { - iq.target = IqTarget::Group; - } + // The local builder's own `to` is the request's; a fragment only answers for + // one the request did not write. That ordering is what keeps + // `IqTarget::Unknown` meaning what its doc says — the addressee is a parameter + // of the call — instead of being quietly upgraded to whatever server some + // mixin happened to name. + // + // The `Unknown` arm is the other half: an addressee NEITHER side wrote is + // `Unset`, but one that either side wrote and neither could resolve is + // `Unknown`. Collapsing them would tell an emitter to send no `to` for a + // request that has one — which is the shape of all four newsletter requests, + // `smax("iq", null, …)` locally with `mergeNewsletterIQGetRequestMixin` + // supplying `to: WAWap.JID(x)`. + iq.target = Some(match (iq.target, mixin_target) { + (Some(local), _) if local.is_resolved() => local, + (None, Some(from_mixin)) if from_mixin.is_resolved() => from_mixin, + (Some(IqTarget::Unknown), _) | (_, Some(IqTarget::Unknown)) => IqTarget::Unknown, + // A module-scoped addressee this call cannot be shown to fold in. The + // request may well have one, so `Unset` — "the client writes no `to`" — + // would be a false statement about it. + (None, None) if target_unattributable => IqTarget::Unknown, + // Nothing wrote a `to` on either side. `iq_target_from_to` yields `None` + // for that, never `Unset`, so this is the only arm that can produce it. + _ => IqTarget::Unset, + }); // Guard: a stanza needs both a namespace and a type, or it's dropped. match (iq.namespace.clone(), iq.iq_type) { (Some(namespace), Some(iq_type)) => { @@ -188,7 +221,7 @@ pub fn scan_module_outcome( Some(ResolvedIqCall { namespace, iq_type, - target: iq.target, + target: iq.target.unwrap_or(IqTarget::Unset), children: iq.children, export: iq.export, }) @@ -342,7 +375,9 @@ fn ends_ci(s: &str, suffix: &str) -> bool { struct IqCall { namespace: Option, iq_type: Option, - target: IqTarget, + /// `None` when the builder writes no `to` — distinct from a `to` that resolved to + /// nothing, which is [`IqTarget::Unknown`] and must not be overwritten by a mixin. + target: Option, children: Vec, /// The module export whose function lexically encloses this call (e.g. /// `e.sendFooBar = function(){ … wap("iq") … }` → `sendFooBar`), captured @@ -446,6 +481,31 @@ fn mixin_type_hint(call: &CallExpression) -> Option { iq_type_from_merge_name(callee_method(call)?) } +/// Who an `` built with these root attributes is addressed to, or `None` when the +/// builder writes no `to` at all — a state the caller resolves against the mixins it +/// folds in before settling on [`IqTarget::Unset`]. +/// +/// Shared with [`crate::mixin_index`] so a fragment's `to` is read by the same rule as a +/// request's. The rule it replaced had one arm — the literal `"g.us"` — and an `_ => +/// Server` default, so a `to` the scan could not read was reported as the server: every +/// one of the 143 stanzas said `s.whatsapp.net`, including the `w:g2` requests the +/// client addresses to the group's own JID. +pub(crate) fn iq_target_from_to(attrs: &[WapAttrDef]) -> Option { + let to = attrs.iter().find(|a| a.name == "to")?; + Some(match (&to.kind, to.value.as_deref()) { + (WapAttrKind::Const, Some("g.us")) => IqTarget::GroupServer, + (WapAttrKind::Const, Some("s.whatsapp.net")) => IqTarget::Server, + // `GROUP_JID(x)` — a `@g.us` JID computed from a call argument. The server + // is fixed even though the JID is not, and it is NOT the same addressee as the + // bare `g.us` above: WA writes the two from separate mixins + // (`…BaseGetGroupMixin` vs `…BaseGetServerMixin`), and 26 of the 33 `w:g2` + // requests take this one. + (WapAttrKind::GroupJid, _) => IqTarget::GroupJid, + // A runtime JID of some other flavour, or an expression the scan did not follow. + _ => IqTarget::Unknown, + }) +} + /// `o("ModuleName")` → `"ModuleName"` (custom-require call, one string-literal /// arg). Shared with [`crate::mixin_index`]. pub(crate) fn require_module_name(e: &Expression) -> Option { @@ -499,12 +559,7 @@ impl ModuleScanner<'_> { Some(_) => return None, None => mixin_type, }; - let target = match attrs.iter().find(|a| a.name == "to") { - Some(a) if a.kind == WapAttrKind::Const && a.value.as_deref() == Some("g.us") => { - IqTarget::Group - } - _ => IqTarget::Server, - }; + let target = iq_target_from_to(&attrs); let mut children = Vec::new(); for child_arg in wap.child_args { @@ -578,7 +633,7 @@ mod tests { __d("WAWebFooBarRPC", ["WADeprecatedSendIq","WAWap"], function(g,r,d,o,e,i,n){ "use strict"; e.sendFooBar = function(t){ - var q = i.wap("iq", { to: i.S_WHATSAPP_NET, xmlns: "w:foo", type: "get", id: i.generateId() }, + var q = i.wap("iq", { to: r("WAWap").S_WHATSAPP_NET, xmlns: "w:foo", type: "get", id: i.generateId() }, i.wap("query", { jid: i.USER_JID() })); return r("WADeprecatedSendIq").sendIq(q, new (r("WADeprecatedWapParser"))("FooBarResult", function(s){ s.assertTag("iq"); @@ -666,10 +721,153 @@ mod tests { });"#; let s = scan_module_source(m, &mi(), &ri(), &hi()); assert_eq!(s.len(), 1); - assert_eq!(s[0].target, IqTarget::Group); + assert_eq!(s[0].target, IqTarget::GroupServer); assert_eq!(s[0].iq_type, IqType::Set); } + #[test] + fn a_to_that_does_not_resolve_to_a_server_is_unknown_not_the_server() { + // The case that made every stanza claim `s.whatsapp.net`: the builder DOES write + // a `to`, and it is a JID computed from the call's argument. The old rule had one + // arm for the literal `"g.us"` and sent everything else to Server, so a request + // addressed to a runtime JID reported the server it was never sent to. + let m = r#"__d("WAWebDyn",["WADeprecatedSendIq","WAWap"],function(g,r,d,o,e,i){ + e.go = function(t){ return i.wap("iq", { to: r("WAWap").JID(t), xmlns: "w:dyn", type: "get" }); }; + });"#; + let s = scan_module_source(m, &mi(), &ri(), &hi()); + assert_eq!(s.len(), 1); + assert_eq!(s[0].target, IqTarget::Unknown); + assert!(!s[0].target.is_resolved()); + } + + #[test] + fn an_unresolvable_to_from_a_folded_in_mixin_is_unknown_not_unset() { + // `smax("iq", null, …)` writes no `to` of its own, so the addressee is whatever + // the mixins it folds in supply — and `mergeNewsletterIQGetRequestMixin` supplies + // `to: WAWap.JID(x)`, a runtime JID. The request HAS an addressee; the scan + // cannot name it. Reporting `unset` would tell an emitter to send no `to` at all, + // which is a different stanza — the same rounding-off this whole change removes, + // one level further in. + let mixin = r#"__d("WASmaxOutFooIQGetRequestMixin",["WAWap","WASmaxJsx"],function(g,r,d,o,e,i){ + e.mergeFooIQGetRequestMixin = function(s,t){ return o("WASmaxJsx").smax("iq", { to: o("WAWap").JID(t), xmlns: "newsletter", type: "get" }); }; + });"#; + let m = r#"__d("WASmaxOutFooRequest",["WASmaxJsx","WASmaxOutFooIQGetRequestMixin"],function(g,r,d,o,e,i){ + e.makeFooRequest = function(t){ var q = o("WASmaxJsx").smax("iq", null); o("WASmaxOutFooIQGetRequestMixin").mergeFooIQGetRequestMixin(q, t); return q; }; + });"#; + let bundle = format!("{mixin}\n{m}"); + let defs = wa_transform::extract_module_definitions(&bundle); + let mixins = crate::mixin_index::build_pass(&defs, &bundle, &hi()); + let s = scan_module_source(m, &mixins, &ri(), &hi()); + assert_eq!(s.len(), 1); + assert_eq!(s[0].target, IqTarget::Unknown); + } + + #[test] + fn a_sibling_builders_mixin_does_not_address_this_one() { + // The mixin union is per MODULE. With two `` builders in one module and a + // target-bearing fragment folded in, handing that addressee to the builder that + // writes no `to` would publish an address it may never send to — and `g.us` on a + // request meant for the server is exactly the failure this PR exists to remove. + // `unknown` is the honest answer: something in the module names an addressee and + // the scan cannot say whose. + let mixin = r#"__d("WASmaxOutBarIQGetRequestMixin",["WAWap","WASmaxJsx"],function(g,r,d,o,e,i){ + e.mergeBarIQGetRequestMixin = function(s){ return o("WASmaxJsx").smax("iq", { to: o("WAWap").G_US, xmlns: "w:g2", type: "get" }); }; + });"#; + // Two builders, one module, one folded-in mixin. Only `a` calls it. + let m = r#"__d("WASmaxOutBarRequest",["WASmaxJsx","WASmaxOutBarIQGetRequestMixin"],function(g,r,d,o,e,i){ + e.makeA = function(){ var q = o("WASmaxJsx").smax("iq", { xmlns: "w:g2", type: "get" }); o("WASmaxOutBarIQGetRequestMixin").mergeBarIQGetRequestMixin(q); return q; }; + e.makeB = function(){ return o("WASmaxJsx").smax("iq", { xmlns: "w:other", type: "set" }); }; + });"#; + let bundle = format!("{mixin}\n{m}"); + let defs = wa_transform::extract_module_definitions(&bundle); + let mixins = crate::mixin_index::build_pass(&defs, &bundle, &hi()); + let s = scan_module_source(m, &mixins, &ri(), &hi()); + assert_eq!(s.len(), 2); + for st in &s { + assert_eq!( + st.target, + IqTarget::Unknown, + "{}: a module-scoped addressee is not this call's", + st.namespace + ); + } + } + + #[test] + fn a_builder_that_writes_no_to_reports_unset() { + // Distinct from `Unknown`: nothing addresses this stanza, so an emitter should + // send no `to` rather than substitute a server. `deprecatedSendIq` adds none. + let m = r#"__d("WAWebNoTo",["WADeprecatedSendIq","WAWap"],function(g,r,d,o,e,i){ + e.go = function(){ return i.wap("iq", { xmlns: "w:noto", type: "get" }); }; + });"#; + let s = scan_module_source(m, &mi(), &ri(), &hi()); + assert_eq!(s[0].target, IqTarget::Unset); + } + + #[test] + fn the_wap_server_constants_resolve_to_their_servers() { + // `WAWap.S_WHATSAPP_NET` / `G_US` are `WapJid.create(null, "s.whatsapp.net")` and + // `(null, "g.us")` — compile-time constants, and the spelling the builders + // actually use. The literal `"g.us"` the old rule keyed on appears nowhere in the + // bundle any more, which is why the group requests went missing. + let m = r#"__d("WAWebConst",["WADeprecatedSendIq","WAWap"],function(g,r,d,o,e,i){ + e.a = function(){ return i.wap("iq", { to: r("WAWap").S_WHATSAPP_NET, xmlns: "w:a", type: "get" }); }; + e.b = function(){ return i.wap("iq", { to: r("WAWap").G_US, xmlns: "w:b", type: "set" }); }; + e.c = function(t){ return i.wap("iq", { to: r("WAWap").GROUP_JID(t), xmlns: "w:c", type: "set" }); }; + });"#; + let mut s = scan_module_source(m, &mi(), &ri(), &hi()); + s.sort_by(|a, b| a.namespace.cmp(&b.namespace)); + assert_eq!(s.len(), 3); + assert_eq!(s[0].target, IqTarget::Server); + // The bare group server and one group's own JID are different addressees: the + // first is a literal to send, the second needs the group supplied. + assert_eq!(s[1].target, IqTarget::GroupServer); + assert_eq!(s[2].target, IqTarget::GroupJid); + assert!(s[1].target.is_group() && s[2].target.is_group()); + assert!( + s[2].target.is_resolved(), + "the server is known, the JID is not" + ); + } + + #[test] + fn the_alias_spelling_does_not_decide_whether_the_server_is_recognised() { + // The same constant reached three ways: through the require call, through an + // inline `(n = o("WAWap"))`, and through a `var` bound earlier. All three are one + // address in the source, so all three must be `Server` here — otherwise the IR's + // answer depends on how the minifier happened to spell the binding, and the + // `to`-is-honest rule turns into a coin flip. + let m = r#"__d("WAWebAliased",["WADeprecatedSendIq","WAWap"],function(g,r,d,o,e,i){ + var w = o("WAWap"), n; + e.a = function(){ return i.wap("iq", { to: r("WAWap").S_WHATSAPP_NET, xmlns: "w:a", type: "get" }); }; + e.b = function(){ return (n = o("WAWap")).wap("iq", { to: n.S_WHATSAPP_NET, xmlns: "w:b", type: "get" }); }; + e.c = function(){ return i.wap("iq", { to: w.S_WHATSAPP_NET, xmlns: "w:c", type: "get" }); }; + });"#; + let mut s = scan_module_source(m, &mi(), &ri(), &hi()); + s.sort_by(|a, b| a.namespace.cmp(&b.namespace)); + assert_eq!(s.len(), 3); + for st in &s { + assert_eq!( + st.target, + IqTarget::Server, + "{} reads the same constant as the others", + st.namespace + ); + } + } + + #[test] + fn a_server_constant_from_an_unrelated_module_is_not_an_address() { + // The gate on the owner: `X.S_WHATSAPP_NET` only names the server when `X` is + // `WAWap`. A same-named property of anything else stays unresolved rather than + // being read as an address. + let m = r#"__d("WAWebOther",["WADeprecatedSendIq","WAWap"],function(g,r,d,o,e,i){ + e.go = function(){ return i.wap("iq", { to: r("WAWebSomethingElse").S_WHATSAPP_NET, xmlns: "w:o", type: "get" }); }; + });"#; + let s = scan_module_source(m, &mi(), &ri(), &hi()); + assert_eq!(s[0].target, IqTarget::Unknown); + } + #[test] fn no_iq_yields_nothing() { assert!( diff --git a/crates/wa-scan/src/response.rs b/crates/wa-scan/src/response.rs index ac7d916b..cdb9be4c 100644 --- a/crates/wa-scan/src/response.rs +++ b/crates/wa-scan/src/response.rs @@ -18,7 +18,7 @@ use oxc_syntax::scope::ScopeFlags; use wa_ir::wap; use wa_ir::{ AssertionKind, ContentType, ParsedField, ParsedFieldType, ParsedResponse, ResponseAssertion, - UnionVariant, + UnionVariant, UnknownValuePolicy, }; use wa_oxc::{ @@ -210,7 +210,7 @@ fn mk_field(method: &str, name: &str, ftype: ParsedFieldType, required: bool) -> method: method.to_string(), name: name.to_string(), field_type: ftype, - required, + parser_required: required, ..Default::default() } } @@ -1792,7 +1792,7 @@ impl ParserAnalyzer<'_, '_> { .and_then(receiver_path) .unwrap_or_else(|| self.param.to_string()); if self.presence_guarded(&node, &wire) { - f.required = false; + f.parser_required = false; } Some(f) } @@ -2032,7 +2032,7 @@ impl ParserAnalyzer<'_, '_> { // be, and dropping that with the field would weaken an unrelated claim. let read = self.read_field(method, call); if let Some(node) = node_at_mut(&mut self.fields, &path) { - node.required |= unguarded; + node.parser_required |= unguarded; if let Some(read) = read { let kids = node.children.get_or_insert_with(Vec::new); merge_or_push(kids, read, &mut self.unresolved); @@ -2463,7 +2463,13 @@ impl ParserAnalyzer<'_, '_> { wap::ATTR_ENUM.to_string() }; f.field_type = ParsedFieldType::Enum; - f.required = !optional; + f.parser_required = !optional; + // The method now names the merged shape, not the accessor that + // decides an out-of-set value. `attrEnumOrNullIfUnknown` returns + // null there and the companion plain read returns the raw string — + // nothing rejects — so leaving the policy to be re-derived from + // `attrEnum` would publish a rejection the client never performs. + f.unknown_value = Some(UnknownValuePolicy::Null); } } else { // No companion plain read created a field for this attr (doesn't occur in @@ -2474,6 +2480,9 @@ impl ParserAnalyzer<'_, '_> { // `wap::is_attr_method`, leaving the field unclassified downstream. let mut f = mk_field(wap::MAYBE_ATTR_ENUM, &wire, ParsedFieldType::Enum, false); f.enum_keys = Some(keys); + // Same substitution, same correction: the accessor that ran was the + // null-returning one. + f.unknown_value = Some(UnknownValuePolicy::Null); self.fields.push(f); } } @@ -2494,13 +2503,18 @@ impl ParserAnalyzer<'_, '_> { wap::ATTR_ENUM.to_string() }; f.field_type = ParsedFieldType::Enum; - f.required = !optional; + f.parser_required = !optional; f.pending_enum_ref = Some(wa_ir::PendingEnum::Unresolvable); + // Also an `attrEnumOrNullIfUnknown` read — only its table could not be + // named. What it does with a value outside that table is known even + // though the table is not. + f.unknown_value = Some(UnknownValuePolicy::Null); } Some(_) => {} None => { let mut f = mk_field(wap::MAYBE_ATTR_ENUM, &wire, ParsedFieldType::Enum, false); f.pending_enum_ref = Some(wa_ir::PendingEnum::Unresolvable); + f.unknown_value = Some(UnknownValuePolicy::Null); self.fields.push(f); } } @@ -2993,7 +3007,7 @@ fn branch_intersection(then_weak: &[RelaxedId], else_weak: &[RelaxedId]) -> Vec< } fn note_relaxed(f: &ParsedField, at: &str, out: &mut Vec) { - if f.required { + if f.parser_required { out.push(( at.to_string(), f.method.clone(), @@ -3030,7 +3044,7 @@ fn promote_required(fields: &mut [ParsedField], id: &RelaxedId, at: &str) { f.tag.clone(), ); if here == *id { - f.required = true; + f.parser_required = true; } let below = below(at, f); if let Some(kids) = f.children.as_mut() { @@ -3043,7 +3057,7 @@ fn promote_required(fields: &mut [ParsedField], id: &RelaxedId, at: &str) { /// of what it reads — weakening its top level and leaving the descendants required made a /// present child missing its attributes a rejection the source parser never makes. fn relax_deeply(f: &mut ParsedField) { - f.required = false; + f.parser_required = false; for k in f.children.iter_mut().flatten() { relax_deeply(k); } @@ -3060,7 +3074,7 @@ fn relax_absent_from_some_arm( arms: usize, ) { if seen.get(path).copied().unwrap_or(0) < arms { - f.required = false; + f.parser_required = false; } for k in f.children.iter_mut().flatten() { let child_path = format!("{path}/{}", k.name); @@ -3086,7 +3100,7 @@ fn merge_or_push(into: &mut Vec, f: ParsedField, lost: &mut Vec>() ); } @@ -12785,7 +12809,7 @@ mod tests { .fields .iter() .filter(|f| f.name == "id") - .map(|f| f.required) + .map(|f| f.parser_required) .collect(); assert_eq!(ids, [true], "one `id`, and the parser always reads it"); } @@ -12795,7 +12819,13 @@ mod tests { // `if (!e.hasAttr("id")) e.attrString("id")` establishes ABSENCE on the branch // taken; the read there is not made optional by the test. let r = analyze_parser_ast(r#"{ if (!e.hasAttr("id")) { e.attrString("id"); } }"#, "e"); - assert!(r.fields.iter().find(|f| f.name == "id").unwrap().required); + assert!( + r.fields + .iter() + .find(|f| f.name == "id") + .unwrap() + .parser_required + ); } #[test] @@ -12808,10 +12838,13 @@ mod tests { ); let by = |n: &str| r.fields.iter().find(|f| f.name == n).unwrap(); assert!( - by("id").required, + by("id").parser_required, "read where the attribute is known missing — the test does not excuse it" ); - assert!(by("other").required, "the test said nothing about this one"); + assert!( + by("other").parser_required, + "the test said nothing about this one" + ); } #[test] @@ -12827,7 +12860,7 @@ mod tests { .iter() .find(|f| f.name == "id") .unwrap() - .required, + .parser_required, "read exactly when absent" ); @@ -12841,7 +12874,7 @@ mod tests { .iter() .find(|f| f.name == "id") .unwrap() - .required, + .parser_required, "`flag` may be what satisfied the test" ); } @@ -12874,8 +12907,8 @@ mod tests { .find(|f| f.name == n) .unwrap_or_else(|| panic!("{n} in {:?}", detail.children)) }; - assert!(by("id").required, "both arms read it"); - assert!(!by("only_a").required, "only one arm does"); + assert!(by("id").parser_required, "both arms read it"); + assert!(!by("only_a").parser_required, "only one arm does"); } #[test] @@ -13041,7 +13074,7 @@ mod tests { .iter() .find(|f| f.name == "detail") .expect("hoisted"); - assert!(!detail.required, "only the `a` arm reads it"); + assert!(!detail.parser_required, "only the `a` arm reads it"); } #[test] @@ -13058,13 +13091,23 @@ mod tests { let src = format!(r#"{{ if ({guard}) {{ e.attrString("id"); }} }}"#); let r = analyze_parser_ast(&src, "e"); assert!( - r.fields.iter().find(|f| f.name == "id").unwrap().required, + r.fields + .iter() + .find(|f| f.name == "id") + .unwrap() + .parser_required, "`{guard}` does not establish that `id` may be absent here" ); } // The form that does. let r = analyze_parser_ast(r#"{ if (e.hasAttr("id")) { e.attrString("id"); } }"#, "e"); - assert!(!r.fields.iter().find(|f| f.name == "id").unwrap().required); + assert!( + !r.fields + .iter() + .find(|f| f.name == "id") + .unwrap() + .parser_required + ); } #[test] @@ -13183,7 +13226,7 @@ mod tests { .and_then(|f| f.children.as_ref()) .and_then(|c| c.iter().find(|f| f.name == "id")) .expect("under detail"); - assert!(!id.required, "the guard was about this node"); + assert!(!id.parser_required, "the guard was about this node"); } #[test] @@ -13337,7 +13380,7 @@ mod tests { let kids = r.fields[0].children.as_ref().unwrap(); let id = kids.iter().find(|f| f.name == "id"); assert!( - id.is_some_and(|f| f.required), + id.is_some_and(|f| f.parser_required), "read on every path, so beside the union: {:?}", kids.iter().map(|f| f.name.as_str()).collect::>() ); @@ -13428,7 +13471,7 @@ mod tests { .as_ref() .and_then(|c| c.iter().find(|f| f.name == "b")) .expect("`b` under `a`"); - assert!(!b.required, "the guard was about this very step"); + assert!(!b.parser_required, "the guard was about this very step"); // And a test on a different node does not stand in for it. let elsewhere = analyze_parser_ast( @@ -13442,7 +13485,7 @@ mod tests { .and_then(|c| c.iter().find(|f| f.name == "b")) .expect("`b` under `a`"); assert!( - b.required, + b.parser_required, "that test was about the root's ``, not this one" ); } @@ -13457,7 +13500,7 @@ mod tests { "e", ); let detail = r.fields.iter().find(|f| f.name == "detail").unwrap(); - assert!(detail.required, "the unguarded read settles it"); + assert!(detail.parser_required, "the unguarded read settles it"); } #[test] @@ -13480,7 +13523,7 @@ mod tests { .iter() .find(|f| f.name == "detail") .expect("hoisted"); - assert!(detail.required, "both values require it"); + assert!(detail.parser_required, "both values require it"); } #[test] @@ -13569,7 +13612,7 @@ mod tests { .iter() .find(|f| f.name == "detail") .expect("hoisted"); - assert!(detail.required, "all three values require it"); + assert!(detail.parser_required, "all three values require it"); } #[test] @@ -13592,7 +13635,7 @@ mod tests { .and_then(|f| f.children.as_ref()) .and_then(|c| c.iter().find(|f| f.name == "id")) .expect("under detail"); - assert!(!id.required, "reached only when the branch runs"); + assert!(!id.parser_required, "reached only when the branch runs"); } #[test] @@ -14109,7 +14152,7 @@ mod tests { let out = parse_module_wap_parsers(module); let p = out.iter().find(|r| r.parser_name == "p").expect("parser"); let id = p.fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "every path reads it"); + assert!(id.parser_required, "every path reads it"); } /// A module whose parser reaches `parse` only through `body`. @@ -17025,7 +17068,7 @@ mod tests { )) .iter() .find(|f| f.name == "id") - .map(|f| f.required) + .map(|f| f.parser_required) }; assert_eq!( required("[...[1]]"), @@ -17141,7 +17184,7 @@ mod tests { helper_reached_via(body) .iter() .find(|f| f.name == "id") - .map(|f| f.required) + .map(|f| f.parser_required) }; assert_eq!( required("if (flag) { new (() => { parse(e); })(); } else { parse(e); }"), @@ -17425,7 +17468,7 @@ mod tests { helper_reached_via("flag ? thing?.m((function(){ throw 0; })()) : parse(e);") .iter() .find(|f| f.name == "id") - .map(|f| f.required), + .map(|f| f.parser_required), Some(true), "an unreadable base leaves the raise standing, so the other arm is the only one", ); @@ -17435,7 +17478,7 @@ mod tests { helper_reached_via("flag ? null?.((function(){ throw 0; })()) : parse(e);") .iter() .find(|f| f.name == "id") - .map(|f| f.required), + .map(|f| f.parser_required), Some(false), "an argument it never builds cannot make the arm raise", ); @@ -17509,7 +17552,7 @@ mod tests { helper_reached_via(body) .iter() .find(|f| f.name == "id") - .map(|f| f.required) + .map(|f| f.parser_required) }; // The short circuit answers for the whole CHAIN, so an argument it never builds cannot // make the arm raise. @@ -17600,7 +17643,7 @@ mod tests { helper_reached_via(body) .iter() .find(|f| f.name == "id") - .map(|f| f.required) + .map(|f| f.parser_required) }; assert_eq!( required( @@ -17652,7 +17695,7 @@ mod tests { helper_reached_via(body) .iter() .find(|f| f.name == "id") - .map(|f| f.required) + .map(|f| f.parser_required) }; assert_eq!(required("1n && parse(e);"), Some(true), "`1n` is truthy"); assert_eq!(required("0n || parse(e);"), Some(true), "`0n` is not"); @@ -17853,7 +17896,7 @@ mod tests { .iter() .find(|f| f.name == "id") .expect("recovered") - .required; + .parser_required; let guarded = p .assertions .iter() @@ -18081,7 +18124,7 @@ mod tests { .iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` still recovers the field")); - assert!(!id.required, "`{body}` assigns it only on one path"); + assert!(!id.parser_required, "`{body}` assigns it only on one path"); } } @@ -18101,7 +18144,7 @@ mod tests { .iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` recovers the field")); - assert!(id.required, "`{body}` assigns it on every path"); + assert!(id.parser_required, "`{body}` assigns it on every path"); } } @@ -18112,7 +18155,7 @@ mod tests { // it, and asking the question of the whole alias set would have relaxed this. let fields = helper_reached_via("var current; if (flag) current = e; parse(e);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the parameter is not conditional"); + assert!(id.parser_required, "the parameter is not conditional"); } #[test] @@ -18163,7 +18206,7 @@ mod tests { .into_iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` passes the untouched node")); - assert!(id.required, "`{body}` reads it on every execution"); + assert!(id.parser_required, "`{body}` reads it on every execution"); } } @@ -18226,7 +18269,7 @@ mod tests { .into_iter() .find(|f| f.name == "id") .expect("the read precedes the write"); - assert!(id.required, "and it reads the original node"); + assert!(id.parser_required, "and it reads the original node"); for body in [ "var current = e; (function(){ current = other; })(); parse(current);", "var current = e; (function(){ parse(current); })(current = other);", @@ -18256,7 +18299,7 @@ mod tests { .into_iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` never repeats")); - assert!(id.required, "`{body}` reads the original node"); + assert!(id.parser_required, "`{body}` reads the original node"); } } @@ -18301,7 +18344,7 @@ mod tests { let fields = helper_reached_via("var current = e; (function(){})(parse(current), current = other);"); assert!( - fields.iter().any(|f| f.name == "id" && f.required), + fields.iter().any(|f| f.name == "id" && f.parser_required), "the write is in a later argument: {:?}", fields.iter().map(|f| f.name.clone()).collect::>() ); @@ -18376,7 +18419,7 @@ mod tests { .into_iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` moved the node instead")); - assert!(id.required, "`{body}` assigns on every execution"); + assert!(id.parser_required, "`{body}` assigns on every execution"); } } @@ -18398,7 +18441,10 @@ mod tests { .into_iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` moved the node instead")); - assert!(!id.required, "`{body}` has a path that assigns nothing"); + assert!( + !id.parser_required, + "`{body}` has a path that assigns nothing" + ); } } @@ -18603,14 +18649,14 @@ mod tests { .into_iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` reaches parse")); - assert!(id.required, "`{body}` selects the reachable side"); + assert!(id.parser_required, "`{body}` selects the reachable side"); } // The bound: an ordinary test is still a branch, and both sides stay conditional. let id = helper_reached_via("if (flag) { other(); } else { parse(e); }") .into_iter() .find(|f| f.name == "id") .expect("recovered"); - assert!(!id.required, "an undecided test is still a branch"); + assert!(!id.parser_required, "an undecided test is still a branch"); } #[test] @@ -18752,7 +18798,7 @@ mod tests { .into_iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` runs the assignment after the label")); - assert!(id.required, "`{body}` assigns on every execution"); + assert!(id.parser_required, "`{body}` assigns on every execution"); } } @@ -19195,7 +19241,7 @@ mod tests { let fields = helper_reached_via(r#"switch (mode) { case "a": parse(e); break; default: break; }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "one case is not every path: {id:?}"); + assert!(!id.parser_required, "one case is not every path: {id:?}"); } #[test] @@ -19203,7 +19249,7 @@ mod tests { // A loop that runs zero times calls nothing. let fields = helper_reached_via("while (more) { parse(e); }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "zero iterations read nothing: {id:?}"); + assert!(!id.parser_required, "zero iterations read nothing: {id:?}"); } #[test] @@ -19212,7 +19258,10 @@ mod tests { // would have generated decoding reject the node the parser accepted. let fields = helper_reached_via("try { parse(e); } catch (x) {}"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the handler swallows the failure: {id:?}"); + assert!( + !id.parser_required, + "the handler swallows the failure: {id:?}" + ); } #[test] @@ -19229,7 +19278,7 @@ mod tests { ] { let fields = helper_reached_via(body); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "always evaluated in `{body}`: {id:?}"); + assert!(id.parser_required, "always evaluated in `{body}`: {id:?}"); } } @@ -19240,7 +19289,7 @@ mod tests { // produced. Weakening every `try` alike accepted what the source rejects. let fields = helper_reached_via("try { parse(e); } finally { cleanup(); }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "nothing swallows the failure: {id:?}"); + assert!(id.parser_required, "nothing swallows the failure: {id:?}"); } #[test] @@ -19249,7 +19298,7 @@ mod tests { // alike would call a read the parser always performs optional. let fields = helper_reached_via("try { g(); } finally { parse(e); }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the finalizer always runs: {id:?}"); + assert!(id.parser_required, "the finalizer always runs: {id:?}"); } #[test] @@ -19261,7 +19310,7 @@ mod tests { r#"switch (mode) { case "a": parse(e); break; default: parse(e); }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "every path calls it: {id:?}"); + assert!(id.parser_required, "every path calls it: {id:?}"); } #[test] @@ -19273,7 +19322,7 @@ mod tests { r#"switch (mode) { case "a": parse(e); break; case "b": parse(e); }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the cases are not exhaustive: {id:?}"); + assert!(!id.parser_required, "the cases are not exhaustive: {id:?}"); } #[test] @@ -19283,7 +19332,7 @@ mod tests { let fields = helper_reached_via(r#"switch (mode) { case "a": parse(e); break; default: other(); }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "only one arm calls it: {id:?}"); + assert!(!id.parser_required, "only one arm calls it: {id:?}"); } #[test] @@ -19308,7 +19357,7 @@ mod tests { // successful pass took without it. Two questions, two answers, one keyword. let fields = helper_reached_via("do { if (f) continue; parse(e); } while (m);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the continue skips it: {id:?}"); + assert!(!id.parser_required, "the continue skips it: {id:?}"); } #[test] @@ -19328,7 +19377,7 @@ mod tests { let fields = helper_reached_via(r#"do { if (bad) throw Error("x"); parse(e); } while (m);"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "only a throw precedes it: {id:?}"); + assert!(id.parser_required, "only a throw precedes it: {id:?}"); } #[test] @@ -19337,7 +19386,10 @@ mod tests { // so it really is optional. let fields = helper_reached_via("do { if (done) return t; parse(e); } while (m);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the return skips it with a value: {id:?}"); + assert!( + !id.parser_required, + "the return skips it with a value: {id:?}" + ); } #[test] @@ -19348,7 +19400,10 @@ mod tests { // checks. That is the harmful direction, unlike the body case it was fixing. let fields = helper_reached_via("do { break; } while (parse(e));"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the break leaves before the test: {id:?}"); + assert!( + !id.parser_required, + "the break leaves before the test: {id:?}" + ); } #[test] @@ -19396,7 +19451,10 @@ mod tests { ] { let fields = helper_reached_via(body); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "`{body}` necessarily starts its body: {id:?}"); + assert!( + id.parser_required, + "`{body}` necessarily starts its body: {id:?}" + ); } } @@ -19407,7 +19465,7 @@ mod tests { // parser accepts. let fields = helper_reached_via("while (more) { parse(e); break; }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the loop may run zero times: {id:?}"); + assert!(!id.parser_required, "the loop may run zero times: {id:?}"); } #[test] @@ -19416,7 +19474,7 @@ mod tests { // `for` body in a skipped path relaxed a read the parser always performs. let fields = helper_reached_via("for (;;) { parse(e); break; }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "no test means the body starts: {id:?}"); + assert!(id.parser_required, "no test means the body starts: {id:?}"); } #[test] @@ -19424,7 +19482,7 @@ mod tests { // And the ordinary form keeps its zero-iteration path. let fields = helper_reached_via("for (var i = 0; i < n; i++) { parse(e); }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the test can fail first: {id:?}"); + assert!(!id.parser_required, "the test can fail first: {id:?}"); } #[test] @@ -19459,7 +19517,7 @@ mod tests { // every path — the two-sided intersection `if` does and this had no equivalent of. let fields = helper_reached_via("try { parse(e); } catch (x) { parse(e); }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "both paths call it: {id:?}"); + assert!(id.parser_required, "both paths call it: {id:?}"); } #[test] @@ -19467,7 +19525,10 @@ mod tests { // The block succeeding is a path that never reaches the handler. let fields = helper_reached_via("try { other(); } catch (x) { parse(e); }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "only the failure path calls it: {id:?}"); + assert!( + !id.parser_required, + "only the failure path calls it: {id:?}" + ); } #[test] @@ -19618,7 +19679,7 @@ mod tests { // case decisive and left the payload optional. let fields = helper_reached_via(r#"switch (mode) { case "a": default: parse(e); }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the fallthrough reaches it: {id:?}"); + assert!(id.parser_required, "the fallthrough reaches it: {id:?}"); } #[test] @@ -19650,7 +19711,7 @@ mod tests { // A `break` is what stops an entry path from continuing, so `"a"` reaches nothing. let fields = helper_reached_via(r#"switch (mode) { case "a": break; default: parse(e); }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the break ends that path: {id:?}"); + assert!(!id.parser_required, "the break ends that path: {id:?}"); } #[test] @@ -19659,7 +19720,7 @@ mod tests { let fields = helper_reached_via(r#"switch (mode) { case parse(e): break; default: break; }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the first test always runs: {id:?}"); + assert!(id.parser_required, "the first test always runs: {id:?}"); } #[test] @@ -19671,7 +19732,7 @@ mod tests { let fields = helper_reached_via(r#"switch (mode) { default: break; case parse(e): break; }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the first test still runs: {id:?}"); + assert!(id.parser_required, "the first test still runs: {id:?}"); } #[test] @@ -19708,7 +19769,7 @@ mod tests { r#"switch (mode) { case "a": throw Error("bad"); case parse(e): break; default: break; }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the skipping path throws: {id:?}"); + assert!(id.parser_required, "the skipping path throws: {id:?}"); } #[test] @@ -19720,7 +19781,7 @@ mod tests { case parse(e): break; default: break; }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the fallthrough chain throws: {id:?}"); + assert!(id.parser_required, "the fallthrough chain throws: {id:?}"); } #[test] @@ -19731,7 +19792,7 @@ mod tests { r#"switch (mode) { case "a": break; case parse(e): break; default: break; }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the break returns a value: {id:?}"); + assert!(!id.parser_required, "the break returns a value: {id:?}"); } #[test] @@ -19745,7 +19806,10 @@ mod tests { case parse(e): break; default: break; }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the break is a path out with a value: {id:?}"); + assert!( + !id.parser_required, + "the break is a path out with a value: {id:?}" + ); } #[test] @@ -19756,7 +19820,10 @@ mod tests { let fields = helper_reached_via(r#"switch (mode) { case "a": { break; } default: parse(e); }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the wrapped break still leaves: {id:?}"); + assert!( + !id.parser_required, + "the wrapped break still leaves: {id:?}" + ); } #[test] @@ -19767,7 +19834,10 @@ mod tests { r#"switch (mode) { case "a": if (flag) break; default: parse(e); }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the break may skip the default: {id:?}"); + assert!( + !id.parser_required, + "the break may skip the default: {id:?}" + ); } #[test] @@ -19778,7 +19848,10 @@ mod tests { let fields = helper_reached_via(r#"switch (mode) { case "a": break; case parse(e): break; }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "an earlier test can match first: {id:?}"); + assert!( + !id.parser_required, + "an earlier test can match first: {id:?}" + ); } #[test] @@ -19790,7 +19863,10 @@ mod tests { r#"switch (mode) { case "a": parse(e); break; default: throw Error("bad"); }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the throwing arm yields nothing: {id:?}"); + assert!( + id.parser_required, + "the throwing arm yields nothing: {id:?}" + ); } #[test] @@ -19802,7 +19878,10 @@ mod tests { default: throw Error("bad"); }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the \"b\" arm returns without it: {id:?}"); + assert!( + !id.parser_required, + "the \"b\" arm returns without it: {id:?}" + ); } #[test] @@ -19812,7 +19891,10 @@ mod tests { // inner break as an exit relaxed a read that always happens. let fields = helper_reached_via("do { while (f) { break; } parse(e); } while (m);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the inner break leaves the inner loop: {id:?}"); + assert!( + id.parser_required, + "the inner break leaves the inner loop: {id:?}" + ); } #[test] @@ -19821,7 +19903,7 @@ mod tests { let fields = helper_reached_via(r#"do { switch (k) { case "a": break; } parse(e); } while (m);"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the switch consumes the break: {id:?}"); + assert!(id.parser_required, "the switch consumes the break: {id:?}"); } #[test] @@ -19831,7 +19913,7 @@ mod tests { let fields = helper_reached_via("outer: do { while (f) { break outer; } parse(e); } while (m);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the label jumps clear of both: {id:?}"); + assert!(!id.parser_required, "the label jumps clear of both: {id:?}"); } #[test] @@ -19840,7 +19922,10 @@ mod tests { // so the counters have to be kept apart. let fields = helper_reached_via("do { while (f) { continue; } parse(e); } while (m);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the inner continue stays inside: {id:?}"); + assert!( + id.parser_required, + "the inner continue stays inside: {id:?}" + ); } #[test] @@ -19850,7 +19935,7 @@ mod tests { // one syntactic form over. let fields = helper_reached_via("for (;;) parse(e);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the body is reached: {id:?}"); + assert!(id.parser_required, "the body is reached: {id:?}"); } #[test] @@ -20314,7 +20399,7 @@ mod tests { .iter() .find(|f| f.name == "id") .unwrap_or_else(|| panic!("`{body}` recovers the field")); - assert!(id.required, "`{body}` assigns on every execution"); + assert!(id.parser_required, "`{body}` assigns on every execution"); } } @@ -20406,7 +20491,7 @@ mod tests { // the same rule the switch arms get, one construct over. let fields = helper_reached_via(r#"try { parse(e); } catch (x) { throw Error("bad"); }"#); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the handler yields nothing: {id:?}"); + assert!(id.parser_required, "the handler yields nothing: {id:?}"); } #[test] @@ -20415,7 +20500,7 @@ mod tests { // partway, so what the block read past a throwing call is not read every time. let fields = helper_reached_via("try { parse(e); } catch (x) { other(e); }"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the handler is a path too: {id:?}"); + assert!(!id.parser_required, "the handler is a path too: {id:?}"); } #[test] @@ -20988,7 +21073,7 @@ mod tests { .into_iter() .find(|f| f.name == "id") .expect("names one node"); - assert!(id.required, "every path assigns it: {id:?}"); + assert!(id.parser_required, "every path assigns it: {id:?}"); // The SWITCH spelling still comes back optional, and that is a stated gap rather than // an answer: promoting it needs the arms to be exhaustive as well as agreeing, which is // the `default`-and-fallthrough question the requiredness walk answers and this @@ -20999,7 +21084,10 @@ mod tests { .into_iter() .find(|f| f.name == "id") .expect("names one node"); - assert!(!id.required, "the switch half is not promoted yet: {id:?}"); + assert!( + !id.parser_required, + "the switch half is not promoted yet: {id:?}" + ); // …and the agreement is an effect of the WHOLE `if`, not of the arms. A read INSIDE an // arm runs before that arm has finished, so it is handed whatever held before — // clearing the flag on the arms' own records made the then-arm's write effective at a @@ -21197,7 +21285,7 @@ mod tests { r#"switch (mode) { case "a": case parse(e): break; default: parse(e); }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the \"a\" path never calls it: {id:?}"); + assert!(!id.parser_required, "the \"a\" path never calls it: {id:?}"); } #[test] @@ -21223,7 +21311,7 @@ mod tests { // body as conditional because it contains one relaxed a call that always runs. let fields = helper_reached_via("do { parse(e); break; } while (more);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the read precedes the break: {id:?}"); + assert!(id.parser_required, "the read precedes the break: {id:?}"); } #[test] @@ -21232,7 +21320,7 @@ mod tests { // certain as a branch, which is what the original carve-out was for. let fields = helper_reached_via("do { if (flag) break; parse(e); } while (more);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "the break can skip it: {id:?}"); + assert!(!id.parser_required, "the break can skip it: {id:?}"); } #[test] @@ -21330,7 +21418,7 @@ mod tests { // with `while`/`for` that makes this a separate answer rather than "a loop". let fields = helper_reached_via("do { parse(e); } while (more);"); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "the first pass always runs: {id:?}"); + assert!(id.parser_required, "the first pass always runs: {id:?}"); } #[test] @@ -21369,7 +21457,7 @@ mod tests { let p = out.iter().find(|r| r.parser_name == "p").expect("parser"); let id = p.fields.iter().find(|f| f.name == "id").expect("recovered"); assert!( - !id.required, + !id.parser_required, "`enabled` can be false, so nothing here is read on every path" ); } @@ -21524,7 +21612,7 @@ mod tests { .find(|f| f.name == "t") .expect("t under user"); assert!( - t.required, + t.parser_required, "both branches read it with no guard, so every path enforces it" ); } @@ -21549,7 +21637,7 @@ mod tests { .find(|f| f.name == "detail") .expect("hoisted beside the union"); assert!( - !detail.required, + !detail.parser_required, "only the `a` variant carries it, so `b` must still decode" ); } @@ -21577,7 +21665,7 @@ mod tests { .and_then(|c| c.iter().find(|f| f.name == "id")) .expect("id under it"); assert!( - !id.required, + !id.parser_required, "<{tag}> is read only down one branch, so its id is not enforced everywhere" ); } @@ -21624,7 +21712,7 @@ mod tests { .and_then(|c| c.iter().find(|f| f.name == "x")) .expect("under d"); assert!( - x.required, + x.parser_required, "the plain read after the guarded one settles it" ); } @@ -21643,7 +21731,7 @@ mod tests { let out = parse_module_wap_parsers(module); let p = out.iter().find(|r| r.parser_name == "p").expect("parser"); let id = p.fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "it runs whichever way the ternary goes"); + assert!(id.parser_required, "it runs whichever way the ternary goes"); } #[test] @@ -22320,8 +22408,14 @@ mod tests { return {}; }); }),1);"#; - let out = parse_module_wap_parsers(module); - let p = out.iter().find(|r| r.parser_name == "p").expect("parser"); + let mut out = parse_module_wap_parsers(module); + let p = out + .iter_mut() + .find(|r| r.parser_name == "p") + .expect("parser"); + // Through the domain pass, so the assertion below is about what ships rather than + // about an intermediate value the pass could still overwrite. + p.classify_accessors(); let f = p .fields .iter() @@ -22337,11 +22431,57 @@ mod tests { wap::MAYBE_ATTR_ENUM, "and under the enum accessor" ); - assert!(!f.required, "the companion read was optional and stays so"); + assert!( + !f.parser_required, + "the companion read was optional and stays so" + ); assert_eq!( f.enum_keys.as_deref(), Some(["delivery", "read"].map(String::from).as_slice()) ); + // The retype renamed the accessor, and the out-of-set answer must not be re-read + // off the new name: `attrEnumOrNullIfUnknown` returns null there and the companion + // read returns the raw string, so nothing rejects. Deriving `reject` from + // `maybeAttrEnum` here told consumers to reject a value the client accepts — it + // shipped that way on the incoming receipt's `type` and the group notification's + // `reason`. + assert_eq!( + f.unknown_value, + Some(wa_ir::UnknownValuePolicy::Null), + "the accessor that decides, not the one the merge left behind" + ); + } + + #[test] + fn a_real_maybe_attr_enum_still_rejects() { + // The other half of the same question: `maybeAttrEnum("type", u)` written by WA + // itself is `hasAttr ? attrEnum : null`, which throws on a value outside the + // table. If preserving the merged field's policy were done by blanket-exempting + // `maybeAttrEnum`, this would wrongly go null — both spellings occur in the + // receipt parser, one per nesting level. + let module = r#"__d("M",["WADeprecatedWapParser"],(function(t,n,r,o,a,i,l){ + var u={delivery:1,read:2}; + var c=new(r("WADeprecatedWapParser"))("p", function(e){ + e.assertTag("receipt"); + e.forEachChildWithTag("user", function(t){ t.maybeAttrEnum("type",u); }); + return {}; + }); + }),1);"#; + let mut out = parse_module_wap_parsers(module); + let p = out + .iter_mut() + .find(|r| r.parser_name == "p") + .expect("parser"); + // The domain pass that fills in the policy from the accessor, as `whatspec` runs + // it before serialization. + p.classify_accessors(); + let user = p.fields.iter().find(|f| f.tag.as_deref() == Some("user")); + let f = user + .and_then(|u| u.children.as_ref()) + .and_then(|kids| kids.iter().find(|f| f.name == "type")) + .expect("the nested type field"); + assert_eq!(f.method, wap::MAYBE_ATTR_ENUM); + assert_eq!(f.unknown_value, Some(wa_ir::UnknownValuePolicy::Reject)); } #[test] @@ -23600,7 +23740,10 @@ mod tests { default: parse(e); break; }"#, ); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(id.required, "nothing can enter the duplicate: {id:?}"); + assert!( + id.parser_required, + "nothing can enter the duplicate: {id:?}" + ); } #[test] @@ -23618,7 +23761,10 @@ mod tests { ] { let fields = helper_reached_via(body); let id = fields.iter().find(|f| f.name == "id").expect("recovered"); - assert!(!id.required, "an entry path returns without it: {body}"); + assert!( + !id.parser_required, + "an entry path returns without it: {body}" + ); } } @@ -24885,7 +25031,7 @@ mod tests { .iter() .find(|f| f.name == "id") .expect("recovered") - .required + .parser_required } #[test] fn a_ternary_arm_that_does_not_suspend_keeps_its_own_region() { diff --git a/crates/wa-scan/src/response_index.rs b/crates/wa-scan/src/response_index.rs index 68e24965..83b08be2 100644 --- a/crates/wa-scan/src/response_index.rs +++ b/crates/wa-scan/src/response_index.rs @@ -493,7 +493,7 @@ fn union_field(name: &str, variants: Vec) -> ParsedField { name: name.to_string(), field_type: ParsedFieldType::Union, union_variants: Some(variants), - required: true, + parser_required: true, ..Default::default() } } diff --git a/crates/wa-scan/src/response_smax.rs b/crates/wa-scan/src/response_smax.rs index 4f6f12a8..abffd932 100644 --- a/crates/wa-scan/src/response_smax.rs +++ b/crates/wa-scan/src/response_smax.rs @@ -1159,7 +1159,7 @@ fn classify_child( name: tag.clone(), field_type: ParsedFieldType::Union, union_variants: Some(variants), - required: true, + parser_required: true, ..Default::default() }], _ => return Binding::None, @@ -1383,7 +1383,7 @@ fn analyze_disjunction(fn_src: &str, resolver: &Resolver) -> Vec { name: "value".to_string(), field_type: ParsedFieldType::Union, union_variants: Some(v), - required: true, + parser_required: true, ..Default::default() }], _ => Vec::new(), @@ -1483,7 +1483,7 @@ fn resolve_tail( name: "value".to_string(), field_type: ParsedFieldType::Union, union_variants: Some(variants.clone()), - required: true, + parser_required: true, source_path: opt_vec(source_path.clone()), ..Default::default() }]), @@ -1581,7 +1581,7 @@ fn collect_object_fields( name: key.to_string(), field_type: ParsedFieldType::Bool, wire_name: underlying.and_then(binding_wire_name), - required: true, + parser_required: true, literal_value: underlying.and_then(binding_literal_value), reference_path: underlying.and_then(binding_reference_path), // The flag reports on an attribute of whatever node the underlying @@ -1630,7 +1630,7 @@ fn collect_object_fields( name: key.to_string(), wire_name: wire_name.clone(), field_type: *field_type, - required: *required && !optional, + parser_required: *required && !optional, byte_length: *byte_length, byte_min, byte_max, @@ -1657,7 +1657,7 @@ fn collect_object_fields( name: key.to_string(), wire_name: path.last().cloned(), field_type: *field_type, - required: *required && !optional, + parser_required: *required && !optional, // The value IS the request's. Keeping the path makes that machine- // visible; without it the field is indistinguishable from one read // off the response node. @@ -1679,7 +1679,7 @@ fn collect_object_fields( out.push(ParsedField { method: wap::CHILD.to_string(), name: key.to_string(), - required: !optional && !child_optional, + parser_required: !optional && !child_optional, tag: Some(tag.clone()), children: Some(fields.clone()), repeats: Some(*repeats), @@ -1687,7 +1687,12 @@ fn collect_object_fields( ..Default::default() }); } - Some(Binding::Fields(fields)) => { + // A container of nothing is not a container. A sub-parser whose result is + // `makeResult({})` resolves to an empty field list, and emitting it would + // publish a `node` with `children: []` — a field that declares it IS its + // children and then has none, which `scripts/lint-ir.py` rejects. Dropping it + // loses nothing: there is no shape under it to lose. + Some(Binding::Fields(fields)) if !fields.is_empty() => { // A payload mixin / sub-parser referenced as `{ key: M.value }`: the // JS object shape nests M's fields under `key`, so model it as a // nested field. `same_node` marks that the children read off the @@ -1697,9 +1702,13 @@ fn collect_object_fields( // `keyId`/`keyValue` both expose `elementValue`). out.push(ParsedField { name: key.to_string(), + // No accessor, so no scalar type: the container is its children. + // `ParsedFieldType`'s default is `String`, which is what made 617 of + // these declare a type they have no value for. + field_type: ParsedFieldType::Node, children: Some(fields.clone()), same_node: true, - required: !optional, + parser_required: !optional, ..Default::default() }); } @@ -1713,7 +1722,7 @@ fn collect_object_fields( name: key.to_string(), field_type: ParsedFieldType::Union, union_variants: Some(variants.clone()), - required: !optional, + parser_required: !optional, source_path: opt_vec(source_path.clone()), ..Default::default() }); @@ -2240,7 +2249,7 @@ mod tests { assert_eq!(fields.len(), 2); let id = fields.iter().find(|f| f.name == "id").unwrap(); assert_eq!(id.method, wap::ATTR_STRING); - assert!(id.required); + assert!(id.parser_required); let count = fields.iter().find(|f| f.name == "count").unwrap(); assert_eq!(count.method, wap::ATTR_INT); assert_eq!(count.field_type, ParsedFieldType::Integer); @@ -2254,7 +2263,7 @@ mod tests { }"#; let (_a, fields) = analyze_one(body).expect("analyzed"); let size = fields.iter().find(|f| f.name == "size").unwrap(); - assert!(!size.required, "optional → not required"); + assert!(!size.parser_required, "optional → not required"); assert_eq!(size.field_type, ParsedFieldType::Integer); assert_eq!(size.method, wap::MAYBE_ATTR_INT); } @@ -2271,8 +2280,11 @@ mod tests { let (_a, fields) = analyze_one(body).expect("analyzed"); let id = fields.iter().find(|f| f.name == "id").unwrap(); let name = fields.iter().find(|f| f.name == "name").unwrap(); - assert!(id.required, "plain V.value → required"); - assert!(!name.required, "V.success ? V.value : null → optional"); + assert!(id.parser_required, "plain V.value → required"); + assert!( + !name.parser_required, + "V.success ? V.value : null → optional" + ); } /// A one-field same-node mixin, pre-resolved for the seeded-resolver tests. @@ -2281,7 +2293,7 @@ mod tests { method: wap::ATTR_STRING.into(), name: name.into(), field_type: ParsedFieldType::String, - required: true, + parser_required: true, ..Default::default() }]) } @@ -2489,7 +2501,10 @@ mod tests { .find(|f| f.name == "type") .expect("type field"); assert_eq!(ty.literal_value.as_deref(), Some("admin")); - assert!(!ty.required, "optionalLiteral → the attr may be absent"); + assert!( + !ty.parser_required, + "optionalLiteral → the attr may be absent" + ); } #[test] @@ -2513,7 +2528,7 @@ mod tests { Some(&["item".to_string(), "dhash".to_string()][..]) ); assert_eq!(f.literal_value, None, "an echo is not a constant"); - assert!(!f.required); + assert!(!f.parser_required); } #[test] @@ -2611,7 +2626,7 @@ mod tests { let (_a, fields) = analyze_one(body).expect("analyzed"); let id = fields.iter().find(|f| f.name == "id").expect("id field"); assert_eq!(id.wire_name.as_deref(), Some("id")); - assert!(id.required); + assert!(id.parser_required); } #[test] @@ -2695,7 +2710,7 @@ mod tests { // `optional(attrIntRange, …)` still captures the bounds and stays optional. let sz = field("size"); assert_eq!((sz.int_min, sz.int_max), (Some(0), Some(19999))); - assert!(!sz.required); + assert!(!sz.parser_required); // A plain attrInt has no bounds. let pl = field("plain"); assert_eq!(pl.field_type, ParsedFieldType::Integer); @@ -2738,7 +2753,7 @@ mod tests { // `optional(contentBytesRange, …)` still captures the bounds and stays optional. let tok = field("tok"); assert_eq!((tok.byte_min, tok.byte_max), (Some(1), Some(128))); - assert!(!tok.required); + assert!(!tok.parser_required); } #[test] @@ -2771,12 +2786,12 @@ mod tests { assert_eq!(group.tag.as_deref(), Some("group")); assert_eq!(group.repeats, Some(false)); assert!( - !group.required, + !group.parser_required, "optionalChildWithTag → field is optional even with a plain `.value` tail" ); let kids = group.children.as_ref().expect("nested fields"); assert!(kids.iter().any(|f| f.name == "subject")); - assert!(kids.iter().any(|f| f.name == "size" && !f.required)); + assert!(kids.iter().any(|f| f.name == "size" && !f.parser_required)); } #[test] @@ -2795,7 +2810,7 @@ mod tests { .find(|f| f.name == "type") .expect("type field"); assert_eq!(ty.method, wap::ATTR_STRING); - assert!(ty.required); + assert!(ty.parser_required); assert!(fields.iter().any(|f| f.name == "id")); } @@ -2909,6 +2924,11 @@ mod tests { ); assert!(vars[0].fields.iter().any(|f| f.name == "a")); assert!(vars[1].fields.iter().any(|f| f.name == "b")); + // The other accessorless shape, and the one the structural-container fix must + // not swallow: both have an empty `method`, but a union's alternatives live in + // `unionVariants` and it is not a container of `children`. + assert!(bar.method.is_empty()); + assert!(bar.children.is_none()); } #[test] @@ -2940,6 +2960,13 @@ mod tests { .is_some_and(|k| k.iter().any(|f| f.name == "k")), "mixin fields nested under the key" ); + // It carries no accessor, so it decodes to nothing: it IS its children. The + // default `String` this used to inherit from `method_field_type("")` told a + // codegen switching on `type` to emit a string for a container — 617 of them + // across the emitted documents, `wAMOSubMixin` and `groupAddressingModeMixin` + // among them. + assert_eq!(configs.field_type, ParsedFieldType::Node); + assert!(configs.method.is_empty()); } #[test] diff --git a/crates/wa-scan/src/srvreq.rs b/crates/wa-scan/src/srvreq.rs index ce7f1602..8e32bff7 100644 --- a/crates/wa-scan/src/srvreq.rs +++ b/crates/wa-scan/src/srvreq.rs @@ -159,7 +159,7 @@ mod tests { .iter() .find(|f| f.name == "clientExpirationT") .expect("optional int field"); - assert!(!t.required); + assert!(!t.parser_required); } #[test] diff --git a/crates/wa-scan/tests/iq_roundtrip.rs b/crates/wa-scan/tests/iq_roundtrip.rs index 3dcbcd3c..59941ba9 100644 --- a/crates/wa-scan/tests/iq_roundtrip.rs +++ b/crates/wa-scan/tests/iq_roundtrip.rs @@ -131,7 +131,7 @@ fn walk_pinned( if f.literal_value.is_some() || f.reference_path.is_some() { visit(f, path.clone()); } - if !f.required { + if !f.parser_required { continue; // a branch the response need not take — see above } if let Some(children) = &f.children { @@ -270,7 +270,7 @@ fn violations(s: &Stanza, assertions: &[ResponseAssertion], fields: &[ParsedFiel /// as the attribute would have this emitter demand an optional `c_dhash` and then compare /// a request string against a boolean. fn pin_is_required(f: &ParsedField) -> bool { - f.required && f.field_type != wa_ir::ParsedFieldType::Bool + f.parser_required && f.field_type != wa_ir::ParsedFieldType::Bool } /// Whether a shape carries any of the constraint layer this guard exists to protect. @@ -402,7 +402,7 @@ fn a_pin_on_a_nested_node_is_checked_where_it_lives() { method: "attrString".into(), name: "type".into(), wire_name: Some("type".into()), - required: true, + parser_required: true, literal_value: Some("admin".into()), ..Default::default() }; @@ -412,7 +412,7 @@ fn a_pin_on_a_nested_node_is_checked_where_it_lives() { method: "attrString".into(), name: "listMatched".into(), wire_name: Some("matched".into()), - required: true, + parser_required: true, literal_value: Some("true".into()), source_path: Some(vec!["list".into()]), ..Default::default() @@ -422,7 +422,7 @@ fn a_pin_on_a_nested_node_is_checked_where_it_lives() { method: "child".into(), name: "promoteParticipant".into(), tag: Some("participant".into()), - required: true, + parser_required: true, children: Some(vec![participant_type]), ..Default::default() }, @@ -471,7 +471,7 @@ fn a_pin_on_a_presence_flag_is_never_required() { name: "hasListCDhash".into(), wire_name: Some("c_dhash".into()), field_type: wa_ir::ParsedFieldType::Bool, - required: true, + parser_required: true, reference_path: Some(vec!["item".into(), "dhash".into()]), ..Default::default() }; diff --git a/crates/whatspec/src/main.rs b/crates/whatspec/src/main.rs index 7dc57267..00539952 100644 --- a/crates/whatspec/src/main.rs +++ b/crates/whatspec/src/main.rs @@ -774,6 +774,10 @@ struct Counts { /// `manifest.diagnostics.iq.{stanzas,typedResponses}`. iq_stanzas: usize, iq_typed_responses: usize, + /// The addressee distribution, floored per class — see [`IqTargetCounts`]. Kept + /// whole rather than reduced to `resolved()` here, because a floor on the sum alone + /// cannot see one class trade places with another. + iq_targets: IqTargetCounts, /// Validation-constraint coverage, mirroring /// `manifest.diagnostics.iq.constraints` — see [`IqConstraintCounts`]. iq_reference_constraints: usize, @@ -834,6 +838,52 @@ struct IqDiagnostics { cross_module: wa_scan::CrossModuleStats, /// Validation-constraint coverage — see [`IqConstraintCounts`]. constraints: IqConstraintCounts, + /// Who the emitted requests are addressed to — see [`IqTargetCounts`]. + targets: IqTargetCounts, +} + +/// How the addressee of each emitted `` resolved. +/// +/// The point of the split is that the last two are not addresses. They used to be +/// reported as `s.whatsapp.net` because [`wa_ir::IqTarget`] had no third state, so a +/// consumer could not tell the 106 requests that really name the server from the ones +/// nothing named at all. +#[derive(Debug, Default, Clone, Copy)] +struct IqTargetCounts { + server: usize, + /// `to="g.us"` — the group server itself. + group_server: usize, + /// `to=GROUP_JID(x)` — one group's own JID, supplied at runtime. + group_jid: usize, + /// The builder writes no `to` and no fragment it folds in adds one. + unset: usize, + /// A `to` is written and the scan could not resolve it to a server. + unknown: usize, +} + +impl IqTargetCounts { + /// Requests whose addressee is named — the coverage number, guarded against + /// *falling* by `check_floor` exactly like `typedResponses`. The other two are held + /// against *rising* by `scripts/lint-ir.py`, since they shrink as extraction + /// improves; one direction each, and between them a request cannot quietly move from + /// an address to no address. + fn resolved(self) -> usize { + self.server + self.group_server + self.group_jid + } + + fn of(stanzas: &[wa_ir::IqStanzaDef]) -> Self { + let mut c = Self::default(); + for s in stanzas { + match s.target { + wa_ir::IqTarget::Server => c.server += 1, + wa_ir::IqTarget::GroupServer => c.group_server += 1, + wa_ir::IqTarget::GroupJid => c.group_jid += 1, + wa_ir::IqTarget::Unset => c.unset += 1, + wa_ir::IqTarget::Unknown => c.unknown += 1, + } + } + c + } } /// How many *validation constraints* the IQ IR carries, counted over the emitted @@ -1717,11 +1767,7 @@ fn build_artifacts(wa_version: &str, source: &str) -> Result<(Vec, Cou let c = push_abprops(&mut a, wa_version, source, &module_defs)?; Ok((a, c)) }); - let enums = s.spawn(|| -> Result<_> { - let mut a = Vec::new(); - let c = push_enums(&mut a, wa_version, source, &module_defs)?; - Ok((a, c)) - }); + let enums = s.spawn(|| scan_enums(wa_version, source, &module_defs)); let wam = s.spawn(|| -> Result<_> { let mut a = Vec::new(); let c = push_wam(&mut a, wa_version, source, &module_defs)?; @@ -1812,7 +1858,7 @@ fn build_artifacts(wa_version: &str, source: &str) -> Result<(Vec, Cou let (mex_arts, mex_count) = mex.expect(checked); let (appstate_arts, appstate_count) = appstate.expect(checked); let (abprops_arts, abprops_count) = abprops.expect(checked); - let (enums_arts, enums_count) = enums.expect(checked); + let mut enums_ir = enums.expect(checked); let (wam_arts, wam_count) = wam.expect(checked); let (notif_arts, notif_counts) = notif.expect(checked); let NotifCounts { @@ -1829,6 +1875,44 @@ fn build_artifacts(wa_version: &str, source: &str) -> Result<(Vec, Cou let (srvreq_arts, srvreq_count) = srvreq.expect(checked); let (wasm_arts, (wasm_binaries, wasm_resources, wasm_wasm_handles)) = wasm.expect(checked); + // The catalog is only complete once the enums the other domains reference inline + // are in it: 75 of the 87 `(module, name)` pairs referenced across iq/incoming/ + // notif/srvreq/stanza existed nowhere in it, so a generator that read the catalog + // and nothing else emitted a fraction of the types the IR names. Folded in here + // rather than in the enums extractor because only this point has seen every domain. + let enum_merge = merge_referenced_enums( + &mut enums_ir, + [ + &iq_arts, + ¬if_arts, + &stanza_arts, + &incoming_arts, + &srvreq_arts, + ], + )?; + // After the merge, never before: a shifted enum that exists only as an inline + // reference is not in the catalog until `merge_referenced_enums` puts it there, and + // marking first would publish it as an ordinary code table. + wa_enums::mark_bit_position_enums(&mut enums_ir, source); + let enums_count = enums_ir.enums.len(); + let bit_position = enums_ir.enums.iter().filter(|e| e.bit_position).count(); + eprintln!( + "enums: {enums_count} definitions ({} promoted from inline references, \ + {bit_position} bit-position)", + enum_merge.promoted, + ); + let enums_arts = vec![ + Artifact { + rel_path: PathBuf::from("enums/index.json"), + content: serde_json::to_string_pretty(&wa_ir::IrEnvelope::new(&enums_ir))? + "\n", + }, + // Reference Rust catalog (per-module `(variant, value)` const tables). + Artifact { + rel_path: PathBuf::from("enums/enums.rs"), + content: wa_codegen::generate_enums(&enums_ir), + }, + ]; + // Fail loud if any domain extracted nothing — a real WA bundle always yields // all of these, so a zero means the bundle is incomplete or that extractor // broke (the IQ domain has its own 0-candidate bail inside `push_iq`). @@ -1891,6 +1975,7 @@ fn build_artifacts(wa_version: &str, source: &str) -> Result<(Vec, Cou notif_stanza_tags: notif_tags, iq_stanzas: iq_diag.stanzas, iq_typed_responses: iq_diag.typed_responses, + iq_targets: iq_diag.targets, iq_reference_constraints: iq_diag.constraints.reference_constraints, iq_field_literals: iq_diag.constraints.field_literals, iq_field_enum_refs: iq_diag.constraints.field_enum_refs, @@ -1999,6 +2084,14 @@ fn build_artifacts(wa_version: &str, source: &str) -> Result<(Vec, Cou "requestsEnriched": iq_diag.cross_module.requests_enriched, "fieldsRecovered": iq_diag.cross_module.fields_recovered, }, + "targets": { + "server": iq_diag.targets.server, + "groupServer": iq_diag.targets.group_server, + "groupJid": iq_diag.targets.group_jid, + "unset": iq_diag.targets.unset, + "unknown": iq_diag.targets.unknown, + "resolved": iq_diag.targets.resolved(), + }, "constraints": { "referenceConstraints": iq_diag.constraints.reference_constraints, "fieldLiterals": iq_diag.constraints.field_literals, @@ -2089,6 +2182,32 @@ fn check_floor(out: &Path, counts: &Counts) -> Result> { regressions.push(format!("iq.{key}: {prev} → {new}")); } } + // Addressee coverage. Guarded upward only: a request whose `to` stops resolving + // moves from `server`/`group` into `unset`/`unknown`, which this sees and the + // stanza count cannot. The two unresolved states are held against *rising* by + // `scripts/lint-ir.py`, so neither direction is unwatched. + // + // Per class, not only on the total. The sum cannot see a SUBSTITUTION, and the + // substitution it cannot see is this PR's own headline defect: 27 requests moving + // between `groupJid` and `server` holds `resolved` at 139 and passes, while the + // generated builder swaps a caller-supplied group JID for a literal server — + // which is a subject change sent to `g.us` instead of to the group. Same reasoning + // as the split unresolved counters in `lint-ir.py`; an aggregate is only a floor + // for the thing it aggregates. + if let Some(t) = iq.get("targets") { + for (key, new) in [ + ("resolved", counts.iq_targets.resolved()), + ("server", counts.iq_targets.server), + ("groupServer", counts.iq_targets.group_server), + ("groupJid", counts.iq_targets.group_jid), + ] { + if let Some(prev) = t.get(key).and_then(serde_json::Value::as_u64) + && (new as u64) < prev + { + regressions.push(format!("iq.targets.{key}: {prev} → {new}")); + } + } + } // The validation-constraint layer. Each counter keys on a distinct JS construct // (`attrStringFromReference`, `literal`/`optionalLiteral`, the enum accessors, // the error mixins), so a WA refactor that hides one shows up here rather than @@ -2168,10 +2287,13 @@ fn push_stanza( source: &str, module_defs: &[wa_transform::ModuleDefinition], ) -> Result { - let ir = wa_ir::StanzaIr { + let mut ir = wa_ir::StanzaIr { wa_version: wa_version.to_string(), stanzas: wa_scan::scan_stanzas_from_modules(source, module_defs), }; + // Derived accessor classification, filled in before serialization so every + // domain publishes it — see `ParsedResponse::classify_accessors`. + ir.classify_accessors(); let count = ir.stanzas.len(); artifacts.push(Artifact { rel_path: PathBuf::from("stanza/index.json"), @@ -2327,10 +2449,13 @@ fn push_incoming( module_defs: &[wa_transform::ModuleDefinition], ) -> Result<(usize, std::collections::BTreeMap)> { let (incoming, drops) = wa_scan::scan_incoming_with_diagnostics(source, module_defs); - let ir = wa_ir::IncomingIr { + let mut ir = wa_ir::IncomingIr { wa_version: wa_version.to_string(), incoming, }; + // Derived accessor classification, filled in before serialization so every + // domain publishes it — see `ParsedResponse::classify_accessors`. + ir.classify_accessors(); let count = ir.incoming.len(); artifacts.push(Artifact { rel_path: PathBuf::from("incoming/index.json"), @@ -2349,10 +2474,13 @@ fn push_srvreq( source: &str, module_defs: &[wa_transform::ModuleDefinition], ) -> Result { - let ir = wa_ir::ServerRequestIr { + let mut ir = wa_ir::ServerRequestIr { wa_version: wa_version.to_string(), requests: wa_scan::scan_server_requests_from_modules(source, module_defs), }; + // Derived accessor classification, filled in before serialization so every + // domain publishes it — see `ParsedResponse::classify_accessors`. + ir.classify_accessors(); let count = ir.requests.len(); artifacts.push(Artifact { rel_path: PathBuf::from("srvreq/index.json"), @@ -2396,8 +2524,11 @@ fn push_iq( source: &str, module_defs: &[wa_transform::ModuleDefinition], ) -> Result<(usize, IqDiagnostics)> { - let (ir, scan_stats) = + let (mut ir, scan_stats) = wa_scan::extract_iq_from_modules_with_diagnostics(source, module_defs, wa_version); + // Derived accessor classification, filled in before serialization so every + // domain publishes it — see `ParsedResponse::classify_accessors`. + ir.classify_accessors(); let cross_module = scan_stats.cross_module; // M8/M9 diagnostics. Every IQ candidate module yields ≥1 stanza or exactly one @@ -2469,6 +2600,7 @@ fn push_iq( drops_by_reason, cross_module, constraints: iq_constraint_counts(&ir), + targets: IqTargetCounts::of(&ir.stanzas), }; // Neutral, language-agnostic IR (the cross-language contract): the same @@ -2571,25 +2703,158 @@ fn push_abprops( Ok(count) } -fn push_enums( - artifacts: &mut Vec, +/// What [`merge_referenced_enums`] did, for the manifest. +#[derive(Debug, Clone, Copy, Default)] +struct EnumMergeStat { + /// Enums referenced inline that the catalog did not have, now in it. + promoted: usize, +} + +/// Fold every enum referenced inline by a domain document into the catalog, so +/// `(module, name)` resolves for **every** `enumRef` in the IR. +/// +/// Reads the emitted JSON rather than the typed IRs on purpose. A typed walk has to name +/// each field that can hold an `enumRef` and each level it can nest under, and the one it +/// forgets fails silently and invisibly — which is the shape of the bug this whole change +/// is about. Walking the document we are actually shipping cannot miss a site, and covers +/// a new one for free. It costs one re-parse of each domain document (~60 ms on the +/// current bundle) against a run of several seconds. +fn merge_referenced_enums<'a>( + ir: &mut wa_ir::EnumsIr, + domains: impl IntoIterator>, +) -> Result { + let mut refs: std::collections::BTreeMap<(String, String), Vec> = + Default::default(); + let mut conflicts: Vec = Vec::new(); + for arts in domains { + for a in arts { + if a.rel_path.extension().and_then(|e| e.to_str()) != Some("json") { + continue; + } + let doc: serde_json::Value = serde_json::from_str(&a.content).with_context(|| { + format!("re-reading {} for enum references", a.rel_path.display()) + })?; + collect_enum_refs(&doc, &mut refs, &mut conflicts); + } + } + let mut stat = EnumMergeStat::default(); + let known: std::collections::HashMap<(&str, &str), &wa_ir::InternalEnumDef> = ir + .enums + .iter() + .map(|e| ((e.module.as_str(), e.name.as_str()), e)) + .collect(); + let mut promoted = Vec::new(); + for ((module, name), variants) in &refs { + match known.get(&(module.as_str(), name.as_str())) { + // A definition and a live reference to it that name different value sets. + // Fatal for the same reason two disagreeing references are: publishing the + // definition would leave a consumer resolving through the catalog with a + // different closed set from one reading the reference in place, and the + // resolution check cannot see it because the key is present either way. + Some(def) => { + if def.variants != *variants { + conflicts.push(format!("{module}.{name}")); + } + } + None => promoted.push(wa_ir::InternalEnumDef::new( + name.clone(), + module.clone(), + // Every inline reference is resolved to a string-valued enum before it + // is published (`AttrEnumVariant::value` is a `String`), so the kind is + // not a guess. + wa_ir::EnumValueKind::String, + variants.clone(), + )), + } + } + // Two live sites naming one `(module, name)` with different value sets — whether two + // references or a reference and the definition — mean the key is not the identity it + // is documented to be, so the catalog cannot be built from it at all. Fatal rather + // than counted: every downstream guarantee (one index, one key, every reference + // resolving) rests on this holding, and there is no correct entry to publish when it + // does not. The resolution lint cannot catch it either — the key is present whichever + // set is published. + if !conflicts.is_empty() { + conflicts.sort(); + conflicts.dedup(); + anyhow::bail!( + "{} enum(s) named under one (module, name) with different variants: {}. \ + The catalog key is not an identity for these, so no entry is correct.", + conflicts.len(), + conflicts.join(", "), + ); + } + stat.promoted = promoted.len(); + ir.enums.extend(promoted); + // The catalog's documented order, re-established after the merge. + ir.enums + .sort_by(|a, b| a.module.cmp(&b.module).then_with(|| a.name.cmp(&b.name))); + Ok(stat) +} + +/// Every `enumRef` object anywhere in `v`, keyed `(module, name)`. +fn collect_enum_refs( + v: &serde_json::Value, + out: &mut std::collections::BTreeMap<(String, String), Vec>, + conflicts: &mut Vec, +) { + match v { + serde_json::Value::Object(map) => { + for (k, child) in map { + if k == "enumRef" + && let Ok(r) = serde_json::from_value::(child.clone()) + && !r.variants.is_empty() + { + let variants: Vec = r + .variants + .into_iter() + .map(|v| wa_ir::EnumVariant { + name: v.name, + value: wa_ir::Scalar::Str(v.value), + }) + .collect(); + match out.entry((r.module, r.name)) { + std::collections::btree_map::Entry::Vacant(e) => { + e.insert(variants); + } + // Two references under one key that do not agree. Keeping + // whichever document happened to be walked first would publish a + // catalog entry that contradicts a live reference while the + // resolution check still passed — it only asks whether the key is + // there. Recorded so `merge_referenced_enums` can count it; the + // first reading is kept so the output stays deterministic. + std::collections::btree_map::Entry::Occupied(e) => { + if *e.get() != variants { + conflicts.push(format!("{}.{}", e.key().0, e.key().1)); + } + } + } + } + collect_enum_refs(child, out, conflicts); + } + } + serde_json::Value::Array(items) => { + for i in items { + collect_enum_refs(i, out, conflicts); + } + } + _ => {} + } +} + +/// Extract the wire-enum catalog. Emits no artifact: the catalog is not complete until +/// the enums the other domains reference inline are folded into it +/// ([`merge_referenced_enums`]), and those domains run in sibling threads. +fn scan_enums( wa_version: &str, source: &str, module_defs: &[wa_transform::ModuleDefinition], -) -> Result { - let ir = wa_enums::extract_enums_from_modules(source, module_defs, wa_version); - let count = ir.enums.len(); - eprintln!("enums: {count} definitions"); - artifacts.push(Artifact { - rel_path: PathBuf::from("enums/index.json"), - content: serde_json::to_string_pretty(&wa_ir::IrEnvelope::new(&ir))? + "\n", - }); - // Reference Rust catalog (per-module `(variant, value)` const tables). - artifacts.push(Artifact { - rel_path: PathBuf::from("enums/enums.rs"), - content: wa_codegen::generate_enums(&ir), - }); - Ok(count) +) -> Result { + Ok(wa_enums::extract_enums_from_modules( + source, + module_defs, + wa_version, + )) } /// `(notification types, types with a recovered typed content shape)`. @@ -2599,8 +2864,11 @@ fn push_notif( source: &str, module_defs: &[wa_transform::ModuleDefinition], ) -> Result { - let (ir, notif_drops) = + let (mut ir, notif_drops) = wa_notif::extract_notif_with_diagnostics(source, module_defs, wa_version); + // Derived accessor classification, filled in before serialization so every + // domain publishes it — see `ParsedResponse::classify_accessors`. + ir.classify_accessors(); let count = ir.notifications.len(); let stanza_tags = ir.stanza_tags.len(); let typed = ir @@ -2965,6 +3233,7 @@ mod tests { notif_stanza_tags: 0, iq_stanzas: 0, iq_typed_responses: 0, + iq_targets: IqTargetCounts::default(), stanza_defs: 0, incoming_defs: 0, server_request_defs: 0, @@ -3005,6 +3274,7 @@ mod tests { iq_modules: 33, iq_stanzas: 90, iq_typed_responses: 40, + iq_targets: IqTargetCounts::default(), ..Default::default() }; let regressions = check_floor(&dir, &counts).unwrap(); @@ -3014,6 +3284,50 @@ mod tests { fs::remove_dir_all(&dir).ok(); } + #[test] + fn check_floor_sees_one_addressee_class_trade_places_with_another() { + let dir = std::env::temp_dir().join(format!("whatspec-floor-tgt-{}", std::process::id())); + fs::create_dir_all(&dir).unwrap(); + let prior = serde_json::json!({ + "diagnostics": { "iq": { "targets": { + "server": 106, "groupServer": 6, "groupJid": 27, "resolved": 139, + } } }, + }); + fs::write( + dir.join("manifest.json"), + serde_json::to_string_pretty(&prior).unwrap(), + ) + .unwrap(); + // Every group JID re-read as the server. The total is still 139, so a floor on + // the sum passes — while every one of those 27 generated builders swaps a + // caller-supplied group JID for a literal `s.whatsapp.net`, which is this PR's + // own headline defect coming back. + let counts = Counts { + iq_targets: IqTargetCounts { + server: 133, + group_server: 6, + group_jid: 0, + unset: 0, + unknown: 0, + }, + ..Default::default() + }; + let regressions = check_floor(&dir, &counts).unwrap(); + assert!( + regressions + .iter() + .any(|r| r.contains("iq.targets.groupJid")), + "the class that lost its requests must be named: {regressions:?}" + ); + assert!( + !regressions + .iter() + .any(|r| r.contains("iq.targets.resolved")), + "and the sum is exactly what could not see it: {regressions:?}" + ); + fs::remove_dir_all(&dir).ok(); + } + #[test] fn check_artifacts_detects_missing_and_diff() { let dir = std::env::temp_dir().join(format!("whatspec-check-{}", std::process::id())); diff --git a/generated/abprops/index.json b/generated/abprops/index.json index 7a54f2d3..e9f8a2c6 100644 --- a/generated/abprops/index.json +++ b/generated/abprops/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "configs": [ { diff --git a/generated/appstate/index.json b/generated/appstate/index.json index 699f6262..15918177 100644 --- a/generated/appstate/index.json +++ b/generated/appstate/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "collections": [ "regular", diff --git a/generated/enums/index.json b/generated/enums/index.json index 18c898af..4da23a2e 100644 --- a/generated/enums/index.json +++ b/generated/enums/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "enums": [ { @@ -655,6 +655,46 @@ } ] }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInAbPropsEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_BRP2PCONSENT_BRPAYPRIVACYPOLICY_BRPAYTOS_BRPAYWATOS", + "module": "WASmaxInAccountEnums", + "valueKind": "string", + "variants": [ + { + "name": "br_p2p_consent", + "value": "br_p2p_consent" + }, + { + "name": "br_pay_privacy_policy", + "value": "br_pay_privacy_policy" + }, + { + "name": "br_pay_tos", + "value": "br_pay_tos" + }, + { + "name": "br_pay_wa_tos", + "value": "br_pay_wa_tos" + } + ], + "syntheticName": true + }, { "name": "ENUM_FBPAY_NOVI_UPI", "module": "WASmaxInAccountEnums", @@ -672,7 +712,88 @@ "name": "UPI", "value": "UPI" } - ] + ], + "syntheticName": true + }, + { + "name": "ENUM_PAYTOSV3_UPIPAYPRIVACYPOLICY", + "module": "WASmaxInAccountEnums", + "valueKind": "string", + "variants": [ + { + "name": "pay_tos_v3", + "value": "pay_tos_v3" + }, + { + "name": "upi_pay_privacy_policy", + "value": "upi_pay_privacy_policy" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInBizCtwaActionEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_INFO_WARNING", + "module": "WASmaxInBizCtwaActionEnums", + "valueKind": "string", + "variants": [ + { + "name": "info", + "value": "info" + }, + { + "name": "warning", + "value": "warning" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FAIL_SUCCESS", + "module": "WASmaxInBizCtwaAdAccountEnums", + "valueKind": "string", + "variants": [ + { + "name": "Fail", + "value": "Fail" + }, + { + "name": "Success", + "value": "Success" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_STRONG_WEAK", + "module": "WASmaxInBizCtwaAdAccountEnums", + "valueKind": "string", + "variants": [ + { + "name": "Strong", + "value": "Strong" + }, + { + "name": "Weak", + "value": "Weak" + } + ], + "syntheticName": true }, { "name": "ENUM_CITY_COUNTRY_CUSTOMLOCATION_NEIGHBORHOOD_REGION_ZIP", @@ -703,7 +824,8 @@ "name": "ZIP", "value": "ZIP" } - ] + ], + "syntheticName": true }, { "name": "ENUM_FACEBOOK_INSTAGRAM", @@ -718,7 +840,72 @@ "name": "INSTAGRAM", "value": "INSTAGRAM" } - ] + ], + "syntheticName": true + }, + { + "name": "ENUM_IMAGE_VIDEO", + "module": "WASmaxInBizCtwaNativeAdEnums", + "valueKind": "string", + "variants": [ + { + "name": "image", + "value": "image" + }, + { + "name": "video", + "value": "video" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_DISABLE_IMPORT", + "module": "WASmaxInBizLinkingEnums", + "valueKind": "string", + "variants": [ + { + "name": "disable", + "value": "disable" + }, + { + "name": "import", + "value": "import" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInBizLinkingEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_OFF_ON", + "module": "WASmaxInBizLinkingEnums", + "valueKind": "string", + "variants": [ + { + "name": "off", + "value": "off" + }, + { + "name": "on", + "value": "on" + } + ], + "syntheticName": true }, { "name": "ENUM_ELIGIBLETOONBOARD_NOTELIGIBLE_ONBOARDED", @@ -737,7 +924,8 @@ "name": "ONBOARDED", "value": "ONBOARDED" } - ] + ], + "syntheticName": true }, { "name": "ENUM_FAIL_PAUSED_SUCCESS_WARNING", @@ -760,7 +948,8 @@ "name": "WARNING", "value": "WARNING" } - ] + ], + "syntheticName": true }, { "name": "ENUM_FAIL_SUCCESS", @@ -775,7 +964,24 @@ "name": "SUCCESS", "value": "SUCCESS" } - ] + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInBizMarketingMessageEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true }, { "name": "ENUM_DISCOVERABLE_HIDDEN_UNDEFINED", @@ -794,7 +1000,164 @@ "name": "UNDEFINED", "value": "UNDEFINED" } - ] + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_NOTSET_TRUE", + "module": "WASmaxInBizSettingsEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "notset", + "value": "notset" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_LID_PN", + "module": "WASmaxInBlocklistsEnums", + "valueKind": "string", + "variants": [ + { + "name": "lid", + "value": "lid" + }, + { + "name": "pn", + "value": "pn" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_ALL_CATEGORY_FEATURED", + "module": "WASmaxInBotEnums", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "category", + "value": "category" + }, + { + "name": "featured", + "value": "featured" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_DARK_LIGHT", + "module": "WASmaxInBotEnums", + "valueKind": "string", + "variants": [ + { + "name": "dark", + "value": "dark" + }, + { + "name": "light", + "value": "light" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_HIDDEN_HSCROLL_HSCROLLICEBREAKERS_HSCROLLLARGE_HSCROLLSMALL_LISTVIEW", + "module": "WASmaxInBotEnums", + "valueKind": "string", + "variants": [ + { + "name": "hidden", + "value": "hidden" + }, + { + "name": "hscroll", + "value": "hscroll" + }, + { + "name": "hscroll_icebreakers", + "value": "hscroll_icebreakers" + }, + { + "name": "hscroll_large", + "value": "hscroll_large" + }, + { + "name": "hscroll_small", + "value": "hscroll_small" + }, + { + "name": "listview", + "value": "listview" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_0_1", + "module": "WASmaxInBrPaymentEnums", + "valueKind": "string", + "variants": [ + { + "name": "0", + "value": "0" + }, + { + "name": "1", + "value": "1" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_0_1_2", + "module": "WASmaxInBrPaymentEnums", + "valueKind": "string", + "variants": [ + { + "name": "0", + "value": "0" + }, + { + "name": "1", + "value": "1" + }, + { + "name": "2", + "value": "2" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_1_2", + "module": "WASmaxInBrPaymentEnums", + "valueKind": "string", + "variants": [ + { + "name": "1", + "value": "1" + }, + { + "name": "2", + "value": "2" + } + ], + "syntheticName": true }, { "name": "ENUM_ACCOUNTPENDINGLINKING_ACTIVE_EXTERNALLYDISABLED_HARDBLOCKED_INACTIVE_INITED_INTEGRITYBLOCKED_PENDING_SOFTBLOCKED", @@ -837,7 +1200,68 @@ "name": "SOFT_BLOCKED", "value": "SOFT_BLOCKED" } - ] + ], + "syntheticName": true + }, + { + "name": "ENUM_ACTIVE_ACTIVEPENDING_ACTIVESTATUSPENDING_AVAILABLE_AVAILABLEPENDING_AVAILABLESTATUSPENDING_BLOCKED_DEREGISTERED_DEREGISTEREDPENDING_INACTIVE_INACTIVEPENDING_INACTIVESTATUSPENDING_UNKNOWN", + "module": "WASmaxInBrPaymentEnums", + "valueKind": "string", + "variants": [ + { + "name": "active", + "value": "active" + }, + { + "name": "active_pending", + "value": "active_pending" + }, + { + "name": "active_status_pending", + "value": "active_status_pending" + }, + { + "name": "available", + "value": "available" + }, + { + "name": "available_pending", + "value": "available_pending" + }, + { + "name": "available_status_pending", + "value": "available_status_pending" + }, + { + "name": "blocked", + "value": "blocked" + }, + { + "name": "deregistered", + "value": "deregistered" + }, + { + "name": "deregistered_pending", + "value": "deregistered_pending" + }, + { + "name": "inactive", + "value": "inactive" + }, + { + "name": "inactive_pending", + "value": "inactive_pending" + }, + { + "name": "inactive_status_pending", + "value": "inactive_status_pending" + }, + { + "name": "unknown", + "value": "unknown" + } + ], + "syntheticName": true }, { "name": "ENUM_ACTIVE_DELETED_INACTIVE_NEEDSRETOKENIZATION_NEEDSRETOKENIZATIONDELETED_SUSPENDED", @@ -868,7 +1292,8 @@ "name": "SUSPENDED", "value": "SUSPENDED" } - ] + ], + "syntheticName": true }, { "name": "ENUM_ACTIVE_EXPIRED_SUSPENDED_VOIDED", @@ -891,7 +1316,8 @@ "name": "VOIDED", "value": "VOIDED" } - ] + ], + "syntheticName": true }, { "name": "ENUM_ACTIVE_INACTIVE", @@ -906,7 +1332,8 @@ "name": "INACTIVE", "value": "INACTIVE" } - ] + ], + "syntheticName": true }, { "name": "ENUM_BANK_PREPAID_SUPPORT", @@ -925,7 +1352,8 @@ "name": "SUPPORT", "value": "SUPPORT" } - ] + ], + "syntheticName": true }, { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", @@ -944,7 +1372,8 @@ "name": "REQUIRES_VERIFICATION", "value": "REQUIRES_VERIFICATION" } - ] + ], + "syntheticName": true }, { "name": "ENUM_ELO_MASTERCARD_VISA", @@ -963,7 +1392,8 @@ "name": "VISA", "value": "VISA" } - ] + ], + "syntheticName": true }, { "name": "ENUM_EMAIL_PUSH_SMS_VACAT", @@ -986,7 +1416,8 @@ "name": "VACAT", "value": "VACAT" } - ] + ], + "syntheticName": true }, { "name": "ENUM_FAILED_PENDING_VERIFIED", @@ -1005,7 +1436,8 @@ "name": "VERIFIED", "value": "VERIFIED" } - ] + ], + "syntheticName": true }, { "name": "ENUM_MASTERCARD_VISA", @@ -1020,26 +1452,448 @@ "name": "VISA", "value": "VISA" } - ] + ], + "syntheticName": true }, { - "name": "ENUM_ACCEPT_REJECT_UNKNOWN", - "module": "WASmaxInMessageDeliverEnums", + "name": "ENUM_MOBILENUMBER_NUMERICID", + "module": "WASmaxInBrPaymentEnums", "valueKind": "string", "variants": [ { - "name": "ACCEPT", - "value": "ACCEPT" - }, - { - "name": "REJECT", - "value": "REJECT" + "name": "mobile_number", + "value": "mobile_number" + }, + { + "name": "numeric_id", + "value": "numeric_id" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_P2M_P2P", + "module": "WASmaxInBrPaymentEnums", + "valueKind": "string", + "variants": [ + { + "name": "p2m", + "value": "p2m" + }, + { + "name": "p2p", + "value": "p2p" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_PAYONDELIVERY_PIXKEY", + "module": "WASmaxInBrPaymentEnums", + "valueKind": "string", + "variants": [ + { + "name": "pay_on_delivery", + "value": "pay_on_delivery" + }, + { + "name": "pix_key", + "value": "pix_key" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_AIFROMMETA_AUTOMATION_BUSINESSPLATFORM", + "module": "WASmaxInCoexistenceEnums", + "valueKind": "string", + "variants": [ + { + "name": "ai_from_meta", + "value": "ai_from_meta" + }, + { + "name": "automation", + "value": "automation" + }, + { + "name": "business_platform", + "value": "business_platform" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_COMPLETED_FAILED", + "module": "WASmaxInCoexistenceEnums", + "valueKind": "string", + "variants": [ + { + "name": "completed", + "value": "completed" + }, + { + "name": "failed", + "value": "failed" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_304_419", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "304", + "value": "304" + }, + { + "name": "419", + "value": "419" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_403_404_406_419", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "403", + "value": "403" + }, + { + "name": "404", + "value": "404" + }, + { + "name": "406", + "value": "406" + }, + { + "name": "419", + "value": "419" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_404_406", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "404", + "value": "404" + }, + { + "name": "406", + "value": "406" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_404_419", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "404", + "value": "404" + }, + { + "name": "419", + "value": "419" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_406_500", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "406", + "value": "406" + }, + { + "name": "500", + "value": "500" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_ADMIN_SUPERADMIN", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "admin", + "value": "admin" + }, + { + "name": "superadmin", + "value": "superadmin" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "approved", + "value": "approved" + }, + { + "name": "in_review", + "value": "in_review" + }, + { + "name": "none", + "value": "none" + }, + { + "name": "rejected", + "value": "rejected" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "e2ee_migration", + "value": "e2ee_migration" + }, + { + "name": "regular", + "value": "regular" + }, + { + "name": "rtc", + "value": "rtc" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_GROUP_USER", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "group", + "value": "group" + }, + { + "name": "user", + "value": "user" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_IMAGE_PREVIEW", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "image", + "value": "image" + }, + { + "name": "preview", + "value": "preview" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_INVITELINK_LINKEDGROUPJOIN_NONADMINADD", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "invite_link", + "value": "invite_link" + }, + { + "name": "linked_group_join", + "value": "linked_group_join" + }, + { + "name": "non_admin_add", + "value": "non_admin_add" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_LID_PN", + "module": "WASmaxInGroupsEnums", + "valueKind": "string", + "variants": [ + { + "name": "lid", + "value": "lid" + }, + { + "name": "pn", + "value": "pn" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInMdEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", + "module": "WASmaxInMessageDeliverEnums", + "valueKind": "string", + "variants": [ + { + "name": "1p_sticker", + "value": "1p_sticker" + }, + { + "name": "audio", + "value": "audio" + }, + { + "name": "avatar_sticker", + "value": "avatar_sticker" + }, + { + "name": "cataloglink", + "value": "cataloglink" + }, + { + "name": "collection", + "value": "collection" + }, + { + "name": "document", + "value": "document" + }, + { + "name": "genai_sticker", + "value": "genai_sticker" + }, + { + "name": "gif", + "value": "gif" + }, + { + "name": "image", + "value": "image" + }, + { + "name": "motion_photo", + "value": "motion_photo" + }, + { + "name": "motion_video", + "value": "motion_video" + }, + { + "name": "productlink", + "value": "productlink" + }, + { + "name": "ptt", + "value": "ptt" + }, + { + "name": "ptv", + "value": "ptv" + }, + { + "name": "sticker", + "value": "sticker" + }, + { + "name": "sticker_pack", + "value": "sticker_pack" + }, + { + "name": "url", + "value": "url" + }, + { + "name": "user_created_sticker", + "value": "user_created_sticker" + }, + { + "name": "vcard", + "value": "vcard" + }, + { + "name": "video", + "value": "video" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_ACCEPT_REJECT_UNKNOWN", + "module": "WASmaxInMessageDeliverEnums", + "valueKind": "string", + "variants": [ + { + "name": "ACCEPT", + "value": "ACCEPT" + }, + { + "name": "REJECT", + "value": "REJECT" }, { "name": "UNKNOWN", "value": "UNKNOWN" } - ] + ], + "syntheticName": true }, { "name": "ENUM_ASPRESENTED_BIMONTHLY_DAILY_FORTNIGHTLY_HALFYEARLY_MONTHLY_ONETIME_QUARTERLY_UNKNOWN_WEEKLY_YEARLY", @@ -1090,7 +1944,8 @@ "name": "YEARLY", "value": "YEARLY" } - ] + ], + "syntheticName": true }, { "name": "ENUM_DEREGISTER_INITTOPUP_PAY_TOPUP", @@ -1113,7 +1968,8 @@ "name": "TOP_UP", "value": "TOP_UP" } - ] + ], + "syntheticName": true }, { "name": "ENUM_EXACT_MAX", @@ -1128,7 +1984,8 @@ "name": "MAX", "value": "MAX" } - ] + ], + "syntheticName": true }, { "name": "ENUM_FAILED_PENDING_SUCCESS", @@ -1147,7 +2004,8 @@ "name": "SUCCESS", "value": "SUCCESS" } - ] + ], + "syntheticName": true }, { "name": "ENUM_FAILURE_INIT_SUCCESS", @@ -1166,7 +2024,8 @@ "name": "SUCCESS", "value": "SUCCESS" } - ] + ], + "syntheticName": true }, { "name": "ENUM_FBPAY_UPI", @@ -1174,86 +2033,551 @@ "valueKind": "string", "variants": [ { - "name": "FBPAY", - "value": "FBPAY" + "name": "FBPAY", + "value": "FBPAY" + }, + { + "name": "UPI", + "value": "UPI" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FULL_MISSINGFIELDNOTPARTIAL_PARTIAL", + "module": "WASmaxInMessageDeliverEnums", + "valueKind": "string", + "variants": [ + { + "name": "FULL", + "value": "FULL" + }, + { + "name": "MISSING_FIELD_NOT_PARTIAL", + "value": "MISSING_FIELD_NOT_PARTIAL" + }, + { + "name": "PARTIAL", + "value": "PARTIAL" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", + "module": "WASmaxInMessageDeliverEnums", + "valueKind": "string", + "variants": [ + { + "name": "hd_image_dual_upload", + "value": "hd_image_dual_upload" + }, + { + "name": "hd_video_dual_upload", + "value": "hd_video_dual_upload" + }, + { + "name": "hevc_video_dual_upload", + "value": "hevc_video_dual_upload" + }, + { + "name": "media_poll", + "value": "media_poll" + }, + { + "name": "motion_photo", + "value": "motion_photo" + }, + { + "name": "poll_add_option", + "value": "poll_add_option" + }, + { + "name": "sticker_annotation", + "value": "sticker_annotation" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_CBP_NBP_PMP", + "module": "WASmaxInMessagePublishEnums", + "valueKind": "string", + "variants": [ + { + "name": "CBP", + "value": "CBP" + }, + { + "name": "NBP", + "value": "NBP" + }, + { + "name": "PMP", + "value": "PMP" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_DELIVERY_NOOPTIMIZATION", + "module": "WASmaxInMessagePublishEnums", + "valueKind": "string", + "variants": [ + { + "name": "delivery", + "value": "delivery" + }, + { + "name": "no_optimization", + "value": "no_optimization" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInMessagePublishEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FREECUSTOMERSERVICE_FREEENTRYPOINT_REGULAR", + "module": "WASmaxInMessagePublishEnums", + "valueKind": "string", + "variants": [ + { + "name": "free_customer_service", + "value": "free_customer_service" + }, + { + "name": "free_entry_point", + "value": "free_entry_point" + }, + { + "name": "regular", + "value": "regular" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", + "module": "WASmaxInNewslettersEnums", + "valueKind": "string", + "variants": [ + { + "name": "1p_sticker", + "value": "1p_sticker" + }, + { + "name": "audio", + "value": "audio" + }, + { + "name": "avatar_sticker", + "value": "avatar_sticker" + }, + { + "name": "cataloglink", + "value": "cataloglink" + }, + { + "name": "collection", + "value": "collection" + }, + { + "name": "document", + "value": "document" + }, + { + "name": "genai_sticker", + "value": "genai_sticker" + }, + { + "name": "gif", + "value": "gif" + }, + { + "name": "image", + "value": "image" + }, + { + "name": "motion_photo", + "value": "motion_photo" + }, + { + "name": "motion_video", + "value": "motion_video" + }, + { + "name": "productlink", + "value": "productlink" + }, + { + "name": "ptt", + "value": "ptt" + }, + { + "name": "ptv", + "value": "ptv" + }, + { + "name": "sticker", + "value": "sticker" + }, + { + "name": "sticker_pack", + "value": "sticker_pack" + }, + { + "name": "url", + "value": "url" + }, + { + "name": "user_created_sticker", + "value": "user_created_sticker" + }, + { + "name": "vcard", + "value": "vcard" + }, + { + "name": "video", + "value": "video" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_AUDIO_GIF_IMAGE_VIDEO", + "module": "WASmaxInNewslettersEnums", + "valueKind": "string", + "variants": [ + { + "name": "audio", + "value": "audio" + }, + { + "name": "gif", + "value": "gif" + }, + { + "name": "image", + "value": "image" + }, + { + "name": "video", + "value": "video" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", + "module": "WASmaxInNewslettersEnums", + "valueKind": "string", + "variants": [ + { + "name": "hd_image_dual_upload", + "value": "hd_image_dual_upload" + }, + { + "name": "hd_video_dual_upload", + "value": "hd_video_dual_upload" + }, + { + "name": "hevc_video_dual_upload", + "value": "hevc_video_dual_upload" + }, + { + "name": "media_poll", + "value": "media_poll" + }, + { + "name": "motion_photo", + "value": "motion_photo" + }, + { + "name": "poll_add_option", + "value": "poll_add_option" + }, + { + "name": "sticker_annotation", + "value": "sticker_annotation" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_DENY_ERROR_NONE", + "module": "WASmaxInPresenceEnums", + "valueKind": "string", + "variants": [ + { + "name": "deny", + "value": "deny" + }, + { + "name": "error", + "value": "error" + }, + { + "name": "none", + "value": "none" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInProfilePictureEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_IMAGE_PREVIEW", + "module": "WASmaxInProfilePictureEnums", + "valueKind": "string", + "variants": [ + { + "name": "image", + "value": "image" + }, + { + "name": "preview", + "value": "preview" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_BLOCKED_UNBLOCKED", + "module": "WASmaxInPsaEnums", + "valueKind": "string", + "variants": [ + { + "name": "blocked", + "value": "blocked" + }, + { + "name": "unblocked", + "value": "unblocked" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInQpSurfacesEnums", + "valueKind": "string", + "variants": [ + { + "name": "false", + "value": "false" + }, + { + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_0_1_7", + "module": "WASmaxInReceiptEnums", + "valueKind": "string", + "variants": [ + { + "name": "0", + "value": "0" + }, + { + "name": "1", + "value": "1" + }, + { + "name": "7", + "value": "7" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_ALL_NONE", + "module": "WASmaxInReceiptEnums", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "none", + "value": "none" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_CBP_NBP_PMP", + "module": "WASmaxInReceiptEnums", + "valueKind": "string", + "variants": [ + { + "name": "CBP", + "value": "CBP" + }, + { + "name": "NBP", + "value": "NBP" + }, + { + "name": "PMP", + "value": "PMP" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_INTEGRITYNOTCLEARED_OK", + "module": "WASmaxInSmbMeteredMessagesCampaignEnums", + "valueKind": "string", + "variants": [ + { + "name": "INTEGRITY_NOT_CLEARED", + "value": "INTEGRITY_NOT_CLEARED" }, { - "name": "UPI", - "value": "UPI" + "name": "OK", + "value": "OK" } - ] + ], + "syntheticName": true }, { - "name": "ENUM_FULL_MISSINGFIELDNOTPARTIAL_PARTIAL", - "module": "WASmaxInMessageDeliverEnums", + "name": "ENUM_ALREADYCLAIMED_EXPIRED_INVALID_NOTFOUND_NOTOWNED_VALID", + "module": "WASmaxInSmbMeteredMessagingAccountEnums", "valueKind": "string", "variants": [ { - "name": "FULL", - "value": "FULL" + "name": "already_claimed", + "value": "already_claimed" }, { - "name": "MISSING_FIELD_NOT_PARTIAL", - "value": "MISSING_FIELD_NOT_PARTIAL" + "name": "expired", + "value": "expired" }, { - "name": "PARTIAL", - "value": "PARTIAL" + "name": "invalid", + "value": "invalid" + }, + { + "name": "not_found", + "value": "not_found" + }, + { + "name": "not_owned", + "value": "not_owned" + }, + { + "name": "valid", + "value": "valid" } - ] + ], + "syntheticName": true }, { - "name": "ENUM_CBP_NBP_PMP", - "module": "WASmaxInMessagePublishEnums", + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInSmbMeteredMessagingAccountEnums", "valueKind": "string", "variants": [ { - "name": "CBP", - "value": "CBP" + "name": "false", + "value": "false" }, { - "name": "NBP", - "value": "NBP" + "name": "true", + "value": "true" + } + ], + "syntheticName": true + }, + { + "name": "ENUM_FREEMSG_PERCENTAGE", + "module": "WASmaxInSmbMeteredMessagingAccountEnums", + "valueKind": "string", + "variants": [ + { + "name": "free_msg", + "value": "free_msg" }, { - "name": "PMP", - "value": "PMP" + "name": "percentage", + "value": "percentage" } - ] + ], + "syntheticName": true }, { - "name": "ENUM_CBP_NBP_PMP", - "module": "WASmaxInReceiptEnums", + "name": "ENUM_AUDIO_GIF_IMAGE_VIDEO", + "module": "WASmaxInStatusDeliverEnums", "valueKind": "string", "variants": [ { - "name": "CBP", - "value": "CBP" + "name": "audio", + "value": "audio" }, { - "name": "NBP", - "value": "NBP" + "name": "gif", + "value": "gif" }, { - "name": "PMP", - "value": "PMP" + "name": "image", + "value": "image" + }, + { + "name": "video", + "value": "video" } - ] + ], + "syntheticName": true }, { - "name": "ENUM_INTEGRITYNOTCLEARED_OK", - "module": "WASmaxInSmbMeteredMessagesCampaignEnums", + "name": "ENUM_FALSE_TRUE", + "module": "WASmaxInWaffleEnums", "valueKind": "string", "variants": [ { - "name": "INTEGRITY_NOT_CLEARED", - "value": "INTEGRITY_NOT_CLEARED" + "name": "false", + "value": "false" }, { - "name": "OK", - "value": "OK" + "name": "true", + "value": "true" } - ] + ], + "syntheticName": true }, { "name": "SmaxRunnerFunctionName", @@ -4145,6 +5469,25 @@ } ] }, + { + "name": "GROUP_PARTICIPANT_TYPES", + "module": "WAWebGroupApiConst", + "valueKind": "string", + "variants": [ + { + "name": "superadmin", + "value": "superadmin" + }, + { + "name": "admin", + "value": "admin" + }, + { + "name": "participant", + "value": "participant" + } + ] + }, { "name": "MessageHistoryBundleProcessState", "module": "WAWebGroupHistoryMsgData.flow", @@ -4245,6 +5588,136 @@ } ] }, + { + "name": "APPDATA", + "module": "WAWebHandleMsgCommon", + "valueKind": "string", + "variants": [ + { + "name": "default", + "value": "default" + }, + { + "name": "member_tag", + "value": "member_tag" + }, + { + "name": "group_history", + "value": "group_history" + } + ] + }, + { + "name": "EVENT_TYPES", + "module": "WAWebHandleMsgCommon", + "valueKind": "string", + "variants": [ + { + "name": "creation", + "value": "creation" + }, + { + "name": "response", + "value": "response" + }, + { + "name": "edit", + "value": "edit" + } + ] + }, + { + "name": "MSG_VERIFIED_LEVEL", + "module": "WAWebHandleMsgCommon", + "valueKind": "string", + "variants": [ + { + "name": "high", + "value": "high" + }, + { + "name": "low", + "value": "low" + }, + { + "name": "unknown", + "value": "unknown" + } + ] + }, + { + "name": "POLL_TYPES", + "module": "WAWebHandleMsgCommon", + "valueKind": "string", + "variants": [ + { + "name": "creation", + "value": "creation" + }, + { + "name": "quiz_creation", + "value": "quiz_creation" + }, + { + "name": "vote", + "value": "vote" + }, + { + "name": "result_snapshot", + "value": "result_snapshot" + }, + { + "name": "edit", + "value": "edit" + } + ] + }, + { + "name": "STANZA_MSG_ORIGIN", + "module": "WAWebHandleMsgCommon", + "valueKind": "string", + "variants": [ + { + "name": "ctwa", + "value": "ctwa" + } + ] + }, + { + "name": "STANZA_MSG_TYPES", + "module": "WAWebHandleMsgCommon", + "valueKind": "string", + "variants": [ + { + "name": "text", + "value": "text" + }, + { + "name": "media", + "value": "media" + }, + { + "name": "medianotify", + "value": "medianotify" + }, + { + "name": "pay", + "value": "pay" + }, + { + "name": "poll", + "value": "poll" + }, + { + "name": "reaction", + "value": "reaction" + }, + { + "name": "event", + "value": "event" + } + ] + }, { "name": "MessageProtobufMismatchErrorCode", "module": "WAWebHandleMsgError", @@ -6337,6 +7810,139 @@ } ] }, + { + "name": "ALL_CONTACTS", + "module": "WAWebPrivacySettings", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "contacts", + "value": "contacts" + } + ] + }, + { + "name": "ALL_NONE", + "module": "WAWebPrivacySettings", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "none", + "value": "none" + } + ] + }, + { + "name": "ALL_NONE_WITH_ERROR", + "module": "WAWebPrivacySettings", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "none", + "value": "none" + }, + { + "name": "error", + "value": "error" + } + ] + }, + { + "name": "CALL_ADD_WITH_ERROR", + "module": "WAWebPrivacySettings", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "known", + "value": "known" + }, + { + "name": "contacts", + "value": "contacts" + }, + { + "name": "error", + "value": "error" + } + ] + }, + { + "name": "DEFENSE_MODE_STATE", + "module": "WAWebPrivacySettings", + "valueKind": "string", + "variants": [ + { + "name": "off", + "value": "off" + }, + { + "name": "on_standard", + "value": "on_standard" + } + ] + }, + { + "name": "ONLINE_VISIBILITY_WITH_ERROR", + "module": "WAWebPrivacySettings", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "match_last_seen", + "value": "match_last_seen" + }, + { + "name": "error", + "value": "error" + } + ] + }, + { + "name": "VISIBILITY_WITH_ERROR", + "module": "WAWebPrivacySettings", + "valueKind": "string", + "variants": [ + { + "name": "all", + "value": "all" + }, + { + "name": "contacts", + "value": "contacts" + }, + { + "name": "contact_blacklist", + "value": "contact_blacklist" + }, + { + "name": "none", + "value": "none" + }, + { + "name": "error", + "value": "error" + } + ] + }, { "name": "ProductAvailability", "module": "WAWebProductTypes", @@ -8517,7 +10123,8 @@ "name": "HID_FAILED_DECRYPT", "value": 2 } - ] + ], + "bitPosition": true }, { "name": "RetryReason", @@ -9932,6 +11539,21 @@ } ] }, + { + "name": "ENC_RETRY_RECEIPT_ATTRS", + "module": "WAWebVoipSignalingEnums", + "valueKind": "string", + "variants": [ + { + "name": "SINGLE_PARTICIPANT", + "value": "enc" + }, + { + "name": "GROUP_CALL", + "value": "enc_rekey_retry" + } + ] + }, { "name": "EndCallReason", "module": "WAWebVoipSignalingEnums", diff --git a/generated/incoming/index.json b/generated/incoming/index.json index 19639497..0d65b2c9 100644 --- a/generated/incoming/index.json +++ b/generated/incoming/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "incoming": [ { @@ -18,7 +18,7 @@ "method": "maybeChild", "name": "plaintext", "type": "string", - "required": false, + "parserRequired": false, "tag": "plaintext", "children": [] }, @@ -26,14 +26,15 @@ "method": "mapChildrenWithTag", "name": "enc", "type": "string", - "required": true, + "parserRequired": true, "tag": "enc", "children": [ { "method": "attrEnumValues", "name": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "CiphertextType", "module": "WAWebBackendJobs.flow", @@ -61,37 +62,37 @@ "method": "maybeAttrString", "name": "mediatype", "type": "string", - "required": false + "parserRequired": false }, { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "count", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "decrypt-fail", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "state", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "session_type", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -100,14 +101,14 @@ "method": "maybeChild", "name": "device-identity", "type": "string", - "required": false, + "parserRequired": false, "tag": "device-identity", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -116,38 +117,38 @@ "method": "maybeChild", "name": "bot", "type": "string", - "required": false, + "parserRequired": false, "tag": "bot", "children": [ { "method": "maybeAttrString", "name": "sender_timestamp_ms", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "edit_target_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "edit", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "biz_bot", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "type", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -155,32 +156,32 @@ "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "attrDeviceJid", "name": "participant", "type": "device_jid", - "required": false + "parserRequired": false }, { "method": "maybeChild", "name": "unavailable", "type": "string", - "required": false, + "parserRequired": false, "tag": "unavailable", "children": [ { "method": "maybeAttrString", "name": "hosted", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "type", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -188,7 +189,8 @@ "method": "attrEnum", "name": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "STANZA_MSG_TYPES", "module": "WAWebHandleMsgCommon", @@ -228,14 +230,15 @@ "method": "maybeChild", "name": "meta", "type": "string", - "required": false, + "parserRequired": false, "tag": "meta", "children": [ { "method": "attrEnumOrNullIfUnknown", "name": "polltype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "null", "enumRef": { "name": "POLL_TYPES", "module": "WAWebHandleMsgCommon", @@ -267,13 +270,14 @@ "method": "maybeAttrString", "name": "status_mentioned", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "origin", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "STANZA_MSG_ORIGIN", "module": "WAWebHandleMsgCommon", @@ -289,7 +293,8 @@ "method": "maybeAttrEnum", "name": "appdata", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "APPDATA", "module": "WAWebHandleMsgCommon", @@ -313,55 +318,56 @@ "method": "attrString", "name": "thread_msg_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrJidWithType", "name": "thread_msg_sender_jid", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "target_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrJidWithType", "name": "target_sender_jid", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrJidWithType", "name": "target_chat_jid", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrJidWithType", "name": "target_chat_jid_lid", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "capi", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "event_type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "EVENT_TYPES", "module": "WAWebHandleMsgCommon", @@ -385,56 +391,56 @@ "method": "attrString", "name": "context_source", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "read", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "is_group_status", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "session_scope", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "type", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "st", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeChild", "name": "key", "type": "string", - "required": false, + "parserRequired": false, "tag": "key", "children": [ { "method": "maybeAttrString", "name": "rkid", "type": "string", - "required": false + "parserRequired": false }, { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -445,20 +451,20 @@ "method": "attrString", "name": "t", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeChild", "name": "verified_name", "type": "string", - "required": false, + "parserRequired": false, "tag": "verified_name", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ] }, @@ -466,7 +472,7 @@ "method": "child", "name": "verified_name", "type": "string", - "required": false, + "parserRequired": false, "tag": "verified_name", "children": [] }, @@ -474,7 +480,8 @@ "method": "maybeAttrEnum", "name": "verified_level", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "MSG_VERIFIED_LEVEL", "module": "WAWebHandleMsgCommon", @@ -498,44 +505,44 @@ "method": "attrInt", "name": "verified_name", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeChild", "name": "biz", "type": "string", - "required": false, + "parserRequired": false, "tag": "biz", "children": [ { "method": "maybeAttrInt", "name": "actual_actors", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "host_storage", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "privacy_mode_ts", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "native_flow_name", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "campaign_id", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -543,7 +550,7 @@ "method": "child", "name": "pay", "type": "string", - "required": false, + "parserRequired": false, "tag": "pay", "children": [] }, @@ -551,7 +558,7 @@ "method": "child", "name": "transaction", "type": "string", - "required": false, + "parserRequired": false, "tag": "transaction", "children": [] }, @@ -559,38 +566,38 @@ "method": "attrJidWithType", "name": "participant", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "recipient", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeChild", "name": "hsm", "type": "string", - "required": false, + "parserRequired": false, "tag": "hsm", "children": [ { "method": "maybeAttrString", "name": "tag", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "category", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -598,27 +605,27 @@ "method": "maybeChild", "name": "reporting", "type": "string", - "required": false, + "parserRequired": false, "tag": "reporting", "children": [ { "method": "maybeChild", "name": "reporting_token", "type": "string", - "required": false, + "parserRequired": false, "tag": "reporting_token", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "v", "type": "integer", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -627,14 +634,14 @@ "method": "maybeChild", "name": "reporting_tag", "type": "string", - "required": false, + "parserRequired": false, "tag": "reporting_tag", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -645,13 +652,13 @@ "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeChild", "name": "rcat", "type": "string", - "required": false, + "parserRequired": false, "tag": "rcat", "children": [] } @@ -674,7 +681,8 @@ "method": "attrEnum", "name": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "STANZA_MSG_TYPES", "module": "WAWebHandleMsgCommon", @@ -714,44 +722,44 @@ "method": "attrString", "name": "offline", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeChild", "name": "bot", "type": "string", - "required": false, + "parserRequired": false, "tag": "bot", "children": [ { "method": "maybeAttrString", "name": "sender_timestamp_ms", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "edit_target_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "edit", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "biz_bot", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "type", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -759,19 +767,19 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "attrDeviceJid", "name": "participant", "type": "device_jid", - "required": false + "parserRequired": false } ] } @@ -792,7 +800,7 @@ "method": "maybeChild", "name": "offer", "type": "string", - "required": false, + "parserRequired": false, "tag": "offer", "children": [] }, @@ -800,7 +808,7 @@ "method": "maybeChild", "name": "accept", "type": "string", - "required": false, + "parserRequired": false, "tag": "accept", "children": [] }, @@ -808,7 +816,7 @@ "method": "maybeChild", "name": "reject", "type": "string", - "required": false, + "parserRequired": false, "tag": "reject", "children": [] }, @@ -816,19 +824,19 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": true + "parserRequired": true } ] } @@ -849,25 +857,26 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "offline", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "null", "enumKeys": [ "delivery", "read", @@ -884,20 +893,20 @@ "method": "maybeChild", "name": "error", "type": "string", - "required": false, + "parserRequired": false, "tag": "error", "children": [ { "method": "attrString", "name": "reason", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -905,39 +914,40 @@ "method": "maybeChild", "name": "participants", "type": "string", - "required": false, + "parserRequired": false, "tag": "participants", "children": [ { "method": "forEachChildWithTag", "name": "user", "type": "string", - "required": false, + "parserRequired": false, "tag": "user", "children": [ { "method": "attrDeviceJid", "name": "jid", "type": "device_jid", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumKeys": [ "delivery", "read", @@ -954,13 +964,13 @@ "method": "attrUserJid", "name": "participant_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "participant_username", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -969,38 +979,38 @@ "method": "attrString", "name": "message_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "mapChildrenWithTag", "name": "user", "type": "string", - "required": false, + "parserRequired": false, "tag": "user", "children": [ { "method": "attrDeviceJid", "name": "jid", "type": "device_jid", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "participant_username", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -1009,7 +1019,7 @@ "method": "attrString", "name": "key", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -1017,39 +1027,39 @@ "method": "attrDeviceJid", "name": "participant", "type": "device_jid", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "recipient", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "child", "name": "list", "type": "string", - "required": false, + "parserRequired": false, "tag": "list", "children": [ { "method": "mapChildrenWithTag", "name": "item", "type": "string", - "required": false, + "parserRequired": false, "tag": "item", "children": [ { "method": "attrString", "name": "server_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -1060,26 +1070,26 @@ "method": "child", "name": "biz", "type": "string", - "required": false, + "parserRequired": false, "tag": "biz", "children": [ { "method": "maybeAttrInt", "name": "actual_actors", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "host_storage", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "privacy_mode_ts", "type": "integer", - "required": false + "parserRequired": false } ] }, @@ -1087,25 +1097,25 @@ "method": "attrString", "name": "is_lid", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "participant_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "participant_username", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrTime", "name": "t", "type": "integer", - "required": false + "parserRequired": false } ] } @@ -1126,50 +1136,50 @@ "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "attrDeviceJid", "name": "participant", "type": "device_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "is_lid", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrDeviceJid", "name": "recipient", "type": "device_jid", - "required": false + "parserRequired": false }, { "method": "child", "name": "retry", "type": "string", - "required": true, + "parserRequired": true, "tag": "retry", "children": [ { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "count", "type": "integer", - "required": false + "parserRequired": false } ] }, @@ -1177,21 +1187,21 @@ "method": "maybeChild", "name": "keys", "type": "string", - "required": false, + "parserRequired": false, "tag": "keys", "children": [ { "method": "child", "name": "identity", "type": "string", - "required": true, + "parserRequired": true, "tag": "identity", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ] @@ -1200,21 +1210,21 @@ "method": "child", "name": "skey", "type": "string", - "required": true, + "parserRequired": true, "tag": "skey", "children": [ { "method": "child", "name": "id", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentUint", "name": "content", "type": "integer", - "required": true, + "parserRequired": true, "byteLength": 3 } ] @@ -1223,14 +1233,14 @@ "method": "child", "name": "value", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ] @@ -1239,14 +1249,14 @@ "method": "child", "name": "signature", "type": "string", - "required": true, + "parserRequired": true, "tag": "signature", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64 } ] @@ -1257,21 +1267,21 @@ "method": "maybeChild", "name": "key", "type": "string", - "required": false, + "parserRequired": false, "tag": "key", "children": [ { "method": "child", "name": "id", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentUint", "name": "content", "type": "integer", - "required": true, + "parserRequired": true, "byteLength": 3 } ] @@ -1280,14 +1290,14 @@ "method": "child", "name": "value", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ] @@ -1300,26 +1310,26 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "child", "name": "registration", "type": "string", - "required": true, + "parserRequired": true, "tag": "registration", "children": [ { "method": "contentUint", "name": "content", "type": "integer", - "required": true, + "parserRequired": true, "byteLength": 4 } ] @@ -1343,44 +1353,44 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "child", "name": "offer_notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "offer_notice", "children": [ { "method": "attrDeviceJid", "name": "call-creator", "type": "device_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "call-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "media", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1388,7 +1398,7 @@ "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true } ] } @@ -1409,7 +1419,7 @@ "method": "maybeAttrTime", "name": "t", "type": "integer", - "required": false + "parserRequired": false } ] } @@ -1430,43 +1440,43 @@ "method": "attrJidWithType", "name": "from", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "attrJidWithType", "name": "sender_lid", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "platform", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "version", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrTime", "name": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrTime", "name": "e", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ] } @@ -1487,37 +1497,37 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "t", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "class", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrDeviceJid", "name": "participant", "type": "device_jid", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "recipient", "type": "user_jid", - "required": false + "parserRequired": false } ] } @@ -1558,14 +1568,14 @@ "name": "error", "wireName": "error", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "class", "wireName": "class", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "message" }, { @@ -1573,20 +1583,20 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "", "name": "ackMessageEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" } ], @@ -1595,15 +1605,15 @@ { "method": "", "name": "ackAdminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -1612,15 +1622,15 @@ { "method": "", "name": "ackMessagePinMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "2" } ], @@ -1629,15 +1639,15 @@ { "method": "", "name": "ackAdminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -1646,15 +1656,15 @@ { "method": "", "name": "ackRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" } ], @@ -1663,14 +1673,14 @@ { "method": "", "name": "serverFrankingTagMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "frankingReportingTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 9, "byteMax": 128, "sourcePath": [ @@ -1685,7 +1695,7 @@ "method": "", "name": "ackPaidAckPaidConversationOrAckPaidGroupConversationConversationMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "AckPaidConversation", @@ -1695,7 +1705,7 @@ "name": "bizPaidConvoId", "wireName": "paid_convo_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "biz" ] @@ -1705,7 +1715,8 @@ "name": "bizPricingModel", "wireName": "pricing_model", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_CBP_NBP_PMP", "module": "WASmaxInMessagePublishEnums", @@ -1733,7 +1744,8 @@ "name": "bizBillable", "wireName": "billable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInMessagePublishEnums", @@ -1757,7 +1769,7 @@ "name": "bizExpirationTimestamp", "wireName": "expiration_timestamp", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "biz" ] @@ -1767,7 +1779,7 @@ "name": "bizPricingCategory", "wireName": "pricing_category", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "biz" ] @@ -1777,7 +1789,8 @@ "name": "bizPricingType", "wireName": "pricing_type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FREECUSTOMERSERVICE_FREEENTRYPOINT_REGULAR", "module": "WASmaxInMessagePublishEnums", @@ -1804,7 +1817,7 @@ "method": "child", "name": "bizDeliveryContext", "type": "string", - "required": false, + "parserRequired": false, "tag": "delivery_context", "children": [ { @@ -1812,7 +1825,8 @@ "name": "optimizationGoal", "wireName": "optimization_goal", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DELIVERY_NOOPTIMIZATION", "module": "WASmaxInMessagePublishEnums", @@ -1838,7 +1852,7 @@ "method": "child", "name": "bizOrigin", "type": "string", - "required": false, + "parserRequired": false, "tag": "origin", "children": [ { @@ -1846,13 +1860,13 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "referral", "type": "string", - "required": false, + "parserRequired": false, "tag": "referral", "children": [ { @@ -1860,20 +1874,20 @@ "name": "sourceType", "wireName": "source_type", "type": "string", - "required": false + "parserRequired": false }, { "method": "child", "name": "sourceUrl", "type": "string", - "required": false, + "parserRequired": false, "tag": "source_url", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -1891,7 +1905,7 @@ "method": "child", "name": "bizPricing", "type": "string", - "required": false, + "parserRequired": false, "tag": "pricing", "children": [ { @@ -1899,42 +1913,42 @@ "name": "consumerCountryCode", "wireName": "consumer_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "businessCountryCode", "wireName": "business_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "conversationStatus", "wireName": "conversation_status", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "latestC2bTimestamp", "wireName": "latest_c2b_timestamp", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "analyticsConversationId", "wireName": "analytics_conversation_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "b2cTimestamp", "wireName": "b2c_timestamp", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": false, @@ -1958,7 +1972,7 @@ "name": "bizPricingBusinessCountryCode", "wireName": "business_country_code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "biz", "pricing" @@ -1977,15 +1991,15 @@ { "method": "", "name": "applicationNegativeAckMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "applicationError", "wireName": "application_error", "type": "integer", - "required": true + "parserRequired": true } ], "sameNode": true @@ -1993,15 +2007,15 @@ { "method": "", "name": "messageNackRetryAttributesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "backoff", "wireName": "backoff", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 86400 } @@ -2027,7 +2041,7 @@ "method": "", "name": "newsletterQuestionResponseOrNewsletterMessageAckMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionResponseAck", @@ -2037,14 +2051,14 @@ "name": "responseServerId", "wireName": "response_server_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "class", "wireName": "class", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "message" }, { @@ -2052,20 +2066,20 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "", "name": "ackMessageEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" } ], @@ -2074,15 +2088,15 @@ { "method": "", "name": "ackAdminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -2091,15 +2105,15 @@ { "method": "", "name": "ackMessagePinMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "2" } ], @@ -2108,15 +2122,15 @@ { "method": "", "name": "ackAdminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -2125,15 +2139,15 @@ { "method": "", "name": "ackRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" } ], @@ -2142,14 +2156,14 @@ { "method": "", "name": "serverFrankingTagMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "frankingReportingTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 9, "byteMax": 128, "sourcePath": [ @@ -2164,7 +2178,7 @@ "method": "", "name": "ackPaidAckPaidConversationOrAckPaidGroupConversationConversationMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "AckPaidConversation", @@ -2174,7 +2188,7 @@ "name": "bizPaidConvoId", "wireName": "paid_convo_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "biz" ] @@ -2184,7 +2198,8 @@ "name": "bizPricingModel", "wireName": "pricing_model", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_CBP_NBP_PMP", "module": "WASmaxInMessagePublishEnums", @@ -2212,7 +2227,8 @@ "name": "bizBillable", "wireName": "billable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInMessagePublishEnums", @@ -2236,7 +2252,7 @@ "name": "bizExpirationTimestamp", "wireName": "expiration_timestamp", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "biz" ] @@ -2246,7 +2262,7 @@ "name": "bizPricingCategory", "wireName": "pricing_category", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "biz" ] @@ -2256,7 +2272,8 @@ "name": "bizPricingType", "wireName": "pricing_type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FREECUSTOMERSERVICE_FREEENTRYPOINT_REGULAR", "module": "WASmaxInMessagePublishEnums", @@ -2283,7 +2300,7 @@ "method": "child", "name": "bizDeliveryContext", "type": "string", - "required": false, + "parserRequired": false, "tag": "delivery_context", "children": [ { @@ -2291,7 +2308,8 @@ "name": "optimizationGoal", "wireName": "optimization_goal", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DELIVERY_NOOPTIMIZATION", "module": "WASmaxInMessagePublishEnums", @@ -2317,7 +2335,7 @@ "method": "child", "name": "bizOrigin", "type": "string", - "required": false, + "parserRequired": false, "tag": "origin", "children": [ { @@ -2325,13 +2343,13 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "referral", "type": "string", - "required": false, + "parserRequired": false, "tag": "referral", "children": [ { @@ -2339,20 +2357,20 @@ "name": "sourceType", "wireName": "source_type", "type": "string", - "required": false + "parserRequired": false }, { "method": "child", "name": "sourceUrl", "type": "string", - "required": false, + "parserRequired": false, "tag": "source_url", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -2370,7 +2388,7 @@ "method": "child", "name": "bizPricing", "type": "string", - "required": false, + "parserRequired": false, "tag": "pricing", "children": [ { @@ -2378,42 +2396,42 @@ "name": "consumerCountryCode", "wireName": "consumer_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "businessCountryCode", "wireName": "business_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "conversationStatus", "wireName": "conversation_status", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "latestC2bTimestamp", "wireName": "latest_c2b_timestamp", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "analyticsConversationId", "wireName": "analytics_conversation_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "b2cTimestamp", "wireName": "b2c_timestamp", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": false, @@ -2437,7 +2455,7 @@ "name": "bizPricingBusinessCountryCode", "wireName": "business_country_code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "biz", "pricing" @@ -2488,7 +2506,7 @@ "name": "serverId", "wireName": "server_id", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 99, "intMax": 2147476647 }, @@ -2497,7 +2515,7 @@ "name": "class", "wireName": "class", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "message" }, { @@ -2505,20 +2523,20 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "", "name": "ackMessageEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" } ], @@ -2527,15 +2545,15 @@ { "method": "", "name": "ackAdminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -2544,15 +2562,15 @@ { "method": "", "name": "ackMessagePinMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "2" } ], @@ -2561,15 +2579,15 @@ { "method": "", "name": "ackAdminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -2578,15 +2596,15 @@ { "method": "", "name": "ackRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" } ], @@ -2595,14 +2613,14 @@ { "method": "", "name": "serverFrankingTagMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "frankingReportingTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 9, "byteMax": 128, "sourcePath": [ @@ -2617,7 +2635,7 @@ "method": "", "name": "ackPaidAckPaidConversationOrAckPaidGroupConversationConversationMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "AckPaidConversation", @@ -2627,7 +2645,7 @@ "name": "bizPaidConvoId", "wireName": "paid_convo_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "biz" ] @@ -2637,7 +2655,8 @@ "name": "bizPricingModel", "wireName": "pricing_model", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_CBP_NBP_PMP", "module": "WASmaxInMessagePublishEnums", @@ -2665,7 +2684,8 @@ "name": "bizBillable", "wireName": "billable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInMessagePublishEnums", @@ -2689,7 +2709,7 @@ "name": "bizExpirationTimestamp", "wireName": "expiration_timestamp", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "biz" ] @@ -2699,7 +2719,7 @@ "name": "bizPricingCategory", "wireName": "pricing_category", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "biz" ] @@ -2709,7 +2729,8 @@ "name": "bizPricingType", "wireName": "pricing_type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FREECUSTOMERSERVICE_FREEENTRYPOINT_REGULAR", "module": "WASmaxInMessagePublishEnums", @@ -2736,7 +2757,7 @@ "method": "child", "name": "bizDeliveryContext", "type": "string", - "required": false, + "parserRequired": false, "tag": "delivery_context", "children": [ { @@ -2744,7 +2765,8 @@ "name": "optimizationGoal", "wireName": "optimization_goal", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DELIVERY_NOOPTIMIZATION", "module": "WASmaxInMessagePublishEnums", @@ -2770,7 +2792,7 @@ "method": "child", "name": "bizOrigin", "type": "string", - "required": false, + "parserRequired": false, "tag": "origin", "children": [ { @@ -2778,13 +2800,13 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "referral", "type": "string", - "required": false, + "parserRequired": false, "tag": "referral", "children": [ { @@ -2792,20 +2814,20 @@ "name": "sourceType", "wireName": "source_type", "type": "string", - "required": false + "parserRequired": false }, { "method": "child", "name": "sourceUrl", "type": "string", - "required": false, + "parserRequired": false, "tag": "source_url", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -2823,7 +2845,7 @@ "method": "child", "name": "bizPricing", "type": "string", - "required": false, + "parserRequired": false, "tag": "pricing", "children": [ { @@ -2831,42 +2853,42 @@ "name": "consumerCountryCode", "wireName": "consumer_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "businessCountryCode", "wireName": "business_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "conversationStatus", "wireName": "conversation_status", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "latestC2bTimestamp", "wireName": "latest_c2b_timestamp", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "analyticsConversationId", "wireName": "analytics_conversation_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "b2cTimestamp", "wireName": "b2c_timestamp", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": false, @@ -2890,7 +2912,7 @@ "name": "bizPricingBusinessCountryCode", "wireName": "business_country_code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "biz", "pricing" @@ -2909,14 +2931,14 @@ { "method": "", "name": "newsletterSenderRCATAckMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "rcatElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "rcat" ] @@ -2992,14 +3014,14 @@ "name": "error", "wireName": "error", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "class", "wireName": "class", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "status" }, { @@ -3007,13 +3029,13 @@ "name": "t", "wireName": "t", "type": "timestamp", - "required": true + "parserRequired": true }, { "method": "", "name": "statusAckEditOrRevokeOrAdminRevokeMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "StatusAckEdit", @@ -3023,7 +3045,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" } ], @@ -3047,7 +3069,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" } ], @@ -3071,7 +3093,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -3092,15 +3114,15 @@ { "method": "", "name": "statusApplicationNegativeAckMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "applicationError", "wireName": "application_error", "type": "integer", - "required": true + "parserRequired": true } ], "sameNode": true @@ -3108,15 +3130,15 @@ { "method": "", "name": "messageNackRetryAttributesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "backoff", "wireName": "backoff", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 86400 } @@ -3162,7 +3184,7 @@ "name": "serverId", "wireName": "server_id", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 99, "intMax": 2147476647 }, @@ -3171,7 +3193,7 @@ "name": "class", "wireName": "class", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "status" }, { @@ -3179,13 +3201,13 @@ "name": "t", "wireName": "t", "type": "timestamp", - "required": true + "parserRequired": true }, { "method": "", "name": "statusAckEditOrRevokeOrAdminRevokeMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "StatusAckEdit", @@ -3195,7 +3217,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" } ], @@ -3219,7 +3241,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" } ], @@ -3243,7 +3265,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -3307,7 +3329,7 @@ "name": "class", "wireName": "class", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "receipt" }, { @@ -3315,14 +3337,15 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "readreceipts", "wireName": "readreceipts", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ALL_NONE", "module": "WASmaxInReceiptEnums", @@ -3341,15 +3364,16 @@ { "method": "", "name": "deprecatedEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "edit", "wireName": "edit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1_7", "module": "WASmaxInReceiptEnums", @@ -3391,7 +3415,8 @@ "method": "attrEnum", "name": "readreceipts", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ALL_NONE", "module": "WAWebPrivacySettings", @@ -3426,43 +3451,43 @@ "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "sync", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "phash", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "refresh_lid", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "addressing_mode", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "count", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "error", "type": "integer", - "required": false + "parserRequired": false } ] } diff --git a/generated/iq/index.json b/generated/iq/index.json index 4963c23e..2ea6016f 100644 --- a/generated/iq/index.json +++ b/generated/iq/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "stanzas": [ { @@ -51,7 +51,7 @@ "name": "propsProtocol", "wireName": "protocol", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1", "sourcePath": [ "props" @@ -62,7 +62,7 @@ "name": "propsAbKey", "wireName": "ab_key", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -72,7 +72,7 @@ "name": "propsHash", "wireName": "hash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -82,7 +82,7 @@ "name": "propsRefresh", "wireName": "refresh", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -92,7 +92,7 @@ "name": "propsRefreshId", "wireName": "refresh_id", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -102,7 +102,8 @@ "name": "propsDeltaUpdate", "wireName": "delta_update", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInAbPropsEnums", @@ -126,21 +127,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "erid", "type": "string", - "required": false, + "parserRequired": false, "tag": "erid", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 100 } @@ -151,14 +152,14 @@ "method": "child", "name": "propsProp", "type": "string", - "required": true, + "parserRequired": true, "tag": "prop", "children": [ { "method": "", "name": "configs", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ExperimentConfig", @@ -168,21 +169,21 @@ "name": "configCode", "wireName": "config_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "configValue", "wireName": "config_value", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "configExpoKey", "wireName": "config_expo_key", "type": "integer", - "required": false + "parserRequired": false } ], "assertions": [ @@ -200,14 +201,14 @@ "name": "eventCode", "wireName": "event_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "samplingWeight", "wireName": "sampling_weight", "type": "integer", - "required": true, + "parserRequired": true, "intMin": -10000, "intMax": 10000 } @@ -264,7 +265,7 @@ "name": "propsProtocol", "wireName": "protocol", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1", "sourcePath": [ "props" @@ -275,7 +276,7 @@ "name": "propsAbKey", "wireName": "ab_key", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -285,7 +286,7 @@ "name": "propsHash", "wireName": "hash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -295,7 +296,7 @@ "name": "propsRefresh", "wireName": "refresh", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -305,7 +306,7 @@ "name": "propsRefreshId", "wireName": "refresh_id", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -315,7 +316,8 @@ "name": "propsDeltaUpdate", "wireName": "delta_update", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInAbPropsEnums", @@ -339,21 +341,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "erid", "type": "string", - "required": false, + "parserRequired": false, "tag": "erid", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 100 } @@ -364,14 +366,14 @@ "method": "child", "name": "propsProp", "type": "string", - "required": true, + "parserRequired": true, "tag": "prop", "children": [ { "method": "", "name": "configs", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ExperimentConfig", @@ -381,21 +383,21 @@ "name": "configCode", "wireName": "config_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "configValue", "wireName": "config_value", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "configExpoKey", "wireName": "config_expo_key", "type": "integer", - "required": false + "parserRequired": false } ], "assertions": [ @@ -413,14 +415,14 @@ "name": "eventCode", "wireName": "event_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "samplingWeight", "wireName": "sampling_weight", "type": "integer", - "required": true, + "parserRequired": true, "intMin": -10000, "intMax": 10000 } @@ -489,14 +491,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorNoRetryErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -506,7 +508,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -514,7 +516,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -543,7 +545,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -551,7 +553,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -619,7 +621,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -627,7 +629,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -635,7 +637,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -646,7 +648,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -697,7 +699,7 @@ "name": "propsAbKey", "wireName": "ab_key", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -707,7 +709,7 @@ "name": "propsHash", "wireName": "hash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -717,7 +719,7 @@ "name": "propsRefresh", "wireName": "refresh", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -727,7 +729,7 @@ "name": "propsRefreshId", "wireName": "refresh_id", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -737,21 +739,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "propsProp", "type": "string", - "required": true, + "parserRequired": true, "tag": "prop", "children": [ { "method": "", "name": "experimentOrSamplingConfigMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ExperimentConfig", @@ -761,21 +763,21 @@ "name": "configCode", "wireName": "config_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "configValue", "wireName": "config_value", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "configExpoKey", "wireName": "config_expo_key", "type": "integer", - "required": false + "parserRequired": false } ], "assertions": [ @@ -793,14 +795,14 @@ "name": "eventCode", "wireName": "event_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "samplingWeight", "wireName": "sampling_weight", "type": "integer", - "required": true, + "parserRequired": true, "intMin": -10000, "intMax": 10000 } @@ -857,7 +859,7 @@ "name": "propsAbKey", "wireName": "ab_key", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -867,7 +869,7 @@ "name": "propsHash", "wireName": "hash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -877,7 +879,7 @@ "name": "propsRefresh", "wireName": "refresh", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -887,7 +889,7 @@ "name": "propsRefreshId", "wireName": "refresh_id", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "props" ] @@ -897,21 +899,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "propsProp", "type": "string", - "required": true, + "parserRequired": true, "tag": "prop", "children": [ { "method": "", "name": "experimentOrSamplingConfigMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ExperimentConfig", @@ -921,21 +923,21 @@ "name": "configCode", "wireName": "config_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "configValue", "wireName": "config_value", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "configExpoKey", "wireName": "config_expo_key", "type": "integer", - "required": false + "parserRequired": false } ], "assertions": [ @@ -953,14 +955,14 @@ "name": "eventCode", "wireName": "event_code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "samplingWeight", "wireName": "sampling_weight", "type": "integer", - "required": true, + "parserRequired": true, "intMin": -10000, "intMax": 10000 } @@ -1029,14 +1031,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorIQErrorBadRequestOrFeatureNotImplementedMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -1046,7 +1048,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -1054,7 +1056,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -1083,7 +1085,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -1091,7 +1093,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -1159,7 +1161,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -1167,7 +1169,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -1175,7 +1177,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -1186,7 +1188,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -1233,7 +1235,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -1241,7 +1243,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "list" ] @@ -1251,7 +1253,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "pn", "sourcePath": [ "list" @@ -1261,7 +1263,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -1269,27 +1271,27 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "", "name": "displayNameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -1337,7 +1339,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -1345,7 +1347,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "list" ] @@ -1355,7 +1357,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "pn", "sourcePath": [ "list" @@ -1365,7 +1367,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -1373,27 +1375,27 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "", "name": "displayNameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -1441,7 +1443,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -1449,7 +1451,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "list" ] @@ -1459,7 +1461,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "lid", "sourcePath": [ "list" @@ -1469,7 +1471,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -1477,14 +1479,14 @@ "name": "jid", "wireName": "jid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "active", "wireName": "active", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { @@ -1492,13 +1494,13 @@ "name": "countryCode", "wireName": "country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "blocklistIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Username", @@ -1508,7 +1510,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1520,7 +1522,7 @@ "name": "pnJid", "wireName": "pn_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -1532,14 +1534,14 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1551,7 +1553,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1563,7 +1565,7 @@ "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1575,7 +1577,7 @@ "name": "unknownIdentifier", "wireName": "unknown_identifier", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" } ], @@ -1632,7 +1634,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -1640,7 +1642,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "list" ] @@ -1650,7 +1652,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "lid", "sourcePath": [ "list" @@ -1661,7 +1663,7 @@ "name": "listDirty", "wireName": "dirty", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -1671,7 +1673,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -1679,14 +1681,14 @@ "name": "jid", "wireName": "jid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "active", "wireName": "active", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { @@ -1694,13 +1696,13 @@ "name": "countryCode", "wireName": "country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "blocklistIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Username", @@ -1710,7 +1712,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1722,7 +1724,7 @@ "name": "pnJid", "wireName": "pn_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -1734,14 +1736,14 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1753,7 +1755,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1765,7 +1767,7 @@ "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1777,7 +1779,7 @@ "name": "unknownIdentifier", "wireName": "unknown_identifier", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" } ], @@ -1834,7 +1836,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -1842,7 +1844,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "list" ] @@ -1852,7 +1854,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "lid", "sourcePath": [ "list" @@ -1862,7 +1864,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -1870,14 +1872,14 @@ "name": "jid", "wireName": "jid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "active", "wireName": "active", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { @@ -1885,13 +1887,13 @@ "name": "countryCode", "wireName": "country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "blocklistIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Username", @@ -1901,7 +1903,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1913,7 +1915,7 @@ "name": "pnJid", "wireName": "pn_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -1925,14 +1927,14 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1944,7 +1946,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1956,7 +1958,7 @@ "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1968,7 +1970,7 @@ "name": "unknownIdentifier", "wireName": "unknown_identifier", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" } ], @@ -2025,7 +2027,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -2077,14 +2079,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetBlocklistErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -2094,7 +2096,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -2102,7 +2104,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -2131,7 +2133,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -2139,7 +2141,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -2214,14 +2216,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorFeatureNotImplemented", @@ -2231,7 +2233,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -2239,7 +2241,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -2268,7 +2270,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -2276,7 +2278,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -2389,7 +2391,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -2397,7 +2399,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -2408,7 +2410,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -2450,7 +2452,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -2458,7 +2460,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -2469,7 +2471,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -2511,7 +2513,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -2519,7 +2521,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false", "sourcePath": [ "list" @@ -2530,7 +2532,7 @@ "name": "hasListCDhash", "wireName": "c_dhash", "type": "bool", - "required": true, + "parserRequired": true, "referencePath": [ "item", "dhash" @@ -2544,7 +2546,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -2554,7 +2556,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "pn", "sourcePath": [ "list" @@ -2564,7 +2566,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -2572,20 +2574,20 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "displayNameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -2633,7 +2635,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -2641,7 +2643,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false", "sourcePath": [ "list" @@ -2652,7 +2654,7 @@ "name": "hasListCDhash", "wireName": "c_dhash", "type": "bool", - "required": true, + "parserRequired": true, "referencePath": [ "item", "dhash" @@ -2666,7 +2668,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -2676,7 +2678,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "lid", "sourcePath": [ "list" @@ -2686,7 +2688,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -2694,14 +2696,14 @@ "name": "jid", "wireName": "jid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "active", "wireName": "active", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { @@ -2709,13 +2711,13 @@ "name": "countryCode", "wireName": "country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "blocklistIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Username", @@ -2725,7 +2727,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -2737,7 +2739,7 @@ "name": "pnJid", "wireName": "pn_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -2749,14 +2751,14 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -2768,7 +2770,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -2780,7 +2782,7 @@ "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -2792,7 +2794,7 @@ "name": "unknownIdentifier", "wireName": "unknown_identifier", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" } ], @@ -2849,7 +2851,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -2857,7 +2859,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false", "sourcePath": [ "list" @@ -2868,7 +2870,7 @@ "name": "hasListCDhash", "wireName": "c_dhash", "type": "bool", - "required": true, + "parserRequired": true, "referencePath": [ "item", "dhash" @@ -2882,7 +2884,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -2892,7 +2894,7 @@ "name": "listAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "lid", "sourcePath": [ "list" @@ -2902,7 +2904,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -2910,14 +2912,14 @@ "name": "jid", "wireName": "jid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "active", "wireName": "active", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { @@ -2925,13 +2927,13 @@ "name": "countryCode", "wireName": "country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "blocklistIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Username", @@ -2941,7 +2943,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -2953,7 +2955,7 @@ "name": "pnJid", "wireName": "pn_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -2965,14 +2967,14 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -2984,7 +2986,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -2996,7 +2998,7 @@ "name": "guestName", "wireName": "guest_name", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -3008,7 +3010,7 @@ "name": "unknownIdentifier", "wireName": "unknown_identifier", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" } ], @@ -3092,7 +3094,8 @@ "name": "errorAddressingMode", "wireName": "addressing_mode", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInBlocklistsEnums", @@ -3116,14 +3119,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorUpdateBlocklistErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorNotAcceptable", @@ -3133,7 +3136,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -3141,14 +3144,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -3156,14 +3159,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -3194,7 +3197,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -3202,7 +3205,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -3231,7 +3234,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -3239,7 +3242,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -3268,7 +3271,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -3276,7 +3279,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -3305,7 +3308,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -3313,7 +3316,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -3388,14 +3391,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorFeatureNotImplemented", @@ -3405,7 +3408,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -3413,7 +3416,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -3442,7 +3445,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -3450,7 +3453,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -3538,7 +3541,7 @@ "name": "botV", "wireName": "v", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "2", "sourcePath": [ "bot" @@ -3549,7 +3552,7 @@ "name": "botDefaultJid", "wireName": "jid", "type": "user_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "bot", "default" @@ -3560,7 +3563,7 @@ "name": "botDefaultPersonaId", "wireName": "persona_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "bot", "default" @@ -3571,14 +3574,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "botSection", "type": "string", - "required": true, + "parserRequired": true, "tag": "section", "children": [ { @@ -3586,14 +3589,15 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ALL_CATEGORY_FEATURED", "module": "WASmaxInBotEnums", @@ -3617,7 +3621,7 @@ "method": "child", "name": "bot", "type": "string", - "required": true, + "parserRequired": true, "tag": "bot", "children": [ { @@ -3625,27 +3629,27 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "personaId", "wireName": "persona_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "count", "wireName": "count", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "theme", "type": "string", - "required": true, + "parserRequired": true, "tag": "theme", "children": [ { @@ -3653,7 +3657,8 @@ "name": "mode", "wireName": "mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DARK_LIGHT", "module": "WASmaxInBotEnums", @@ -3673,7 +3678,7 @@ "method": "contentString", "name": "backgroundElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "background" ] @@ -3682,7 +3687,7 @@ "method": "contentString", "name": "primaryTextElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "primary_text" ] @@ -3691,7 +3696,7 @@ "method": "contentString", "name": "secondaryTextElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "secondary_text" ] @@ -3745,7 +3750,7 @@ "name": "botV", "wireName": "v", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "2", "sourcePath": [ "bot" @@ -3756,7 +3761,7 @@ "name": "botDefaultJid", "wireName": "jid", "type": "user_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "bot", "default" @@ -3767,7 +3772,7 @@ "name": "botDefaultPersonaId", "wireName": "persona_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "bot", "default" @@ -3778,14 +3783,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "botSection", "type": "string", - "required": true, + "parserRequired": true, "tag": "section", "children": [ { @@ -3793,14 +3798,15 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ALL_CATEGORY_FEATURED", "module": "WASmaxInBotEnums", @@ -3824,7 +3830,7 @@ "method": "child", "name": "bot", "type": "string", - "required": true, + "parserRequired": true, "tag": "bot", "children": [ { @@ -3832,27 +3838,27 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "personaId", "wireName": "persona_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "count", "wireName": "count", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "theme", "type": "string", - "required": true, + "parserRequired": true, "tag": "theme", "children": [ { @@ -3860,7 +3866,8 @@ "name": "mode", "wireName": "mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DARK_LIGHT", "module": "WASmaxInBotEnums", @@ -3880,7 +3887,7 @@ "method": "contentString", "name": "backgroundElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "background" ] @@ -3889,7 +3896,7 @@ "method": "contentString", "name": "primaryTextElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "primary_text" ] @@ -3898,7 +3905,7 @@ "method": "contentString", "name": "secondaryTextElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "secondary_text" ] @@ -3952,7 +3959,7 @@ "name": "botV", "wireName": "v", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3", "sourcePath": [ "bot" @@ -3963,7 +3970,7 @@ "name": "botBhash", "wireName": "bhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "bot" ] @@ -3973,14 +3980,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "botDefault", "type": "string", - "required": false, + "parserRequired": false, "tag": "default", "children": [ { @@ -3988,14 +3995,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "personaId", "wireName": "persona_id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -4007,7 +4014,7 @@ "method": "child", "name": "botSection", "type": "string", - "required": true, + "parserRequired": true, "tag": "section", "children": [ { @@ -4015,14 +4022,15 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ALL_CATEGORY_FEATURED", "module": "WASmaxInBotEnums", @@ -4047,7 +4055,8 @@ "name": "displayType", "wireName": "display_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HIDDEN_HSCROLL_HSCROLLICEBREAKERS_HSCROLLLARGE_HSCROLLSMALL_LISTVIEW", "module": "WASmaxInBotEnums", @@ -4083,7 +4092,7 @@ "method": "child", "name": "bot", "type": "string", - "required": true, + "parserRequired": true, "tag": "bot", "children": [ { @@ -4091,28 +4100,28 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "personaId", "wireName": "persona_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "cardTitle", "wireName": "card_title", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "count", "wireName": "count", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": true @@ -4182,14 +4191,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorBotListErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -4199,7 +4208,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -4207,7 +4216,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -4236,7 +4245,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -4244,7 +4253,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -4273,7 +4282,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -4281,7 +4290,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -4310,7 +4319,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -4318,7 +4327,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -4373,20 +4382,20 @@ "method": "child", "name": "disappearing_mode", "type": "string", - "required": true, + "parserRequired": true, "tag": "disappearing_mode", "children": [ { "method": "attrInt", "name": "duration", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "t", "type": "integer", - "required": true + "parserRequired": true } ] } @@ -4469,21 +4478,21 @@ "method": "child", "name": "digest", "type": "string", - "required": true, + "parserRequired": true, "tag": "digest", "children": [ { "method": "child", "name": "registration", "type": "string", - "required": true, + "parserRequired": true, "tag": "registration", "children": [ { "method": "contentUint", "name": "content", "type": "integer", - "required": true, + "parserRequired": true, "byteLength": 4 } ] @@ -4492,14 +4501,14 @@ "method": "child", "name": "type", "type": "string", - "required": true, + "parserRequired": true, "tag": "type", "children": [ { "method": "contentUint", "name": "content", "type": "integer", - "required": true, + "parserRequired": true, "byteLength": 1 } ] @@ -4508,14 +4517,14 @@ "method": "child", "name": "identity", "type": "string", - "required": true, + "parserRequired": true, "tag": "identity", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ] @@ -4524,21 +4533,21 @@ "method": "child", "name": "skey", "type": "string", - "required": true, + "parserRequired": true, "tag": "skey", "children": [ { "method": "child", "name": "id", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentUint", "name": "content", "type": "integer", - "required": true, + "parserRequired": true, "byteLength": 3 } ] @@ -4547,14 +4556,14 @@ "method": "child", "name": "value", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ] @@ -4563,14 +4572,14 @@ "method": "child", "name": "signature", "type": "string", - "required": true, + "parserRequired": true, "tag": "signature", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64 } ] @@ -4581,20 +4590,20 @@ "method": "child", "name": "list", "type": "string", - "required": true, + "parserRequired": true, "tag": "list", "children": [ { "method": "mapChildren", "name": "children", "type": "string", - "required": true, + "parserRequired": true, "children": [ { "method": "contentUint", "name": "content", "type": "integer", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -4606,14 +4615,14 @@ "method": "child", "name": "hash", "type": "string", - "required": true, + "parserRequired": true, "tag": "hash", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 20 } ] @@ -4667,33 +4676,33 @@ "method": "child", "name": "list", "type": "string", - "required": true, + "parserRequired": true, "tag": "list", "children": [ { "method": "mapChildren", "name": "children", "type": "string", - "required": true, + "parserRequired": true, "children": [ { "method": "child", "name": "error", "type": "string", - "required": false, + "parserRequired": false, "tag": "error", "children": [ { "method": "attrInt", "name": "code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "text", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -4701,14 +4710,14 @@ "method": "child", "name": "type", "type": "string", - "required": true, + "parserRequired": true, "tag": "type", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1 } ] @@ -4717,14 +4726,14 @@ "method": "child", "name": "identity", "type": "string", - "required": true, + "parserRequired": true, "tag": "identity", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ] @@ -4733,7 +4742,7 @@ "method": "attrDeviceJid", "name": "jid", "type": "device_jid", - "required": true + "parserRequired": true } ], "repeats": true @@ -4805,20 +4814,20 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "responsePaddingMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "paddingElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 0, "byteMax": 524288, "sourcePath": [ @@ -4832,7 +4841,7 @@ "method": "child", "name": "listUser", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { @@ -4840,13 +4849,13 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "userFetchKeyBundlesSuccessOrFetchKeyBundlesErrorOrFetchKeyBundlesErrorFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "FetchKeyBundlesUserSuccess", @@ -4856,21 +4865,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isCloudApi", "wireName": "is_cloud_api", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "contentBytes", "name": "registrationElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 4, "sourcePath": [ "registration" @@ -4879,14 +4888,14 @@ { "method": "", "name": "keyTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "typeElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1, "literalValue": "05", "sourcePath": [ @@ -4900,7 +4909,7 @@ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "identity" @@ -4909,15 +4918,15 @@ { "method": "", "name": "botIdentityKeyAuthMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "identityAuthVersion", "wireName": "version", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 100, "sourcePath": [ @@ -4928,7 +4937,7 @@ "method": "contentBytes", "name": "identityAuthSignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "identity_auth", @@ -4939,14 +4948,14 @@ "method": "child", "name": "identityAuthCertsCert", "type": "string", - "required": true, + "parserRequired": true, "tag": "cert", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": true, @@ -4961,21 +4970,21 @@ { "method": "", "name": "preKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "keyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -4988,14 +4997,14 @@ "method": "child", "name": "keyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -5011,7 +5020,7 @@ "method": "contentBytes", "name": "skeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "skey", @@ -5022,14 +5031,14 @@ "method": "child", "name": "skeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -5042,14 +5051,14 @@ "method": "child", "name": "skeyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -5061,14 +5070,14 @@ { "method": "", "name": "pQKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "pqkeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "pqkey", @@ -5079,14 +5088,14 @@ "method": "child", "name": "pqkeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -5099,14 +5108,14 @@ "method": "child", "name": "pqkeyValuePQKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1568 } ], @@ -5121,14 +5130,14 @@ { "method": "", "name": "deviceIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "deviceIdentityElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "device-identity" ] @@ -5152,7 +5161,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -5162,7 +5171,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500", "sourcePath": [ "error" @@ -5184,7 +5193,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -5194,7 +5203,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599, "sourcePath": [ @@ -5254,20 +5263,20 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "responsePaddingMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "paddingElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 0, "byteMax": 524288, "sourcePath": [ @@ -5281,7 +5290,7 @@ "method": "child", "name": "listUser", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { @@ -5289,13 +5298,13 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "userFetchKeyBundlesSuccessOrFetchKeyBundlesErrorOrFetchKeyBundlesErrorFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "FetchKeyBundlesUserSuccess", @@ -5305,21 +5314,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isCloudApi", "wireName": "is_cloud_api", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "contentBytes", "name": "registrationElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 4, "sourcePath": [ "registration" @@ -5328,14 +5337,14 @@ { "method": "", "name": "keyTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "typeElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1, "literalValue": "05", "sourcePath": [ @@ -5349,7 +5358,7 @@ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "identity" @@ -5358,15 +5367,15 @@ { "method": "", "name": "botIdentityKeyAuthMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "identityAuthVersion", "wireName": "version", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 100, "sourcePath": [ @@ -5377,7 +5386,7 @@ "method": "contentBytes", "name": "identityAuthSignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "identity_auth", @@ -5388,14 +5397,14 @@ "method": "child", "name": "identityAuthCertsCert", "type": "string", - "required": true, + "parserRequired": true, "tag": "cert", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": true, @@ -5410,21 +5419,21 @@ { "method": "", "name": "preKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "keyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -5437,14 +5446,14 @@ "method": "child", "name": "keyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -5460,7 +5469,7 @@ "method": "contentBytes", "name": "skeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "skey", @@ -5471,14 +5480,14 @@ "method": "child", "name": "skeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -5491,14 +5500,14 @@ "method": "child", "name": "skeyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -5510,14 +5519,14 @@ { "method": "", "name": "pQKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "pqkeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "pqkey", @@ -5528,14 +5537,14 @@ "method": "child", "name": "pqkeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -5548,14 +5557,14 @@ "method": "child", "name": "pqkeyValuePQKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1568 } ], @@ -5570,14 +5579,14 @@ { "method": "", "name": "deviceIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "deviceIdentityElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "device-identity" ] @@ -5601,7 +5610,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -5611,7 +5620,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500", "sourcePath": [ "error" @@ -5633,7 +5642,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -5643,7 +5652,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599, "sourcePath": [ @@ -5720,14 +5729,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRequestErrorsFetch", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -5737,7 +5746,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -5745,7 +5754,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -5774,7 +5783,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -5782,7 +5791,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -5811,14 +5820,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -5884,14 +5893,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorServiceUnavailable", @@ -5901,7 +5910,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -5909,7 +5918,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -5938,14 +5947,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -6043,20 +6052,20 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "responsePaddingMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "paddingElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 0, "byteMax": 524288, "sourcePath": [ @@ -6070,7 +6079,7 @@ "method": "child", "name": "listUser", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { @@ -6078,13 +6087,13 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "userFetchMissingPreKeysSuccessOrFetchMissingPreKeysErrorOrFetchMissingPreKeysErrorFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "FetchMissingPreKeysUserSuccess", @@ -6094,13 +6103,13 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "child", "name": "device", "type": "string", - "required": true, + "parserRequired": true, "tag": "device", "children": [ { @@ -6108,7 +6117,7 @@ "name": "id", "wireName": "id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 99 }, @@ -6117,21 +6126,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isCloudApi", "wireName": "is_cloud_api", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "contentBytes", "name": "registrationElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 4, "sourcePath": [ "registration" @@ -6140,14 +6149,14 @@ { "method": "", "name": "keyTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "typeElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1, "literalValue": "05", "sourcePath": [ @@ -6161,7 +6170,7 @@ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "identity" @@ -6170,21 +6179,21 @@ { "method": "", "name": "preKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "keyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -6197,14 +6206,14 @@ "method": "child", "name": "keyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -6220,7 +6229,7 @@ "method": "contentBytes", "name": "skeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "skey", @@ -6231,14 +6240,14 @@ "method": "child", "name": "skeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -6251,14 +6260,14 @@ "method": "child", "name": "skeyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -6270,14 +6279,14 @@ { "method": "", "name": "pQKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "pqkeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "pqkey", @@ -6288,14 +6297,14 @@ "method": "child", "name": "pqkeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -6308,14 +6317,14 @@ "method": "child", "name": "pqkeyValuePQKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1568 } ], @@ -6330,14 +6339,14 @@ { "method": "", "name": "deviceIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "deviceIdentityElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "device-identity" ] @@ -6364,7 +6373,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -6374,7 +6383,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500", "sourcePath": [ "error" @@ -6396,7 +6405,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -6406,7 +6415,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599, "sourcePath": [ @@ -6466,20 +6475,20 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "responsePaddingMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "paddingElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 0, "byteMax": 524288, "sourcePath": [ @@ -6493,7 +6502,7 @@ "method": "child", "name": "listUser", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { @@ -6501,13 +6510,13 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "userFetchMissingPreKeysSuccessOrFetchMissingPreKeysErrorOrFetchMissingPreKeysErrorFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "FetchMissingPreKeysUserSuccess", @@ -6517,13 +6526,13 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "child", "name": "device", "type": "string", - "required": true, + "parserRequired": true, "tag": "device", "children": [ { @@ -6531,7 +6540,7 @@ "name": "id", "wireName": "id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 99 }, @@ -6540,21 +6549,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isCloudApi", "wireName": "is_cloud_api", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "contentBytes", "name": "registrationElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 4, "sourcePath": [ "registration" @@ -6563,14 +6572,14 @@ { "method": "", "name": "keyTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "typeElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1, "literalValue": "05", "sourcePath": [ @@ -6584,7 +6593,7 @@ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "identity" @@ -6593,21 +6602,21 @@ { "method": "", "name": "preKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "keyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -6620,14 +6629,14 @@ "method": "child", "name": "keyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -6643,7 +6652,7 @@ "method": "contentBytes", "name": "skeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "skey", @@ -6654,14 +6663,14 @@ "method": "child", "name": "skeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -6674,14 +6683,14 @@ "method": "child", "name": "skeyValueKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -6693,14 +6702,14 @@ { "method": "", "name": "pQKeyMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "pqkeySignatureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 64, "sourcePath": [ "pqkey", @@ -6711,14 +6720,14 @@ "method": "child", "name": "pqkeyIdKeyIDMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "id", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 3 } ], @@ -6731,14 +6740,14 @@ "method": "child", "name": "pqkeyValuePQKeyDataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "value", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 1568 } ], @@ -6753,14 +6762,14 @@ { "method": "", "name": "deviceIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentBytes", "name": "deviceIdentityElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "device-identity" ] @@ -6787,7 +6796,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -6797,7 +6806,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500", "sourcePath": [ "error" @@ -6819,7 +6828,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -6829,7 +6838,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599, "sourcePath": [ @@ -6906,14 +6915,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRequestErrorsFetch", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -6923,7 +6932,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -6931,7 +6940,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -6960,7 +6969,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -6968,7 +6977,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -6997,14 +7006,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -7070,14 +7079,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorServiceUnavailable", @@ -7087,7 +7096,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -7095,7 +7104,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -7124,14 +7133,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -7328,21 +7337,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "preKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -7354,15 +7363,15 @@ { "method": "", "name": "pQPreKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "pq_list" @@ -7408,21 +7417,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "preKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -7434,15 +7443,15 @@ { "method": "", "name": "pQPreKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "pq_list" @@ -7500,14 +7509,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRequestErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorNotAcceptable", @@ -7517,7 +7526,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -7525,14 +7534,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -7540,14 +7549,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -7578,14 +7587,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -7651,14 +7660,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorServiceUnavailable", @@ -7668,7 +7677,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -7676,7 +7685,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -7705,14 +7714,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -7787,7 +7796,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -7827,7 +7836,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -7879,14 +7888,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRequestErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorNotAcceptable", @@ -7896,7 +7905,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -7904,14 +7913,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -7919,14 +7928,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -7957,14 +7966,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -8030,14 +8039,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorServiceUnavailable", @@ -8047,7 +8056,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -8055,7 +8064,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -8084,14 +8093,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -8138,21 +8147,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "preKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -8164,15 +8173,15 @@ { "method": "", "name": "pQPreKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "pq_list" @@ -8218,21 +8227,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "preKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -8244,15 +8253,15 @@ { "method": "", "name": "pQPreKeyListCountLowMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "countLow", "wireName": "count_low", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "pq_list" @@ -8326,7 +8335,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -8336,7 +8345,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "207", "sourcePath": [ "error" @@ -8347,7 +8356,7 @@ "name": "errorErrorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 599, "sourcePath": [ @@ -8360,14 +8369,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorErrorVnameFailures", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "SetVnameFailureNotAcceptable", @@ -8377,7 +8386,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -8385,7 +8394,7 @@ "name": "violationReason", "wireName": "reason", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "violation" ] @@ -8395,7 +8404,7 @@ "name": "violationMax", "wireName": "max", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "violation" ] @@ -8405,7 +8414,7 @@ "name": "violationLength", "wireName": "length", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "violation" ] @@ -8431,7 +8440,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" } ], @@ -8455,7 +8464,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" } ], @@ -8479,7 +8488,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -8544,14 +8553,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRequestErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorNotAcceptable", @@ -8561,7 +8570,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -8569,14 +8578,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -8584,14 +8593,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -8622,14 +8631,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -8695,14 +8704,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorServiceUnavailable", @@ -8712,7 +8721,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -8720,7 +8729,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -8749,14 +8758,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -8993,7 +9002,8 @@ "method": "attrEnum", "name": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumKeys": [ "error", "result" @@ -9003,20 +9013,20 @@ "method": "child", "name": "error", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { "method": "attrInt", "name": "code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "text", "type": "string", - "required": false + "parserRequired": false } ] } @@ -9061,7 +9071,7 @@ "method": "contentString", "name": "accessTokenElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "access_token" ] @@ -9070,7 +9080,7 @@ "method": "contentString", "name": "sessionCookiesElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "session_cookies" ] @@ -9080,7 +9090,7 @@ "name": "businessPersonId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "business_person" ] @@ -9090,28 +9100,29 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "tokenType", "type": "string", - "required": false, + "parserRequired": false, "tag": "token_type", "children": [ { "method": "contentEnum", "name": "elementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_STRONG_WEAK", "module": "WASmaxInBizCtwaAdAccountEnums", @@ -9166,7 +9177,7 @@ "method": "contentString", "name": "accessTokenElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "access_token" ] @@ -9175,7 +9186,7 @@ "method": "contentString", "name": "sessionCookiesElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "session_cookies" ] @@ -9185,7 +9196,7 @@ "name": "businessPersonId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "business_person" ] @@ -9195,28 +9206,29 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "tokenType", "type": "string", - "required": false, + "parserRequired": false, "tag": "token_type", "children": [ { "method": "contentEnum", "name": "elementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_STRONG_WEAK", "module": "WASmaxInBizCtwaAdAccountEnums", @@ -9278,7 +9290,7 @@ "name": "errorCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "431", "sourcePath": [ "error" @@ -9289,7 +9301,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "TOO_MANY_ATTEMPTS", "sourcePath": [ "error" @@ -9300,14 +9312,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -9353,7 +9365,7 @@ "name": "errorCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "432", "sourcePath": [ "error" @@ -9364,7 +9376,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "INCORRECT_NONCE", "sourcePath": [ "error" @@ -9375,14 +9387,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -9444,21 +9456,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorCommonAdAccountErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -9468,7 +9480,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -9476,7 +9488,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -9505,7 +9517,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -9513,7 +9525,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -9542,7 +9554,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -9550,7 +9562,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -9579,7 +9591,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -9587,7 +9599,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -9656,7 +9668,7 @@ "method": "contentString", "name": "detailNonceElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "detail", "nonce" @@ -9667,28 +9679,28 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "detailRequest", "type": "string", - "required": false, + "parserRequired": false, "tag": "request", "children": [ { "method": "contentString", "name": "idElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "id" ] @@ -9735,7 +9747,7 @@ "method": "contentString", "name": "detailNonceElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "detail", "nonce" @@ -9746,28 +9758,28 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "detailRequest", "type": "string", - "required": false, + "parserRequired": false, "tag": "request", "children": [ { "method": "contentString", "name": "idElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "id" ] @@ -9832,21 +9844,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorAccountNonceErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -9856,7 +9868,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -9864,7 +9876,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -9893,7 +9905,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "notice-required" }, { @@ -9901,7 +9913,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "475" }, { @@ -9909,7 +9921,7 @@ "name": "tosVersion", "wireName": "tos_version", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 65535 } @@ -9939,7 +9951,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -9947,7 +9959,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -10010,21 +10022,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "linkedAccountsFbPage", "type": "string", - "required": false, + "parserRequired": false, "tag": "fb_page", "children": [ { @@ -10032,7 +10044,8 @@ "name": "whatsappAsPageButtonState", "wireName": "state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_OFF_ON", "module": "WASmaxInBizLinkingEnums", @@ -10056,13 +10069,13 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "displayNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "display_name" ] @@ -10072,7 +10085,8 @@ "name": "adStatusHasCreatedAd", "wireName": "has_created_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10096,7 +10110,8 @@ "name": "adStatusHasActiveCtwaAd", "wireName": "has_active_ctwa_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10119,7 +10134,7 @@ "method": "child", "name": "profileSync", "type": "string", - "required": false, + "parserRequired": false, "tag": "profile_sync", "children": [ { @@ -10127,7 +10142,8 @@ "name": "state", "wireName": "state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLE_IMPORT", "module": "WASmaxInBizLinkingEnums", @@ -10149,14 +10165,14 @@ { "method": "", "name": "hasProfilePictureMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentString", "name": "profilePictureUrlElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "profile_picture", "url" @@ -10166,14 +10182,14 @@ "method": "child", "name": "profilePictureBytes", "type": "string", - "required": false, + "parserRequired": false, "tag": "bytes", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -10187,14 +10203,15 @@ { "method": "", "name": "hasShowOnProfileMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentEnum", "name": "showOnProfileElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10226,7 +10243,7 @@ "method": "child", "name": "linkedAccountsFbBiz", "type": "string", - "required": false, + "parserRequired": false, "tag": "fb_biz", "children": [ { @@ -10234,13 +10251,13 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "displayNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "display_name" ] @@ -10249,7 +10266,7 @@ "method": "child", "name": "catalog", "type": "string", - "required": false, + "parserRequired": false, "tag": "catalog", "children": [ { @@ -10257,7 +10274,8 @@ "name": "state", "wireName": "state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLE_IMPORT", "module": "WASmaxInBizLinkingEnums", @@ -10278,7 +10296,7 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -10293,14 +10311,14 @@ "method": "child", "name": "linkedAccountsIgProfessional", "type": "string", - "required": false, + "parserRequired": false, "tag": "ig_professional", "children": [ { "method": "contentString", "name": "igHandleElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "ig_handle" ] @@ -10308,14 +10326,14 @@ { "method": "", "name": "hasProfilePictureMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentString", "name": "profilePictureUrlElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "profile_picture", "url" @@ -10325,14 +10343,14 @@ "method": "child", "name": "profilePictureBytes", "type": "string", - "required": false, + "parserRequired": false, "tag": "bytes", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -10346,14 +10364,14 @@ { "method": "", "name": "hasDisplayNameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentString", "name": "displayNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "display_name" ] @@ -10364,14 +10382,15 @@ { "method": "", "name": "hasShowOnProfileMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentEnum", "name": "showOnProfileElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10403,7 +10422,7 @@ "method": "child", "name": "linkedAccountsWhatsappAdIdentity", "type": "string", - "required": false, + "parserRequired": false, "tag": "whatsapp_ad_identity", "children": [ { @@ -10411,14 +10430,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "adStatusHasCreatedAd", "wireName": "has_created_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10442,7 +10462,8 @@ "name": "adStatusHasActiveCtwaAd", "wireName": "has_active_ctwa_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10504,21 +10525,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "linkedAccountsFbPage", "type": "string", - "required": false, + "parserRequired": false, "tag": "fb_page", "children": [ { @@ -10526,7 +10547,8 @@ "name": "whatsappAsPageButtonState", "wireName": "state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_OFF_ON", "module": "WASmaxInBizLinkingEnums", @@ -10550,13 +10572,13 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "displayNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "display_name" ] @@ -10566,7 +10588,8 @@ "name": "adStatusHasCreatedAd", "wireName": "has_created_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10590,7 +10613,8 @@ "name": "adStatusHasActiveCtwaAd", "wireName": "has_active_ctwa_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10613,7 +10637,7 @@ "method": "child", "name": "profileSync", "type": "string", - "required": false, + "parserRequired": false, "tag": "profile_sync", "children": [ { @@ -10621,7 +10645,8 @@ "name": "state", "wireName": "state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLE_IMPORT", "module": "WASmaxInBizLinkingEnums", @@ -10643,14 +10668,14 @@ { "method": "", "name": "hasProfilePictureMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentString", "name": "profilePictureUrlElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "profile_picture", "url" @@ -10660,14 +10685,14 @@ "method": "child", "name": "profilePictureBytes", "type": "string", - "required": false, + "parserRequired": false, "tag": "bytes", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -10681,14 +10706,15 @@ { "method": "", "name": "hasShowOnProfileMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentEnum", "name": "showOnProfileElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10720,7 +10746,7 @@ "method": "child", "name": "linkedAccountsFbBiz", "type": "string", - "required": false, + "parserRequired": false, "tag": "fb_biz", "children": [ { @@ -10728,13 +10754,13 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "displayNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "display_name" ] @@ -10743,7 +10769,7 @@ "method": "child", "name": "catalog", "type": "string", - "required": false, + "parserRequired": false, "tag": "catalog", "children": [ { @@ -10751,7 +10777,8 @@ "name": "state", "wireName": "state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLE_IMPORT", "module": "WASmaxInBizLinkingEnums", @@ -10772,7 +10799,7 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -10787,14 +10814,14 @@ "method": "child", "name": "linkedAccountsIgProfessional", "type": "string", - "required": false, + "parserRequired": false, "tag": "ig_professional", "children": [ { "method": "contentString", "name": "igHandleElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "ig_handle" ] @@ -10802,14 +10829,14 @@ { "method": "", "name": "hasProfilePictureMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentString", "name": "profilePictureUrlElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "profile_picture", "url" @@ -10819,14 +10846,14 @@ "method": "child", "name": "profilePictureBytes", "type": "string", - "required": false, + "parserRequired": false, "tag": "bytes", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -10840,14 +10867,14 @@ { "method": "", "name": "hasDisplayNameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentString", "name": "displayNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "display_name" ] @@ -10858,14 +10885,15 @@ { "method": "", "name": "hasShowOnProfileMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "contentEnum", "name": "showOnProfileElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10897,7 +10925,7 @@ "method": "child", "name": "linkedAccountsWhatsappAdIdentity", "type": "string", - "required": false, + "parserRequired": false, "tag": "whatsapp_ad_identity", "children": [ { @@ -10905,14 +10933,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "adStatusHasCreatedAd", "wireName": "has_created_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -10936,7 +10965,8 @@ "name": "adStatusHasActiveCtwaAd", "wireName": "has_active_ctwa_ad", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizLinkingEnums", @@ -11003,7 +11033,7 @@ "method": "child", "name": "errorIQErrorForbiddenMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -11011,7 +11041,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -11019,7 +11049,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -11030,14 +11060,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -11082,7 +11112,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -11090,7 +11120,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -11098,7 +11128,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -11109,14 +11139,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -11149,7 +11179,7 @@ "name": "resultStatus", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "Success", "sourcePath": [ "result" @@ -11160,14 +11190,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -11207,7 +11237,7 @@ "name": "resultStatus", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "Success", "sourcePath": [ "result" @@ -11218,14 +11248,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -11265,7 +11295,7 @@ "name": "resultStatus", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "RecoveryRequired", "sourcePath": [ "result" @@ -11276,7 +11306,7 @@ "name": "resultEmail", "wireName": "email", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "result" ] @@ -11286,14 +11316,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -11355,21 +11385,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRequestSilentNonceErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -11379,7 +11409,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -11387,7 +11417,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -11416,7 +11446,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -11424,7 +11454,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -11453,7 +11483,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -11461,7 +11491,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -11490,7 +11520,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -11498,7 +11528,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -11553,14 +11583,15 @@ "method": "child", "name": "resultSendAccountRecoveryNonceResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "Result", "children": [ { "method": "contentEnum", "name": "statusElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizCtwaAdAccountEnums", @@ -11587,14 +11618,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -11633,14 +11664,15 @@ "method": "child", "name": "resultSendAccountRecoveryNonceResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "Result", "children": [ { "method": "contentEnum", "name": "statusElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizCtwaAdAccountEnums", @@ -11667,14 +11699,14 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -11736,21 +11768,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorCommonAdAccountErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -11760,7 +11792,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -11768,7 +11800,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -11797,7 +11829,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -11805,7 +11837,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -11834,7 +11866,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -11842,7 +11874,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -11871,7 +11903,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -11879,7 +11911,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -11974,28 +12006,28 @@ "method": "child", "name": "response", "type": "string", - "required": true, + "parserRequired": true, "tag": "response", "children": [ { "method": "maybeChild", "name": "not_a_biz", "type": "string", - "required": false, + "parserRequired": false, "tag": "not_a_biz", "children": [ { "method": "forEachChildWithTag", "name": "category", "type": "string", - "required": true, + "parserRequired": true, "tag": "category", "children": [ { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -12006,27 +12038,27 @@ "method": "child", "name": "categories", "type": "string", - "required": true, + "parserRequired": true, "tag": "categories", "children": [ { "method": "forEachChildWithTag", "name": "category", "type": "string", - "required": true, + "parserRequired": true, "tag": "category", "children": [ { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -12101,21 +12133,21 @@ "method": "child", "name": "context", "type": "string", - "required": true, + "parserRequired": true, "tag": "context", "children": [ { "method": "maybeChild", "name": "headline", "type": "string", - "required": false, + "parserRequired": false, "tag": "headline", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -12123,14 +12155,14 @@ "method": "maybeChild", "name": "body", "type": "string", - "required": false, + "parserRequired": false, "tag": "body", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -12138,14 +12170,14 @@ "method": "maybeChild", "name": "sourceApp", "type": "string", - "required": false, + "parserRequired": false, "tag": "sourceApp", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "contentType": "string" @@ -12154,14 +12186,14 @@ "method": "maybeChild", "name": "greetingMessageBody", "type": "string", - "required": false, + "parserRequired": false, "tag": "greetingMessageBody", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -12169,14 +12201,14 @@ "method": "maybeChild", "name": "automatedGreetingMessageShown", "type": "string", - "required": false, + "parserRequired": false, "tag": "automatedGreetingMessageShown", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -12184,14 +12216,14 @@ "method": "maybeChild", "name": "ctaPayload", "type": "string", - "required": false, + "parserRequired": false, "tag": "ctaPayload", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "contentType": "string" @@ -12200,14 +12232,14 @@ "method": "maybeChild", "name": "originalImageUrl", "type": "string", - "required": false, + "parserRequired": false, "tag": "originalImageUrl", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "contentType": "string" @@ -12218,7 +12250,7 @@ "method": "child", "name": "error", "type": "string", - "required": false, + "parserRequired": false, "tag": "error", "children": [] } @@ -12287,21 +12319,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "media", "type": "string", - "required": false, + "parserRequired": false, "tag": "media", "children": [ { @@ -12309,14 +12341,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_VIDEO", "module": "WASmaxInBizCtwaNativeAdEnums", @@ -12339,7 +12372,7 @@ "method": "child", "name": "mediaList", "type": "string", - "required": true, + "parserRequired": true, "tag": "media_list", "children": [ { @@ -12347,14 +12380,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_VIDEO", "module": "WASmaxInBizCtwaNativeAdEnums", @@ -12410,21 +12444,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "media", "type": "string", - "required": false, + "parserRequired": false, "tag": "media", "children": [ { @@ -12432,14 +12466,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_VIDEO", "module": "WASmaxInBizCtwaNativeAdEnums", @@ -12462,7 +12497,7 @@ "method": "child", "name": "mediaList", "type": "string", - "required": true, + "parserRequired": true, "tag": "media_list", "children": [ { @@ -12470,14 +12505,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_VIDEO", "module": "WASmaxInBizCtwaNativeAdEnums", @@ -12548,21 +12584,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorNativeAdErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -12572,7 +12608,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -12580,7 +12616,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -12609,7 +12645,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -12617,7 +12653,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -12646,7 +12682,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -12654,7 +12690,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -12683,7 +12719,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -12691,7 +12727,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -12814,7 +12850,7 @@ "name": "countryCodeIso", "wireName": "iso", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "country_code" ] @@ -12824,7 +12860,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -12864,7 +12900,7 @@ "name": "countryCodeIso", "wireName": "iso", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "country_code" ] @@ -12874,7 +12910,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -12926,14 +12962,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorCountryCodeErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -12943,7 +12979,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -12951,7 +12987,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -12980,7 +13016,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -12988,7 +13024,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -13050,14 +13086,14 @@ "method": "child", "name": "passkeyRequestOptionsPasskeyRequestOptionsMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "passkey_request_options", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4096 } @@ -13069,7 +13105,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -13108,14 +13144,14 @@ "method": "child", "name": "passkeyRequestOptionsPasskeyRequestOptionsMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "passkey_request_options", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4096 } @@ -13127,7 +13163,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -13172,7 +13208,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -13180,7 +13216,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -13188,7 +13224,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -13199,7 +13235,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -13238,7 +13274,7 @@ "method": "contentBytes", "name": "refElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "ref" ] @@ -13248,7 +13284,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -13287,7 +13323,7 @@ "method": "contentBytes", "name": "refElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "ref" ] @@ -13297,7 +13333,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -13368,7 +13404,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -13408,7 +13444,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -13460,14 +13496,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorCompanionFinishErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -13477,7 +13513,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -13485,7 +13521,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -13514,7 +13550,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -13522,7 +13558,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -13640,7 +13676,7 @@ "name": "linkCodeCompanionRegStage", "wireName": "stage", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "companion_hello", "sourcePath": [ "link_code_companion_reg" @@ -13650,7 +13686,7 @@ "method": "contentBytes", "name": "linkCodeCompanionRegLinkCodePairingRefElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "link_code_companion_reg", "link_code_pairing_ref" @@ -13661,7 +13697,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -13701,7 +13737,7 @@ "name": "linkCodeCompanionRegStage", "wireName": "stage", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "companion_hello", "sourcePath": [ "link_code_companion_reg" @@ -13711,7 +13747,7 @@ "method": "contentBytes", "name": "linkCodeCompanionRegLinkCodePairingRefElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "link_code_companion_reg", "link_code_pairing_ref" @@ -13722,7 +13758,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -13789,14 +13825,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorIqMixinErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -13806,7 +13842,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -13814,7 +13850,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -13843,7 +13879,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -13851,7 +13887,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -13880,7 +13916,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-available" }, { @@ -13888,7 +13924,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "452" } ], @@ -13917,7 +13953,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -13925,7 +13961,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -13954,7 +13990,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -13962,7 +13998,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -14025,7 +14061,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -14065,7 +14101,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -14105,7 +14141,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -14145,7 +14181,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -14211,7 +14247,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -14251,7 +14287,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -14309,20 +14345,20 @@ "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "error", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { "method": "attrInt", "name": "code", "type": "integer", - "required": true + "parserRequired": true } ] } @@ -14333,7 +14369,7 @@ "moduleName": "WASmaxOutNewslettersGetNewsletterMessageUpdatesRequest", "namespace": "newsletter", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "parserName": "WASmaxNewslettersGetNewsletterMessageUpdatesRPC", "exportedFunction": "makeGetNewsletterMessageUpdatesRequest", "allExports": [ @@ -14342,7 +14378,7 @@ "request": { "namespace": "newsletter", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "children": [ { "tag": "message_updates", @@ -14371,7 +14407,7 @@ "method": "child", "name": "messageUpdatesMessagesNewsletterMessageResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "messages", "children": [ { @@ -14379,20 +14415,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { @@ -14400,14 +14436,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -14416,28 +14452,28 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "newsletterMessageOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -14448,15 +14484,15 @@ { "method": "", "name": "newsletterMessageLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp_millis", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -14467,15 +14503,15 @@ { "method": "", "name": "adminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "id", "wireName": "id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta", "admin_profile" @@ -14485,14 +14521,14 @@ "method": "child", "name": "name", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -14505,7 +14541,7 @@ "method": "child", "name": "picture", "type": "string", - "required": false, + "parserRequired": false, "tag": "picture", "children": [ { @@ -14513,14 +14549,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -14536,19 +14572,19 @@ "method": "", "name": "hasPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNewsletterAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "newsletterMessageHistoryContent", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterQuestion", @@ -14558,7 +14594,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -14567,15 +14603,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -14588,7 +14624,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -14597,14 +14633,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -14616,21 +14652,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -14660,7 +14696,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -14755,14 +14792,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -14774,21 +14811,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -14800,15 +14837,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -14853,15 +14891,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -14900,21 +14938,21 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -14927,7 +14965,7 @@ "method": "", "name": "newsletterQuestionReplyOrTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionReply", @@ -14937,7 +14975,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -14946,15 +14984,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -14967,7 +15005,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -14976,14 +15014,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -14995,21 +15033,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15039,7 +15077,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -15134,14 +15173,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -15153,21 +15192,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15179,15 +15218,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -15232,15 +15272,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -15278,14 +15318,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -15297,21 +15337,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15341,7 +15381,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -15436,14 +15477,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -15455,21 +15496,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15481,15 +15522,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -15534,15 +15576,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -15586,7 +15628,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -15595,15 +15637,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15616,7 +15658,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -15625,14 +15667,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -15644,21 +15686,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15688,7 +15730,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -15783,14 +15826,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -15802,21 +15845,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15828,15 +15871,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -15881,15 +15925,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -15928,7 +15972,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -15936,21 +15980,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -15984,14 +16028,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -16003,21 +16047,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -16047,7 +16091,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -16142,14 +16187,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -16161,21 +16206,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -16187,15 +16232,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -16240,15 +16286,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -16276,14 +16322,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -16295,7 +16341,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -16303,7 +16349,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -16314,7 +16360,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -16322,15 +16368,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -16359,14 +16405,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -16378,7 +16424,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -16386,7 +16432,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -16397,7 +16443,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -16405,15 +16451,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -16442,14 +16488,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -16461,7 +16507,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -16469,7 +16515,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result_snapshot", "sourcePath": [ "meta" @@ -16478,15 +16524,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -16516,7 +16562,7 @@ "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -16525,15 +16571,15 @@ { "method": "", "name": "adminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -16542,15 +16588,15 @@ { "method": "", "name": "adminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -16560,7 +16606,7 @@ "method": "", "name": "newsletterWamoEmptyContent", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionEmpty", @@ -16570,7 +16616,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -16580,7 +16626,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -16590,7 +16636,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -16614,7 +16660,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -16648,7 +16694,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -16658,7 +16704,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -16668,7 +16714,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -16692,7 +16738,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -16726,7 +16772,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -16750,7 +16796,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -16774,7 +16820,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -16782,7 +16828,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -16793,7 +16839,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -16819,7 +16865,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -16827,7 +16873,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -16838,7 +16884,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -16871,14 +16917,14 @@ { "method": "", "name": "newsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -16886,14 +16932,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -16907,14 +16953,14 @@ { "method": "", "name": "newsletterPollVotesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { @@ -16922,13 +16968,13 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -16943,15 +16989,15 @@ { "method": "", "name": "newsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -16962,15 +17008,15 @@ { "method": "", "name": "receiverContentTypeMediaRCATMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "plaintextMediatype", "wireName": "mediatype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "url", "sourcePath": [ "plaintext" @@ -16980,7 +17026,7 @@ "method": "contentBytes", "name": "rcatElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "rcat" ] @@ -16990,7 +17036,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -16999,15 +17045,15 @@ { "method": "", "name": "newsletterForwardsCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "forwardsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "forwards_count" ] @@ -17019,7 +17065,7 @@ "method": "", "name": "newsletterViewsCountViewsOrDeprecatedMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterViewsCountViews", @@ -17028,7 +17074,7 @@ "method": "child", "name": "viewsCount", "type": "string", - "required": true, + "parserRequired": true, "tag": "views_count", "children": [ { @@ -17036,7 +17082,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "views" }, { @@ -17044,7 +17090,7 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -17065,7 +17111,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -17094,7 +17140,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -17133,7 +17179,7 @@ "method": "child", "name": "messageUpdatesMessagesNewsletterMessageResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "messages", "children": [ { @@ -17141,20 +17187,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { @@ -17162,14 +17208,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -17178,28 +17224,28 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "newsletterMessageOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -17210,15 +17256,15 @@ { "method": "", "name": "newsletterMessageLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp_millis", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -17229,15 +17275,15 @@ { "method": "", "name": "adminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "id", "wireName": "id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta", "admin_profile" @@ -17247,14 +17293,14 @@ "method": "child", "name": "name", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -17267,7 +17313,7 @@ "method": "child", "name": "picture", "type": "string", - "required": false, + "parserRequired": false, "tag": "picture", "children": [ { @@ -17275,14 +17321,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -17298,19 +17344,19 @@ "method": "", "name": "hasPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNewsletterAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "newsletterMessageHistoryContent", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterQuestion", @@ -17320,7 +17366,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -17329,15 +17375,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -17350,7 +17396,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -17359,14 +17405,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -17378,21 +17424,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -17422,7 +17468,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -17517,14 +17564,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -17536,21 +17583,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -17562,15 +17609,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -17615,15 +17663,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -17662,21 +17710,21 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -17689,7 +17737,7 @@ "method": "", "name": "newsletterQuestionReplyOrTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionReply", @@ -17699,7 +17747,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -17708,15 +17756,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -17729,7 +17777,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -17738,14 +17786,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -17757,21 +17805,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -17801,7 +17849,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -17896,14 +17945,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -17915,21 +17964,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -17941,15 +17990,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -17994,15 +18044,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -18040,14 +18090,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -18059,21 +18109,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18103,7 +18153,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -18198,14 +18249,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -18217,21 +18268,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18243,15 +18294,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -18296,15 +18348,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -18348,7 +18400,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -18357,15 +18409,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18378,7 +18430,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -18387,14 +18439,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -18406,21 +18458,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18450,7 +18502,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -18545,14 +18598,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -18564,21 +18617,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18590,15 +18643,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -18643,15 +18697,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -18690,7 +18744,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -18698,21 +18752,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18746,14 +18800,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -18765,21 +18819,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18809,7 +18863,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -18904,14 +18959,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -18923,21 +18978,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -18949,15 +19004,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -19002,15 +19058,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -19038,14 +19094,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -19057,7 +19113,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -19065,7 +19121,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -19076,7 +19132,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -19084,15 +19140,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -19121,14 +19177,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -19140,7 +19196,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -19148,7 +19204,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -19159,7 +19215,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -19167,15 +19223,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -19204,14 +19260,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -19223,7 +19279,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -19231,7 +19287,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result_snapshot", "sourcePath": [ "meta" @@ -19240,15 +19296,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -19278,7 +19334,7 @@ "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -19287,15 +19343,15 @@ { "method": "", "name": "adminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -19304,15 +19360,15 @@ { "method": "", "name": "adminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -19322,7 +19378,7 @@ "method": "", "name": "newsletterWamoEmptyContent", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionEmpty", @@ -19332,7 +19388,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -19342,7 +19398,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -19352,7 +19408,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -19376,7 +19432,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -19410,7 +19466,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -19420,7 +19476,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -19430,7 +19486,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -19454,7 +19510,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -19488,7 +19544,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -19512,7 +19568,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -19536,7 +19592,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -19544,7 +19600,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -19555,7 +19611,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -19581,7 +19637,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -19589,7 +19645,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -19600,7 +19656,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -19633,14 +19689,14 @@ { "method": "", "name": "newsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -19648,14 +19704,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -19669,14 +19725,14 @@ { "method": "", "name": "newsletterPollVotesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { @@ -19684,13 +19740,13 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -19705,15 +19761,15 @@ { "method": "", "name": "newsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -19724,15 +19780,15 @@ { "method": "", "name": "receiverContentTypeMediaRCATMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "plaintextMediatype", "wireName": "mediatype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "url", "sourcePath": [ "plaintext" @@ -19742,7 +19798,7 @@ "method": "contentBytes", "name": "rcatElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "rcat" ] @@ -19752,7 +19808,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -19761,15 +19817,15 @@ { "method": "", "name": "newsletterForwardsCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "forwardsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "forwards_count" ] @@ -19781,7 +19837,7 @@ "method": "", "name": "newsletterViewsCountViewsOrDeprecatedMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterViewsCountViews", @@ -19790,7 +19846,7 @@ "method": "child", "name": "viewsCount", "type": "string", - "required": true, + "parserRequired": true, "tag": "views_count", "children": [ { @@ -19798,7 +19854,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "views" }, { @@ -19806,7 +19862,7 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -19827,7 +19883,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -19856,7 +19912,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -19903,7 +19959,7 @@ "method": "", "name": "getNewsletterMessageUpdatesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -19912,7 +19968,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -19920,7 +19976,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -19928,7 +19984,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -19939,7 +19995,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -19976,7 +20032,7 @@ "method": "child", "name": "errorIQErrorUnavailableForLegalReasonsGenericMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -19984,7 +20040,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "features-disabled" }, { @@ -19992,7 +20048,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -20003,7 +20059,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -20040,7 +20096,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -20048,7 +20104,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -20056,7 +20112,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -20067,7 +20123,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -20104,7 +20160,7 @@ "method": "child", "name": "errorIQErrorLockedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -20112,7 +20168,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -20120,7 +20176,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -20131,7 +20187,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -20168,7 +20224,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -20176,7 +20232,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -20184,7 +20240,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -20195,7 +20251,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -20269,7 +20325,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -20277,7 +20333,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -20285,7 +20341,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -20296,7 +20352,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -20411,21 +20467,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "messagesNewsletterMessageResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "messages", "children": [ { @@ -20433,20 +20489,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { @@ -20454,14 +20510,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -20470,28 +20526,28 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "newsletterMessageOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -20502,15 +20558,15 @@ { "method": "", "name": "newsletterMessageLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp_millis", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -20521,15 +20577,15 @@ { "method": "", "name": "adminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "id", "wireName": "id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta", "admin_profile" @@ -20539,14 +20595,14 @@ "method": "child", "name": "name", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -20559,7 +20615,7 @@ "method": "child", "name": "picture", "type": "string", - "required": false, + "parserRequired": false, "tag": "picture", "children": [ { @@ -20567,14 +20623,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -20590,19 +20646,19 @@ "method": "", "name": "hasPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNewsletterAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "newsletterMessageHistoryContent", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterQuestion", @@ -20612,7 +20668,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -20621,15 +20677,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -20642,7 +20698,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -20651,14 +20707,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -20670,21 +20726,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -20714,7 +20770,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -20809,14 +20866,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -20828,21 +20885,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -20854,15 +20911,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -20907,15 +20965,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -20954,21 +21012,21 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -20981,7 +21039,7 @@ "method": "", "name": "newsletterQuestionReplyOrTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionReply", @@ -20991,7 +21049,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -21000,15 +21058,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21021,7 +21079,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -21030,14 +21088,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -21049,21 +21107,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21093,7 +21151,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -21188,14 +21247,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -21207,21 +21266,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21233,15 +21292,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -21286,15 +21346,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -21332,14 +21392,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -21351,21 +21411,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21395,7 +21455,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -21490,14 +21551,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -21509,21 +21570,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21535,15 +21596,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -21588,15 +21650,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -21640,7 +21702,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -21649,15 +21711,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21670,7 +21732,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -21679,14 +21741,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -21698,21 +21760,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21742,7 +21804,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -21837,14 +21900,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -21856,21 +21919,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -21882,15 +21945,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -21935,15 +21999,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -21982,7 +22046,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -21990,21 +22054,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -22038,14 +22102,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -22057,21 +22121,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -22101,7 +22165,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -22196,14 +22261,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -22215,21 +22280,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -22241,15 +22306,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -22294,15 +22360,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -22330,14 +22396,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -22349,7 +22415,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -22357,7 +22423,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -22368,7 +22434,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -22376,15 +22442,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -22413,14 +22479,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -22432,7 +22498,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -22440,7 +22506,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -22451,7 +22517,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -22459,15 +22525,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -22496,14 +22562,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -22515,7 +22581,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -22523,7 +22589,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result_snapshot", "sourcePath": [ "meta" @@ -22532,15 +22598,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -22570,7 +22636,7 @@ "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -22579,15 +22645,15 @@ { "method": "", "name": "adminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -22596,15 +22662,15 @@ { "method": "", "name": "adminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -22614,7 +22680,7 @@ "method": "", "name": "newsletterWamoEmptyContent", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionEmpty", @@ -22624,7 +22690,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -22634,7 +22700,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -22644,7 +22710,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -22668,7 +22734,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -22702,7 +22768,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -22712,7 +22778,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -22722,7 +22788,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -22746,7 +22812,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -22780,7 +22846,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -22804,7 +22870,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -22828,7 +22894,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -22836,7 +22902,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -22847,7 +22913,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -22873,7 +22939,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -22881,7 +22947,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -22892,7 +22958,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -22925,14 +22991,14 @@ { "method": "", "name": "newsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -22940,14 +23006,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -22961,14 +23027,14 @@ { "method": "", "name": "newsletterPollVotesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { @@ -22976,13 +23042,13 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -22997,15 +23063,15 @@ { "method": "", "name": "newsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -23016,15 +23082,15 @@ { "method": "", "name": "receiverContentTypeMediaRCATMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "plaintextMediatype", "wireName": "mediatype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "url", "sourcePath": [ "plaintext" @@ -23034,7 +23100,7 @@ "method": "contentBytes", "name": "rcatElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "rcat" ] @@ -23044,7 +23110,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -23053,15 +23119,15 @@ { "method": "", "name": "newsletterForwardsCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "forwardsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "forwards_count" ] @@ -23073,7 +23139,7 @@ "method": "", "name": "newsletterViewsCountViewsOrDeprecatedMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterViewsCountViews", @@ -23082,7 +23148,7 @@ "method": "child", "name": "viewsCount", "type": "string", - "required": true, + "parserRequired": true, "tag": "views_count", "children": [ { @@ -23090,7 +23156,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "views" }, { @@ -23098,7 +23164,7 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -23119,7 +23185,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -23170,21 +23236,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "messagesNewsletterMessageResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "messages", "children": [ { @@ -23192,20 +23258,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { @@ -23213,14 +23279,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -23229,28 +23295,28 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "newsletterMessageOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -23261,15 +23327,15 @@ { "method": "", "name": "newsletterMessageLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp_millis", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -23280,15 +23346,15 @@ { "method": "", "name": "adminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "id", "wireName": "id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta", "admin_profile" @@ -23298,14 +23364,14 @@ "method": "child", "name": "name", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -23318,7 +23384,7 @@ "method": "child", "name": "picture", "type": "string", - "required": false, + "parserRequired": false, "tag": "picture", "children": [ { @@ -23326,14 +23392,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -23349,19 +23415,19 @@ "method": "", "name": "hasPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNewsletterAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "newsletterMessageHistoryContent", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterQuestion", @@ -23371,7 +23437,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -23380,15 +23446,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -23401,7 +23467,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -23410,14 +23476,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -23429,21 +23495,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -23473,7 +23539,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -23568,14 +23635,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -23587,21 +23654,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -23613,15 +23680,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -23666,15 +23734,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -23713,21 +23781,21 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -23740,7 +23808,7 @@ "method": "", "name": "newsletterQuestionReplyOrTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionReply", @@ -23750,7 +23818,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -23759,15 +23827,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -23780,7 +23848,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -23789,14 +23857,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -23808,21 +23876,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -23852,7 +23920,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -23947,14 +24016,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -23966,21 +24035,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -23992,15 +24061,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -24045,15 +24115,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -24091,14 +24161,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -24110,21 +24180,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -24154,7 +24224,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -24249,14 +24320,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -24268,21 +24339,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -24294,15 +24365,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -24347,15 +24419,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -24399,7 +24471,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -24408,15 +24480,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -24429,7 +24501,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -24438,14 +24510,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -24457,21 +24529,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -24501,7 +24573,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -24596,14 +24669,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -24615,21 +24688,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -24641,15 +24714,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -24694,15 +24768,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -24741,7 +24815,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -24749,21 +24823,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -24797,14 +24871,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -24816,21 +24890,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -24860,7 +24934,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -24955,14 +25030,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -24974,21 +25049,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -25000,15 +25075,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -25053,15 +25129,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -25089,14 +25165,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -25108,7 +25184,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -25116,7 +25192,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -25127,7 +25203,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -25135,15 +25211,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -25172,14 +25248,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -25191,7 +25267,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -25199,7 +25275,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -25210,7 +25286,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -25218,15 +25294,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -25255,14 +25331,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -25274,7 +25350,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -25282,7 +25358,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result_snapshot", "sourcePath": [ "meta" @@ -25291,15 +25367,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -25329,7 +25405,7 @@ "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -25338,15 +25414,15 @@ { "method": "", "name": "adminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -25355,15 +25431,15 @@ { "method": "", "name": "adminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -25373,7 +25449,7 @@ "method": "", "name": "newsletterWamoEmptyContent", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionEmpty", @@ -25383,7 +25459,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -25393,7 +25469,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -25403,7 +25479,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -25427,7 +25503,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -25461,7 +25537,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -25471,7 +25547,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -25481,7 +25557,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -25505,7 +25581,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -25539,7 +25615,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -25563,7 +25639,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -25587,7 +25663,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -25595,7 +25671,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -25606,7 +25682,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -25632,7 +25708,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -25640,7 +25716,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -25651,7 +25727,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -25684,14 +25760,14 @@ { "method": "", "name": "newsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -25699,14 +25775,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -25720,14 +25796,14 @@ { "method": "", "name": "newsletterPollVotesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { @@ -25735,13 +25811,13 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -25756,15 +25832,15 @@ { "method": "", "name": "newsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -25775,15 +25851,15 @@ { "method": "", "name": "receiverContentTypeMediaRCATMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "plaintextMediatype", "wireName": "mediatype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "url", "sourcePath": [ "plaintext" @@ -25793,7 +25869,7 @@ "method": "contentBytes", "name": "rcatElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "rcat" ] @@ -25803,7 +25879,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -25812,15 +25888,15 @@ { "method": "", "name": "newsletterForwardsCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "forwardsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "forwards_count" ] @@ -25832,7 +25908,7 @@ "method": "", "name": "newsletterViewsCountViewsOrDeprecatedMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterViewsCountViews", @@ -25841,7 +25917,7 @@ "method": "child", "name": "viewsCount", "type": "string", - "required": true, + "parserRequired": true, "tag": "views_count", "children": [ { @@ -25849,7 +25925,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "views" }, { @@ -25857,7 +25933,7 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -25878,7 +25954,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -25948,7 +26024,7 @@ "method": "", "name": "getNewsletterMessagesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -25957,7 +26033,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -25965,7 +26041,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -25973,7 +26049,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -25984,7 +26060,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -26021,7 +26097,7 @@ "method": "child", "name": "errorIQErrorUnavailableForLegalReasonsGenericMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26029,7 +26105,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "features-disabled" }, { @@ -26037,7 +26113,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -26048,7 +26124,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -26085,7 +26161,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26093,7 +26169,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -26101,7 +26177,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -26112,7 +26188,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -26149,7 +26225,7 @@ "method": "child", "name": "errorIQErrorLockedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26157,7 +26233,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -26165,7 +26241,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -26176,7 +26252,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -26213,7 +26289,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26221,7 +26297,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -26229,7 +26305,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -26240,7 +26316,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -26277,7 +26353,7 @@ "method": "child", "name": "errorIQErrorNotAllowedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26285,7 +26361,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -26293,7 +26369,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -26304,7 +26380,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -26372,21 +26448,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26394,7 +26470,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -26402,7 +26478,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -26417,7 +26493,7 @@ "moduleName": "WASmaxOutNewslettersGetNewsletterResponsesRequest", "namespace": "newsletter", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "parserName": "WASmaxNewslettersGetNewsletterResponsesRPC", "exportedFunction": "makeGetNewsletterResponsesRequest", "allExports": [ @@ -26426,7 +26502,7 @@ "request": { "namespace": "newsletter", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "children": [ { "tag": "question_responses", @@ -26456,14 +26532,14 @@ "name": "from", "wireName": "from", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -26471,7 +26547,7 @@ "name": "questionResponsesServerId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647, "sourcePath": [ @@ -26482,7 +26558,7 @@ "method": "child", "name": "questionResponsesQuestionResponse", "type": "string", - "required": true, + "parserRequired": true, "tag": "question_response", "children": [ { @@ -26490,7 +26566,7 @@ "name": "messageId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "message" ] @@ -26500,7 +26576,7 @@ "name": "messageT", "wireName": "t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "message" ] @@ -26510,7 +26586,7 @@ "name": "messageIsSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true", "sourcePath": [ "message" @@ -26520,21 +26596,21 @@ "method": "child", "name": "messageNewsletterQuestionResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -26546,7 +26622,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { @@ -26554,7 +26630,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "response", "sourcePath": [ "meta" @@ -26565,7 +26641,7 @@ "name": "metaResponseServerId", "wireName": "response_server_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -26578,7 +26654,7 @@ "name": "senderLid", "wireName": "lid", "type": "lid_user_jid", - "required": false, + "parserRequired": false, "sourcePath": [ "sender" ] @@ -26588,7 +26664,7 @@ "name": "senderNotifyName", "wireName": "notify_name", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "sender" ] @@ -26598,7 +26674,7 @@ "name": "senderPictureDirectPath", "wireName": "direct_path", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "sender", "picture" @@ -26607,20 +26683,20 @@ { "method": "", "name": "questionResponseFlagsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "hasFlagsRepliedFlagMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasFlagsStarredFlagMixin", "type": "bool", - "required": true + "parserRequired": true } ], "sameNode": true @@ -26661,14 +26737,14 @@ "name": "from", "wireName": "from", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -26676,7 +26752,7 @@ "name": "questionResponsesServerId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647, "sourcePath": [ @@ -26687,7 +26763,7 @@ "method": "child", "name": "questionResponsesQuestionResponse", "type": "string", - "required": true, + "parserRequired": true, "tag": "question_response", "children": [ { @@ -26695,7 +26771,7 @@ "name": "messageId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "message" ] @@ -26705,7 +26781,7 @@ "name": "messageT", "wireName": "t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "message" ] @@ -26715,7 +26791,7 @@ "name": "messageIsSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true", "sourcePath": [ "message" @@ -26725,21 +26801,21 @@ "method": "child", "name": "messageNewsletterQuestionResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -26751,7 +26827,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { @@ -26759,7 +26835,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "response", "sourcePath": [ "meta" @@ -26770,7 +26846,7 @@ "name": "metaResponseServerId", "wireName": "response_server_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -26783,7 +26859,7 @@ "name": "senderLid", "wireName": "lid", "type": "lid_user_jid", - "required": false, + "parserRequired": false, "sourcePath": [ "sender" ] @@ -26793,7 +26869,7 @@ "name": "senderNotifyName", "wireName": "notify_name", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "sender" ] @@ -26803,7 +26879,7 @@ "name": "senderPictureDirectPath", "wireName": "direct_path", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "sender", "picture" @@ -26812,20 +26888,20 @@ { "method": "", "name": "questionResponseFlagsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "hasFlagsRepliedFlagMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasFlagsStarredFlagMixin", "type": "bool", - "required": true + "parserRequired": true } ], "sameNode": true @@ -26885,7 +26961,7 @@ "method": "", "name": "getNewsletterResponsesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -26894,7 +26970,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26902,7 +26978,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -26910,7 +26986,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -26921,7 +26997,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -26958,7 +27034,7 @@ "method": "child", "name": "errorIQErrorNotAuthorizedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -26966,7 +27042,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -26974,7 +27050,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -26985,7 +27061,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -27022,7 +27098,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -27030,7 +27106,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -27038,7 +27114,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -27049,7 +27125,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -27086,7 +27162,7 @@ "method": "child", "name": "errorIQErrorLockedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -27094,7 +27170,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -27102,7 +27178,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -27113,7 +27189,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -27150,7 +27226,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -27158,7 +27234,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -27166,7 +27242,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -27177,7 +27253,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -27214,7 +27290,7 @@ "method": "child", "name": "errorIQErrorNotAllowedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -27222,7 +27298,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -27230,7 +27306,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -27241,7 +27317,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -27309,21 +27385,21 @@ "name": "from", "wireName": "from", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -27331,7 +27407,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -27339,7 +27415,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -27354,7 +27430,7 @@ "moduleName": "WASmaxOutNewslettersGetNewsletterStatusUpdatesRequest", "namespace": "newsletter", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "parserName": "WASmaxNewslettersGetNewsletterStatusUpdatesRPC", "exportedFunction": "makeGetNewsletterStatusUpdatesRequest", "allExports": [ @@ -27363,7 +27439,7 @@ "request": { "namespace": "newsletter", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "children": [ { "tag": "status_updates", @@ -27392,7 +27468,7 @@ "method": "child", "name": "statusUpdatesStatusesNewsletterStatusResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "statuses", "children": [ { @@ -27400,20 +27476,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "status", "type": "string", - "required": true, + "parserRequired": true, "tag": "status", "children": [ { @@ -27421,14 +27497,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -27437,27 +27513,27 @@ "name": "t", "wireName": "t", "type": "timestamp", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "statusNewsletterContentMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "newsletterStatusContentTypeMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "StatusNewsletterRevoke", @@ -27467,7 +27543,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -27475,7 +27551,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -27503,14 +27579,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -27522,7 +27598,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -27546,7 +27622,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_AUDIO_GIF_IMAGE_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -27577,14 +27654,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -27596,7 +27673,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -27620,7 +27697,7 @@ "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -27630,7 +27707,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -27654,7 +27731,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" }, { @@ -27662,7 +27739,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -27691,15 +27768,15 @@ { "method": "", "name": "statusOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -27710,15 +27787,15 @@ { "method": "", "name": "statusLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -27729,15 +27806,15 @@ { "method": "", "name": "statusAdminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta", "admin_profile" @@ -27750,26 +27827,26 @@ "method": "", "name": "hasStatusPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasStatusAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "statusNewsletterInteractionTypeQuestionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -27781,15 +27858,15 @@ { "method": "", "name": "statusNewsletterInteractionTypeQuestionReshareMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question_reshare", "sourcePath": [ "meta" @@ -27800,7 +27877,7 @@ "name": "metaParentServerId", "wireName": "parent_server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647, "sourcePath": [ @@ -27812,7 +27889,7 @@ "name": "metaResponseServerId", "wireName": "response_server_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -27823,14 +27900,14 @@ { "method": "", "name": "statusNewsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -27838,14 +27915,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -27859,15 +27936,15 @@ { "method": "", "name": "statusNewsletterViewsCountsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "viewsCountType", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "views", "sourcePath": [ "views_count" @@ -27878,7 +27955,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -27889,15 +27966,15 @@ { "method": "", "name": "statusNewsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -27919,7 +27996,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -27958,7 +28035,7 @@ "method": "child", "name": "statusUpdatesStatusesNewsletterStatusResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "statuses", "children": [ { @@ -27966,20 +28043,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "status", "type": "string", - "required": true, + "parserRequired": true, "tag": "status", "children": [ { @@ -27987,14 +28064,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -28003,27 +28080,27 @@ "name": "t", "wireName": "t", "type": "timestamp", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "statusNewsletterContentMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "newsletterStatusContentTypeMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "StatusNewsletterRevoke", @@ -28033,7 +28110,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -28041,7 +28118,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -28069,14 +28146,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -28088,7 +28165,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -28112,7 +28189,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_AUDIO_GIF_IMAGE_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -28143,14 +28221,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -28162,7 +28240,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -28186,7 +28264,7 @@ "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -28196,7 +28274,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -28220,7 +28298,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" }, { @@ -28228,7 +28306,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -28257,15 +28335,15 @@ { "method": "", "name": "statusOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -28276,15 +28354,15 @@ { "method": "", "name": "statusLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -28295,15 +28373,15 @@ { "method": "", "name": "statusAdminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta", "admin_profile" @@ -28316,26 +28394,26 @@ "method": "", "name": "hasStatusPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasStatusAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "statusNewsletterInteractionTypeQuestionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -28347,15 +28425,15 @@ { "method": "", "name": "statusNewsletterInteractionTypeQuestionReshareMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question_reshare", "sourcePath": [ "meta" @@ -28366,7 +28444,7 @@ "name": "metaParentServerId", "wireName": "parent_server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647, "sourcePath": [ @@ -28378,7 +28456,7 @@ "name": "metaResponseServerId", "wireName": "response_server_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -28389,14 +28467,14 @@ { "method": "", "name": "statusNewsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -28404,14 +28482,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -28425,15 +28503,15 @@ { "method": "", "name": "statusNewsletterViewsCountsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "viewsCountType", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "views", "sourcePath": [ "views_count" @@ -28444,7 +28522,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -28455,15 +28533,15 @@ { "method": "", "name": "statusNewsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -28485,7 +28563,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -28532,7 +28610,7 @@ "method": "", "name": "getNewsletterStatusUpdatesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -28541,7 +28619,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -28549,7 +28627,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -28557,7 +28635,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -28568,7 +28646,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -28605,7 +28683,7 @@ "method": "child", "name": "errorIQErrorUnavailableForLegalReasonsGenericMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -28613,7 +28691,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "features-disabled" }, { @@ -28621,7 +28699,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -28632,7 +28710,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -28669,7 +28747,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -28677,7 +28755,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -28685,7 +28763,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -28696,7 +28774,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -28733,7 +28811,7 @@ "method": "child", "name": "errorIQErrorLockedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -28741,7 +28819,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -28749,7 +28827,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -28760,7 +28838,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -28797,7 +28875,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -28805,7 +28883,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -28813,7 +28891,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -28824,7 +28902,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -28898,7 +28976,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -28906,7 +28984,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -28914,7 +28992,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -28925,7 +29003,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -29040,21 +29118,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "statusesNewsletterStatusResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "statuses", "children": [ { @@ -29062,20 +29140,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "status", "type": "string", - "required": true, + "parserRequired": true, "tag": "status", "children": [ { @@ -29083,14 +29161,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -29099,27 +29177,27 @@ "name": "t", "wireName": "t", "type": "timestamp", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "statusNewsletterContentMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "newsletterStatusContentTypeMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "StatusNewsletterRevoke", @@ -29129,7 +29207,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -29137,7 +29215,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -29165,14 +29243,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -29184,7 +29262,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -29208,7 +29286,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_AUDIO_GIF_IMAGE_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -29239,14 +29318,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -29258,7 +29337,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -29282,7 +29361,7 @@ "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -29292,7 +29371,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -29316,7 +29395,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" }, { @@ -29324,7 +29403,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -29353,15 +29432,15 @@ { "method": "", "name": "statusOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -29372,15 +29451,15 @@ { "method": "", "name": "statusLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -29391,15 +29470,15 @@ { "method": "", "name": "statusAdminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta", "admin_profile" @@ -29412,26 +29491,26 @@ "method": "", "name": "hasStatusPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasStatusAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "statusNewsletterInteractionTypeQuestionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -29443,15 +29522,15 @@ { "method": "", "name": "statusNewsletterInteractionTypeQuestionReshareMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question_reshare", "sourcePath": [ "meta" @@ -29462,7 +29541,7 @@ "name": "metaParentServerId", "wireName": "parent_server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647, "sourcePath": [ @@ -29474,7 +29553,7 @@ "name": "metaResponseServerId", "wireName": "response_server_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -29485,14 +29564,14 @@ { "method": "", "name": "statusNewsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -29500,14 +29579,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -29521,15 +29600,15 @@ { "method": "", "name": "statusNewsletterViewsCountsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "viewsCountType", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "views", "sourcePath": [ "views_count" @@ -29540,7 +29619,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -29551,15 +29630,15 @@ { "method": "", "name": "statusNewsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -29603,21 +29682,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "statusesNewsletterStatusResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "statuses", "children": [ { @@ -29625,20 +29704,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "status", "type": "string", - "required": true, + "parserRequired": true, "tag": "status", "children": [ { @@ -29646,14 +29725,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -29662,27 +29741,27 @@ "name": "t", "wireName": "t", "type": "timestamp", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "statusNewsletterContentMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "newsletterStatusContentTypeMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "StatusNewsletterRevoke", @@ -29692,7 +29771,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -29700,7 +29779,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -29728,14 +29807,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -29747,7 +29826,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -29771,7 +29850,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_AUDIO_GIF_IMAGE_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -29802,14 +29882,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -29821,7 +29901,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -29845,7 +29925,7 @@ "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -29855,7 +29935,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -29879,7 +29959,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" }, { @@ -29887,7 +29967,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -29916,15 +29996,15 @@ { "method": "", "name": "statusOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -29935,15 +30015,15 @@ { "method": "", "name": "statusLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -29954,15 +30034,15 @@ { "method": "", "name": "statusAdminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta", "admin_profile" @@ -29975,26 +30055,26 @@ "method": "", "name": "hasStatusPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasStatusAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "statusNewsletterInteractionTypeQuestionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -30006,15 +30086,15 @@ { "method": "", "name": "statusNewsletterInteractionTypeQuestionReshareMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaInteractionType", "wireName": "interaction_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question_reshare", "sourcePath": [ "meta" @@ -30025,7 +30105,7 @@ "name": "metaParentServerId", "wireName": "parent_server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647, "sourcePath": [ @@ -30037,7 +30117,7 @@ "name": "metaResponseServerId", "wireName": "response_server_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -30048,14 +30128,14 @@ { "method": "", "name": "statusNewsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -30063,14 +30143,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -30084,15 +30164,15 @@ { "method": "", "name": "statusNewsletterViewsCountsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "viewsCountType", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "views", "sourcePath": [ "views_count" @@ -30103,7 +30183,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -30114,15 +30194,15 @@ { "method": "", "name": "statusNewsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -30185,7 +30265,7 @@ "method": "", "name": "getNewsletterStatusesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -30194,7 +30274,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -30202,7 +30282,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -30210,7 +30290,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -30221,7 +30301,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -30258,7 +30338,7 @@ "method": "child", "name": "errorIQErrorUnavailableForLegalReasonsGenericMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -30266,7 +30346,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "features-disabled" }, { @@ -30274,7 +30354,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -30285,7 +30365,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -30322,7 +30402,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -30330,7 +30410,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -30338,7 +30418,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -30349,7 +30429,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -30386,7 +30466,7 @@ "method": "child", "name": "errorIQErrorLockedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -30394,7 +30474,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -30402,7 +30482,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -30413,7 +30493,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -30450,7 +30530,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -30458,7 +30538,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -30466,7 +30546,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -30477,7 +30557,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -30514,7 +30594,7 @@ "method": "child", "name": "errorIQErrorNotAllowedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -30522,7 +30602,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -30530,7 +30610,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -30541,7 +30621,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -30609,21 +30689,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -30631,7 +30711,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -30639,7 +30719,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -30693,14 +30773,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "myAddonsMessages", "type": "string", - "required": true, + "parserRequired": true, "tag": "messages", "children": [ { @@ -30708,13 +30788,13 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "child", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { @@ -30722,22 +30802,22 @@ "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, { "method": "", "name": "newsletterMyReactionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -30747,7 +30827,7 @@ "name": "reactionT", "wireName": "t", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -30758,15 +30838,15 @@ { "method": "", "name": "newsletterMyPollVoteMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "votesT", "wireName": "t", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "votes" ] @@ -30775,14 +30855,14 @@ "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -30840,14 +30920,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "myAddonsMessages", "type": "string", - "required": true, + "parserRequired": true, "tag": "messages", "children": [ { @@ -30855,13 +30935,13 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "child", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { @@ -30869,22 +30949,22 @@ "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, { "method": "", "name": "newsletterMyReactionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -30894,7 +30974,7 @@ "name": "reactionT", "wireName": "t", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -30905,15 +30985,15 @@ { "method": "", "name": "newsletterMyPollVoteMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "votesT", "wireName": "t", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "votes" ] @@ -30922,14 +31002,14 @@ "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -30989,7 +31069,7 @@ "method": "", "name": "myAddonsClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -30998,7 +31078,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31006,7 +31086,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -31014,7 +31094,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -31025,7 +31105,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31062,7 +31142,7 @@ "method": "child", "name": "errorIQErrorNotAuthorizedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31070,7 +31150,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -31078,7 +31158,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -31089,7 +31169,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31126,7 +31206,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31134,7 +31214,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -31142,7 +31222,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -31153,7 +31233,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31190,7 +31270,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31198,7 +31278,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -31206,7 +31286,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -31217,7 +31297,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31291,7 +31371,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31299,7 +31379,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -31307,7 +31387,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -31318,7 +31398,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -31375,7 +31455,7 @@ "name": "myAddonsType", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "status", "sourcePath": [ "my_addons" @@ -31386,14 +31466,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "myAddonsStatuses", "type": "string", - "required": true, + "parserRequired": true, "tag": "statuses", "children": [ { @@ -31401,13 +31481,13 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "child", "name": "status", "type": "string", - "required": true, + "parserRequired": true, "tag": "status", "children": [ { @@ -31415,22 +31495,22 @@ "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, { "method": "", "name": "statusNewsletterMyReactionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -31440,7 +31520,7 @@ "name": "reactionT", "wireName": "t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -31494,7 +31574,7 @@ "name": "myAddonsType", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "status", "sourcePath": [ "my_addons" @@ -31505,14 +31585,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "myAddonsStatuses", "type": "string", - "required": true, + "parserRequired": true, "tag": "statuses", "children": [ { @@ -31520,13 +31600,13 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "child", "name": "status", "type": "string", - "required": true, + "parserRequired": true, "tag": "status", "children": [ { @@ -31534,22 +31614,22 @@ "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, { "method": "", "name": "statusNewsletterMyReactionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -31559,7 +31639,7 @@ "name": "reactionT", "wireName": "t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -31615,7 +31695,7 @@ "method": "", "name": "statusMyAddonsClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -31624,7 +31704,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31632,7 +31712,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -31640,7 +31720,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -31651,7 +31731,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31688,7 +31768,7 @@ "method": "child", "name": "errorIQErrorNotAuthorizedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31696,7 +31776,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -31704,7 +31784,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -31715,7 +31795,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31752,7 +31832,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31760,7 +31840,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -31768,7 +31848,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -31779,7 +31859,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31816,7 +31896,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31824,7 +31904,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -31832,7 +31912,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -31843,7 +31923,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -31917,7 +31997,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -31925,7 +32005,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -31933,7 +32013,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -31944,7 +32024,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -31956,7 +32036,7 @@ "moduleName": "WASmaxOutNewslettersSubscribeToLiveUpdatesRequest", "namespace": "newsletter", "iqType": "set", - "target": "s.whatsapp.net", + "target": "unknown", "parserName": "WASmaxNewslettersSubscribeToLiveUpdatesRPC", "exportedFunction": "makeSubscribeToLiveUpdatesRequest", "allExports": [ @@ -31965,7 +32045,7 @@ "request": { "namespace": "newsletter", "iqType": "set", - "target": "s.whatsapp.net", + "target": "unknown", "children": [ { "tag": "live_updates", @@ -31984,7 +32064,7 @@ "name": "liveUpdatesDuration", "wireName": "duration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 30, "intMax": 600, "sourcePath": [ @@ -31996,7 +32076,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -32036,7 +32116,7 @@ "name": "liveUpdatesDuration", "wireName": "duration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 30, "intMax": 600, "sourcePath": [ @@ -32048,7 +32128,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -32095,7 +32175,7 @@ "method": "", "name": "subscribeToLiveUpdatesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BadRequestIQErrorResponse", @@ -32104,7 +32184,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -32112,7 +32192,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -32120,7 +32200,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -32131,7 +32211,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -32168,7 +32248,7 @@ "method": "child", "name": "errorIQErrorUnavailableForLegalReasonsGenericMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -32176,7 +32256,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "features-disabled" }, { @@ -32184,7 +32264,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -32195,7 +32275,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -32232,7 +32312,7 @@ "method": "child", "name": "errorIQErrorItemNotFoundMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -32240,7 +32320,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -32248,7 +32328,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -32259,7 +32339,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -32296,7 +32376,7 @@ "method": "child", "name": "errorIQErrorLockedMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -32304,7 +32384,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -32312,7 +32392,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -32323,7 +32403,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -32360,7 +32440,7 @@ "method": "child", "name": "errorIQErrorRateOverlimitMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -32368,7 +32448,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -32376,7 +32456,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -32387,7 +32467,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ], @@ -32461,7 +32541,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -32469,7 +32549,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -32477,7 +32557,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -32488,7 +32568,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -32535,7 +32615,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -32543,7 +32623,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "list" ] @@ -32552,7 +32632,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -32560,27 +32640,27 @@ "name": "action", "wireName": "action", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "category", "wireName": "category", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "expiryAt", "wireName": "expiry_at", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "bizOptOutIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BizOptOutBrandID", @@ -32590,14 +32670,14 @@ "name": "bizOptOutBrandId", "wireName": "biz_opt_out_brand_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "bizJid", "wireName": "biz_jid", "type": "user_jid", - "required": false + "parserRequired": false } ] }, @@ -32609,7 +32689,7 @@ "name": "bizOptOutJid", "wireName": "biz_opt_out_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] } @@ -32658,7 +32738,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -32666,7 +32746,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "list" ] @@ -32675,7 +32755,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -32683,27 +32763,27 @@ "name": "action", "wireName": "action", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "category", "wireName": "category", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "expiryAt", "wireName": "expiry_at", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "bizOptOutIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BizOptOutBrandID", @@ -32713,14 +32793,14 @@ "name": "bizOptOutBrandId", "wireName": "biz_opt_out_brand_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "bizJid", "wireName": "biz_jid", "type": "user_jid", - "required": false + "parserRequired": false } ] }, @@ -32732,7 +32812,7 @@ "name": "bizOptOutJid", "wireName": "biz_opt_out_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] } @@ -32781,7 +32861,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -32789,7 +32869,7 @@ "name": "hasCategory", "wireName": "category", "type": "bool", - "required": true, + "parserRequired": true, "referencePath": [ "category" ] @@ -32843,14 +32923,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetBlocklistErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -32860,7 +32940,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -32868,7 +32948,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -32897,7 +32977,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -32905,7 +32985,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -32980,14 +33060,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorFeatureNotImplemented", @@ -32997,7 +33077,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -33005,7 +33085,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -33034,7 +33114,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -33042,7 +33122,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -33146,7 +33226,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -33154,7 +33234,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -33165,7 +33245,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -33174,7 +33254,7 @@ "method": "child", "name": "listItemBizOptOutResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -33182,27 +33262,27 @@ "name": "action", "wireName": "action", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "category", "wireName": "category", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "expiryAt", "wireName": "expiry_at", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "bizOptOutIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BizOptOutBrandID", @@ -33212,14 +33292,14 @@ "name": "bizOptOutBrandId", "wireName": "biz_opt_out_brand_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "bizJid", "wireName": "biz_jid", "type": "user_jid", - "required": false + "parserRequired": false } ] }, @@ -33231,7 +33311,7 @@ "name": "bizOptOutJid", "wireName": "biz_opt_out_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] } @@ -33280,7 +33360,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -33288,7 +33368,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "list" @@ -33299,7 +33379,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -33308,7 +33388,7 @@ "method": "child", "name": "listItemBizOptOutResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -33316,27 +33396,27 @@ "name": "action", "wireName": "action", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "category", "wireName": "category", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "expiryAt", "wireName": "expiry_at", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "bizOptOutIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BizOptOutBrandID", @@ -33346,14 +33426,14 @@ "name": "bizOptOutBrandId", "wireName": "biz_opt_out_brand_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "bizJid", "wireName": "biz_jid", "type": "user_jid", - "required": false + "parserRequired": false } ] }, @@ -33365,7 +33445,7 @@ "name": "bizOptOutJid", "wireName": "biz_opt_out_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] } @@ -33414,7 +33494,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -33422,7 +33502,7 @@ "name": "listMatched", "wireName": "matched", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false", "sourcePath": [ "list" @@ -33433,7 +33513,7 @@ "name": "hasListCDhash", "wireName": "c_dhash", "type": "bool", - "required": true, + "parserRequired": true, "referencePath": [ "item", "dhash" @@ -33447,7 +33527,7 @@ "name": "listDhash", "wireName": "dhash", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "list" ] @@ -33456,7 +33536,7 @@ "method": "child", "name": "listItem", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { @@ -33464,27 +33544,27 @@ "name": "action", "wireName": "action", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "category", "wireName": "category", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "expiryAt", "wireName": "expiry_at", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "bizOptOutIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BizOptOutBrandID", @@ -33494,14 +33574,14 @@ "name": "bizOptOutBrandId", "wireName": "biz_opt_out_brand_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "bizJid", "wireName": "biz_jid", "type": "user_jid", - "required": false + "parserRequired": false } ] }, @@ -33513,7 +33593,7 @@ "name": "bizOptOutJid", "wireName": "biz_opt_out_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] } @@ -33584,14 +33664,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorUpdateOptoutErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorNotAcceptable", @@ -33601,7 +33681,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -33609,14 +33689,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -33624,14 +33704,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -33662,7 +33742,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -33670,7 +33750,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -33699,7 +33779,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -33707,7 +33787,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -33736,7 +33816,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -33744,7 +33824,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -33819,14 +33899,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorFeatureNotImplemented", @@ -33836,7 +33916,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -33844,7 +33924,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -33873,7 +33953,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -33881,7 +33961,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -33944,7 +34024,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -33952,7 +34032,7 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true } ], "variants": [ @@ -33984,7 +34064,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -33992,7 +34072,7 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true } ] } @@ -34031,7 +34111,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -34039,7 +34119,7 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true } ], "variants": [ @@ -34071,7 +34151,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -34079,7 +34159,7 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true } ] } @@ -34118,7 +34198,7 @@ "name": "privacyAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "lid", "sourcePath": [ "privacy" @@ -34129,21 +34209,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "privacyList", "type": "string", - "required": false, + "parserRequired": false, "tag": "list", "children": [ { @@ -34151,13 +34231,13 @@ "name": "dhash", "wireName": "dhash", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "user", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { @@ -34165,13 +34245,13 @@ "name": "jid", "wireName": "jid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "", "name": "contactListIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Username", @@ -34181,7 +34261,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -34193,7 +34273,7 @@ "name": "pnJid", "wireName": "pn_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -34242,7 +34322,7 @@ "name": "privacyAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "lid", "sourcePath": [ "privacy" @@ -34253,21 +34333,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "privacyList", "type": "string", - "required": false, + "parserRequired": false, "tag": "list", "children": [ { @@ -34275,13 +34355,13 @@ "name": "dhash", "wireName": "dhash", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "user", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { @@ -34289,13 +34369,13 @@ "name": "jid", "wireName": "jid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "", "name": "contactListIds", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Username", @@ -34305,7 +34385,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -34317,7 +34397,7 @@ "name": "pnJid", "wireName": "pn_jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -34366,7 +34446,7 @@ "name": "privacyAddressingMode", "wireName": "addressing_mode", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "pn", "sourcePath": [ "privacy" @@ -34377,21 +34457,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "privacyList", "type": "string", - "required": false, + "parserRequired": false, "tag": "list", "children": [ { @@ -34399,13 +34479,13 @@ "name": "dhash", "wireName": "dhash", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "user", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { @@ -34413,14 +34493,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": false + "parserRequired": false } ], "repeats": true @@ -34488,21 +34568,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetPrivacyListError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -34512,7 +34592,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -34520,7 +34600,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -34549,7 +34629,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -34557,7 +34637,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -34586,7 +34666,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -34594,7 +34674,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -34623,7 +34703,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -34631,7 +34711,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -34660,7 +34740,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -34668,7 +34748,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -34749,27 +34829,27 @@ "method": "child", "name": "privacy", "type": "string", - "required": true, + "parserRequired": true, "tag": "privacy", "children": [ { "method": "maybeChild", "name": "list", "type": "string", - "required": false, + "parserRequired": false, "tag": "list", "children": [ { "method": "mapChildren", "name": "children", "type": "string", - "required": true, + "parserRequired": true, "children": [ { "method": "attrDeviceJid", "name": "jid", "type": "device_jid", - "required": true + "parserRequired": true } ], "repeats": true @@ -34778,7 +34858,7 @@ "method": "attrString", "name": "dhash", "type": "string", - "required": true + "parserRequired": true } ] } @@ -34834,40 +34914,40 @@ "method": "child", "name": "privacy", "type": "string", - "required": true, + "parserRequired": true, "tag": "privacy", "children": [ { "method": "forEachChildWithTag", "name": "category", "type": "string", - "required": true, + "parserRequired": true, "tag": "category", "children": [ { "method": "attrString", "name": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeChild", "name": "error", "type": "string", - "required": false, + "parserRequired": false, "tag": "error", "children": [ { "method": "maybeAttrString", "name": "code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "text", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -34875,7 +34955,7 @@ "method": "dispatch", "name": "name_dispatch", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "readreceipts", @@ -34885,7 +34965,8 @@ "name": "readReceipts", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ALL_NONE_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -34922,7 +35003,8 @@ "name": "lastSeen", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "VISIBILITY_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -34967,7 +35049,8 @@ "name": "online", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ONLINE_VISIBILITY_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -35004,7 +35087,8 @@ "name": "profilePicture", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "VISIBILITY_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -35049,7 +35133,8 @@ "name": "about", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "VISIBILITY_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -35094,7 +35179,8 @@ "name": "groupAdd", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "VISIBILITY_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -35139,7 +35225,8 @@ "name": "callAdd", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "CALL_ADD_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -35180,7 +35267,8 @@ "name": "messages", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ALL_CONTACTS", "module": "WAWebPrivacySettings", @@ -35213,7 +35301,8 @@ "name": "defenseMode", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "DEFENSE_MODE_STATE", "module": "WAWebPrivacySettings", @@ -35246,7 +35335,8 @@ "name": "pix", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "VISIBILITY_WITH_ERROR", "module": "WAWebPrivacySettings", @@ -35456,40 +35546,40 @@ "method": "child", "name": "privacy", "type": "string", - "required": true, + "parserRequired": true, "tag": "privacy", "children": [ { "method": "mapChildrenWithTag", "name": "category", "type": "string", - "required": true, + "parserRequired": true, "tag": "category", "children": [ { "method": "attrString", "name": "value", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "error", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { "method": "attrInt", "name": "code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "text", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -35497,13 +35587,13 @@ "method": "attrString", "name": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "dhash", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -35568,7 +35658,7 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ] } @@ -35623,27 +35713,27 @@ "method": "child", "name": "privacy", "type": "string", - "required": true, + "parserRequired": true, "tag": "privacy", "children": [ { "method": "child", "name": "category", "type": "string", - "required": true, + "parserRequired": true, "tag": "category", "children": [ { "method": "attrString", "name": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "type": "string", - "required": true + "parserRequired": true } ] } @@ -35704,7 +35794,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -35712,7 +35802,7 @@ "name": "signCredentialT", "wireName": "t", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "sign_credential" ] @@ -35721,7 +35811,7 @@ "method": "contentBytes", "name": "signCredentialSignedCredentialElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35732,7 +35822,7 @@ "method": "contentBytes", "name": "signCredentialAcsPublicKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35743,7 +35833,7 @@ "method": "contentBytes", "name": "signCredentialDleqProofCElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35755,7 +35845,7 @@ "method": "contentBytes", "name": "signCredentialDleqProofSElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35767,7 +35857,7 @@ "method": "contentString", "name": "signCredentialProjectNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "sign_credential", "project_name" @@ -35810,7 +35900,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -35818,7 +35908,7 @@ "name": "signCredentialT", "wireName": "t", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "sign_credential" ] @@ -35827,7 +35917,7 @@ "method": "contentBytes", "name": "signCredentialSignedCredentialElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35838,7 +35928,7 @@ "method": "contentBytes", "name": "signCredentialAcsPublicKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35849,7 +35939,7 @@ "method": "contentBytes", "name": "signCredentialDleqProofCElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35861,7 +35951,7 @@ "method": "contentBytes", "name": "signCredentialDleqProofSElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32, "sourcePath": [ "sign_credential", @@ -35873,7 +35963,7 @@ "method": "contentString", "name": "signCredentialProjectNameElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "sign_credential", "project_name" @@ -35933,14 +36023,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSignCredentialNoRetryError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -35950,7 +36040,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -35958,7 +36048,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -35987,7 +36077,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -35995,7 +36085,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -36024,7 +36114,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -36032,7 +36122,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -36100,7 +36190,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -36108,7 +36198,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -36116,7 +36206,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -36127,7 +36217,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -36181,21 +36271,21 @@ "method": "child", "name": "sign_credential", "type": "string", - "required": true, + "parserRequired": true, "tag": "sign_credential", "children": [ { "method": "child", "name": "signed_credential", "type": "string", - "required": true, + "parserRequired": true, "tag": "signed_credential", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -36204,14 +36294,14 @@ "method": "child", "name": "acs_public_key", "type": "string", - "required": true, + "parserRequired": true, "tag": "acs_public_key", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -36300,28 +36390,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -36359,28 +36449,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -36449,21 +36539,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSpamIqErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -36473,7 +36563,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -36481,7 +36571,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -36510,7 +36600,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -36518,7 +36608,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -36547,7 +36637,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -36555,7 +36645,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -36584,7 +36674,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -36592,7 +36682,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -36621,14 +36711,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "548" } ], @@ -36652,7 +36742,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -36660,7 +36750,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -36762,28 +36852,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -36821,28 +36911,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -36911,21 +37001,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSpamIqErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -36935,7 +37025,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -36943,7 +37033,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -36972,7 +37062,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -36980,7 +37070,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -37009,7 +37099,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -37017,7 +37107,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -37046,7 +37136,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -37054,7 +37144,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -37083,14 +37173,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "548" } ], @@ -37114,7 +37204,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -37122,7 +37212,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -37215,28 +37305,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -37274,28 +37364,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -37364,21 +37454,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSpamIqErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -37388,7 +37478,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -37396,7 +37486,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -37425,7 +37515,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -37433,7 +37523,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -37462,7 +37552,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -37470,7 +37560,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -37499,7 +37589,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -37507,7 +37597,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -37536,14 +37626,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "548" } ], @@ -37567,7 +37657,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -37575,7 +37665,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -37662,28 +37752,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -37721,28 +37811,28 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -37811,21 +37901,21 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSpamIqErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -37835,7 +37925,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -37843,7 +37933,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -37872,7 +37962,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -37880,7 +37970,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -37909,7 +37999,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -37917,7 +38007,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -37946,7 +38036,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -37954,7 +38044,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -37983,14 +38073,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "548" } ], @@ -38014,7 +38104,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -38022,7 +38112,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -38109,28 +38199,28 @@ "name": "from", "wireName": "from", "type": "jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -38168,28 +38258,28 @@ "name": "from", "wireName": "from", "type": "jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "reportIdMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "reportId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "report" ] @@ -38249,21 +38339,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorIQErrorInternalServerErrorOrBadRequestOrForbiddenOrRateOverlimitMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -38273,7 +38363,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -38281,7 +38371,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -38310,7 +38400,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -38318,7 +38408,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -38347,7 +38437,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -38355,7 +38445,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -38384,7 +38474,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -38392,7 +38482,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -38460,7 +38550,7 @@ "method": "attrInt", "name": "id", "type": "integer", - "required": true + "parserRequired": true } ] } @@ -38509,14 +38599,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { @@ -38524,35 +38614,35 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "version", "wireName": "version", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "type", "wireName": "type", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "id", "wireName": "id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "stage", "wireName": "stage", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 1000 } @@ -38596,14 +38686,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { @@ -38611,35 +38701,35 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "version", "wireName": "version", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "type", "wireName": "type", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "id", "wireName": "id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "stage", "wireName": "stage", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 1000 } @@ -38688,7 +38778,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -38696,7 +38786,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -38704,7 +38794,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -38715,7 +38805,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -38767,14 +38857,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorUserNoticeServerError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -38784,7 +38874,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -38792,7 +38882,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -38821,7 +38911,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -38829,7 +38919,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -38898,14 +38988,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { @@ -38913,35 +39003,35 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "version", "wireName": "version", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "type", "wireName": "type", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "id", "wireName": "id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "stage", "wireName": "stage", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 1000 } @@ -38985,14 +39075,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { @@ -39000,35 +39090,35 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "version", "wireName": "version", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "type", "wireName": "type", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "id", "wireName": "id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "stage", "wireName": "stage", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 1000 } @@ -39077,7 +39167,7 @@ "method": "child", "name": "errorIQErrorBadRequestMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -39085,7 +39175,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -39093,7 +39183,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -39104,7 +39194,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -39156,14 +39246,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorUserNoticeServerError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -39173,7 +39263,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -39181,7 +39271,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -39210,7 +39300,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -39218,7 +39308,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -39305,33 +39395,33 @@ "method": "child", "name": "tos", "type": "string", - "required": true, + "parserRequired": true, "tag": "tos", "children": [ { "method": "attrInt", "name": "refresh", "type": "integer", - "required": true + "parserRequired": true }, { "method": "forEachChildWithTag", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { "method": "maybeAttrString", "name": "state", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -39401,14 +39491,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "notice", "type": "string", - "required": false, + "parserRequired": false, "tag": "notice", "children": [ { @@ -39416,21 +39506,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "id", "wireName": "id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "stage", "wireName": "stage", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 1000 } @@ -39511,14 +39601,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "trackable", "type": "string", - "required": false, + "parserRequired": false, "tag": "trackable", "children": [ { @@ -39526,14 +39616,14 @@ "name": "id", "wireName": "id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "result", "wireName": "result", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 1000 } @@ -39592,33 +39682,33 @@ "method": "child", "name": "tos", "type": "string", - "required": true, + "parserRequired": true, "tag": "tos", "children": [ { "method": "attrInt", "name": "refresh", "type": "integer", - "required": true + "parserRequired": true }, { "method": "forEachChildWithTag", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { "method": "maybeAttrString", "name": "state", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -39691,33 +39781,33 @@ "method": "child", "name": "tos", "type": "string", - "required": true, + "parserRequired": true, "tag": "tos", "children": [ { "method": "attrInt", "name": "refresh", "type": "integer", - "required": true + "parserRequired": true }, { "method": "forEachChildWithTag", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { "method": "maybeAttrString", "name": "state", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -39823,7 +39913,7 @@ "name": "acceptPayOutage", "wireName": "outage", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "1", "sourcePath": [ "accept_pay" @@ -39834,7 +39924,7 @@ "name": "acceptPaySandbox", "wireName": "sandbox", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "1", "sourcePath": [ "accept_pay" @@ -39845,14 +39935,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "acceptPaySetPaymentsTOSv3BRConsumerOrSetPaymentsTOSv3UPIConsumerPaymentsTOSv3ResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "SetPaymentsTOSv3BRConsumerPaymentsTOSv3Response", @@ -39862,14 +39952,14 @@ "name": "service", "wireName": "service", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "FBPAY" }, { "method": "child", "name": "additionalNotice", "type": "string", - "required": true, + "parserRequired": true, "tag": "additional_notice", "children": [ { @@ -39877,7 +39967,8 @@ "name": "notice", "wireName": "notice", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_BRP2PCONSENT_BRPAYPRIVACYPOLICY_BRPAYTOS_BRPAYWATOS", "module": "WASmaxInAccountEnums", @@ -39925,14 +40016,14 @@ "name": "service", "wireName": "service", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "UPI" }, { "method": "child", "name": "additionalNotice", "type": "string", - "required": true, + "parserRequired": true, "tag": "additional_notice", "children": [ { @@ -39940,7 +40031,8 @@ "name": "notice", "wireName": "notice", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_PAYTOSV3_UPIPAYPRIVACYPOLICY", "module": "WASmaxInAccountEnums", @@ -40014,7 +40106,7 @@ "name": "acceptPayOutage", "wireName": "outage", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "1", "sourcePath": [ "accept_pay" @@ -40025,7 +40117,7 @@ "name": "acceptPaySandbox", "wireName": "sandbox", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "1", "sourcePath": [ "accept_pay" @@ -40036,14 +40128,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "acceptPaySetPaymentsTOSv3BRConsumerOrSetPaymentsTOSv3UPIConsumerPaymentsTOSv3ResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "SetPaymentsTOSv3BRConsumerPaymentsTOSv3Response", @@ -40053,14 +40145,14 @@ "name": "service", "wireName": "service", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "FBPAY" }, { "method": "child", "name": "additionalNotice", "type": "string", - "required": true, + "parserRequired": true, "tag": "additional_notice", "children": [ { @@ -40068,7 +40160,8 @@ "name": "notice", "wireName": "notice", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_BRP2PCONSENT_BRPAYPRIVACYPOLICY_BRPAYTOS_BRPAYWATOS", "module": "WASmaxInAccountEnums", @@ -40116,14 +40209,14 @@ "name": "service", "wireName": "service", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "UPI" }, { "method": "child", "name": "additionalNotice", "type": "string", - "required": true, + "parserRequired": true, "tag": "additional_notice", "children": [ { @@ -40131,7 +40224,8 @@ "name": "notice", "wireName": "notice", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_PAYTOSV3_UPIPAYPRIVACYPOLICY", "module": "WASmaxInAccountEnums", @@ -40237,14 +40331,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSetPaymentsTosErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -40254,7 +40348,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -40262,7 +40356,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -40291,7 +40385,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -40299,7 +40393,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -40328,7 +40422,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "upgrade-required" }, { @@ -40336,7 +40430,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "443" } ], @@ -40365,7 +40459,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "config-mismatch" }, { @@ -40373,7 +40467,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "453" } ], @@ -40402,7 +40496,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -40410,7 +40504,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -40439,7 +40533,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -40447,7 +40541,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -40555,14 +40649,14 @@ "method": "child", "name": "settings", "type": "string", - "required": true, + "parserRequired": true, "tag": "settings", "children": [ { "method": "attrString", "name": "webserverkey", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -40570,20 +40664,20 @@ "method": "child", "name": "error", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { "method": "attrInt", "name": "code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "text", "type": "string", - "required": true + "parserRequired": true } ] } @@ -40941,7 +41035,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -40981,7 +41075,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -41026,7 +41120,7 @@ "method": "child", "name": "errorIQErrorInternalServerErrorMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -41034,7 +41128,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -41042,7 +41136,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -41053,7 +41147,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -41098,7 +41192,7 @@ "method": "child", "name": "errorIQErrorConflictMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -41106,7 +41200,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -41114,7 +41208,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -41125,7 +41219,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -41191,20 +41285,20 @@ "method": "child", "name": "error", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { "method": "attrInt", "name": "code", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "text", "type": "string", - "required": true + "parserRequired": true } ] } @@ -41336,34 +41430,34 @@ "method": "child", "name": "usync", "type": "string", - "required": true, + "parserRequired": true, "tag": "usync", "children": [ { "method": "child", "name": "list", "type": "string", - "required": true, + "parserRequired": true, "tag": "list", "children": [ { "method": "forEachChildWithTag", "name": "user", "type": "string", - "required": true, + "parserRequired": true, "tag": "user", "children": [ { "method": "attrDeviceJid", "name": "jid", "type": "device_jid", - "required": false + "parserRequired": false }, { "method": "attrDeviceJid", "name": "pn_jid", "type": "device_jid", - "required": false + "parserRequired": false } ], "repeats": true @@ -41438,27 +41532,27 @@ "method": "child", "name": "business_profile", "type": "string", - "required": true, + "parserRequired": true, "tag": "business_profile", "children": [ { "method": "forEachChildWithTag", "name": "profile", "type": "string", - "required": true, + "parserRequired": true, "tag": "profile", "children": [ { "method": "attrJidWithType", "name": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "tag", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -41507,7 +41601,7 @@ "method": "child", "name": "verified_name", "type": "string", - "required": true, + "parserRequired": true, "tag": "verified_name", "children": [] } @@ -41577,21 +41671,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "metaVerified", "type": "string", - "required": false, + "parserRequired": false, "tag": "meta_verified", "children": [ { @@ -41599,7 +41693,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -41620,7 +41715,8 @@ "name": "shouldShowPrivacyInterstitialToNewUsers", "wireName": "should_show_privacy_interstitial_to_new_users", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizMarketingMessageEnums", @@ -41641,7 +41737,7 @@ "name": "additionalParams", "wireName": "additional_params", "type": "string", - "required": false + "parserRequired": false } ], "repeats": false @@ -41650,7 +41746,7 @@ "method": "child", "name": "marketingMessages", "type": "string", - "required": false, + "parserRequired": false, "tag": "marketing_messages", "children": [ { @@ -41658,7 +41754,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_PAUSED_SUCCESS_WARNING", "module": "WASmaxInBizMarketingMessageEnums", @@ -41687,7 +41784,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": false @@ -41696,7 +41793,7 @@ "method": "child", "name": "genai", "type": "string", - "required": false, + "parserRequired": false, "tag": "genai", "children": [ { @@ -41704,7 +41801,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -41725,7 +41823,8 @@ "name": "v1Enabled", "wireName": "v1_enabled", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizMarketingMessageEnums", @@ -41748,7 +41847,7 @@ "method": "child", "name": "genaiImage", "type": "string", - "required": false, + "parserRequired": false, "tag": "genai_image", "children": [ { @@ -41756,7 +41855,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -41779,7 +41879,7 @@ "method": "child", "name": "metaOne", "type": "string", - "required": false, + "parserRequired": false, "tag": "meta_one", "children": [ { @@ -41787,7 +41887,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -41810,7 +41911,7 @@ "method": "child", "name": "bbPro", "type": "string", - "required": false, + "parserRequired": false, "tag": "bb_pro", "children": [ { @@ -41818,7 +41919,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ELIGIBLETOONBOARD_NOTELIGIBLE_ONBOARDED", "module": "WASmaxInBizMarketingMessageEnums", @@ -41878,21 +41980,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "metaVerified", "type": "string", - "required": false, + "parserRequired": false, "tag": "meta_verified", "children": [ { @@ -41900,7 +42002,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -41921,7 +42024,8 @@ "name": "shouldShowPrivacyInterstitialToNewUsers", "wireName": "should_show_privacy_interstitial_to_new_users", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizMarketingMessageEnums", @@ -41942,7 +42046,7 @@ "name": "additionalParams", "wireName": "additional_params", "type": "string", - "required": false + "parserRequired": false } ], "repeats": false @@ -41951,7 +42055,7 @@ "method": "child", "name": "marketingMessages", "type": "string", - "required": false, + "parserRequired": false, "tag": "marketing_messages", "children": [ { @@ -41959,7 +42063,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_PAUSED_SUCCESS_WARNING", "module": "WASmaxInBizMarketingMessageEnums", @@ -41988,7 +42093,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": false @@ -41997,7 +42102,7 @@ "method": "child", "name": "genai", "type": "string", - "required": false, + "parserRequired": false, "tag": "genai", "children": [ { @@ -42005,7 +42110,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -42026,7 +42132,8 @@ "name": "v1Enabled", "wireName": "v1_enabled", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizMarketingMessageEnums", @@ -42049,7 +42156,7 @@ "method": "child", "name": "genaiImage", "type": "string", - "required": false, + "parserRequired": false, "tag": "genai_image", "children": [ { @@ -42057,7 +42164,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -42080,7 +42188,7 @@ "method": "child", "name": "metaOne", "type": "string", - "required": false, + "parserRequired": false, "tag": "meta_one", "children": [ { @@ -42088,7 +42196,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAIL_SUCCESS", "module": "WASmaxInBizMarketingMessageEnums", @@ -42111,7 +42220,7 @@ "method": "child", "name": "bbPro", "type": "string", - "required": false, + "parserRequired": false, "tag": "bb_pro", "children": [ { @@ -42119,7 +42228,8 @@ "name": "status", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ELIGIBLETOONBOARD_NOTELIGIBLE_ONBOARDED", "module": "WASmaxInBizMarketingMessageEnums", @@ -42201,21 +42311,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorIQErrorBadRequestOrForbiddenOrInternalServerErrorOrServiceUnavailableMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -42225,7 +42335,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -42233,7 +42343,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -42262,7 +42372,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -42270,7 +42380,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -42299,7 +42409,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -42307,7 +42417,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -42336,7 +42446,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -42344,7 +42454,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -42406,7 +42516,7 @@ "method": "child", "name": "privacySmbDataSharingSettingMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "privacy", "children": [ { @@ -42414,7 +42524,8 @@ "name": "value", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_NOTSET_TRUE", "module": "WASmaxInBizSettingsEnums", @@ -42442,7 +42553,7 @@ "name": "version", "wireName": "version", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "smb_data_sharing_with_meta_consent" ] @@ -42455,7 +42566,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -42494,7 +42605,7 @@ "method": "child", "name": "privacySmbDataSharingSettingMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "privacy", "children": [ { @@ -42502,7 +42613,8 @@ "name": "value", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_NOTSET_TRUE", "module": "WASmaxInBizSettingsEnums", @@ -42530,7 +42642,7 @@ "name": "version", "wireName": "version", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "smb_data_sharing_with_meta_consent" ] @@ -42543,7 +42655,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -42605,14 +42717,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorPrivacySettingErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -42622,7 +42734,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -42630,7 +42742,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -42659,7 +42771,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -42667,7 +42779,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -42696,7 +42808,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -42704,7 +42816,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -42733,7 +42845,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -42741,7 +42853,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -42871,7 +42983,7 @@ "name": "costBeforeTax", "wireName": "before_tax", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -42881,7 +42993,7 @@ "name": "costTax", "wireName": "tax", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -42891,7 +43003,7 @@ "name": "costOffset", "wireName": "offset", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -42901,7 +43013,7 @@ "name": "costCurrency", "wireName": "currency", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -42911,7 +43023,7 @@ "name": "costBase", "wireName": "base", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -42921,7 +43033,7 @@ "name": "costBaseFormatted", "wireName": "base_formatted", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -42931,7 +43043,7 @@ "name": "costDiscountPercent", "wireName": "discount_percent", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -42941,7 +43053,7 @@ "name": "costBeforeDiscount", "wireName": "before_discount", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -42951,7 +43063,7 @@ "name": "costBeforeDiscountFormatted", "wireName": "before_discount_formatted", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -42961,7 +43073,8 @@ "name": "integrityIsEligible", "wireName": "is_eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInSmbMeteredMessagingAccountEnums", @@ -42985,7 +43098,7 @@ "name": "accountBalanceBilling", "wireName": "billing", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "account_balance" ] @@ -42995,7 +43108,7 @@ "name": "accountBalanceAvailable", "wireName": "available", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "account_balance" ] @@ -43005,7 +43118,7 @@ "name": "accountBalanceOffset", "wireName": "offset", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "account_balance" ] @@ -43015,28 +43128,28 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "costDiscounts", "type": "string", - "required": false, + "parserRequired": false, "tag": "discounts", "children": [ { "method": "child", "name": "discount", "type": "string", - "required": true, + "parserRequired": true, "tag": "discount", "children": [ { @@ -43044,7 +43157,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FREEMSG_PERCENTAGE", "module": "WASmaxInSmbMeteredMessagingAccountEnums", @@ -43065,21 +43179,21 @@ "name": "percentage", "wireName": "percentage", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "amount", "wireName": "amount", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "amountFormatted", "wireName": "amount_formatted", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -43094,7 +43208,7 @@ "method": "child", "name": "quota", "type": "string", - "required": false, + "parserRequired": false, "tag": "quota", "children": [ { @@ -43102,28 +43216,28 @@ "name": "remaining", "wireName": "remaining", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "totalMonthly", "wireName": "total_monthly", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "singleCredits", "wireName": "single_credits", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "totalAvailableCredits", "wireName": "total_available_credits", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": false @@ -43132,7 +43246,7 @@ "method": "child", "name": "offerStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "offer_status", "children": [ { @@ -43140,7 +43254,8 @@ "name": "value", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ALREADYCLAIMED_EXPIRED_INVALID_NOTFOUND_NOTOWNED_VALID", "module": "WASmaxInSmbMeteredMessagingAccountEnums", @@ -43212,7 +43327,7 @@ "name": "costBeforeTax", "wireName": "before_tax", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -43222,7 +43337,7 @@ "name": "costTax", "wireName": "tax", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -43232,7 +43347,7 @@ "name": "costOffset", "wireName": "offset", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -43242,7 +43357,7 @@ "name": "costCurrency", "wireName": "currency", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "cost" ] @@ -43252,7 +43367,7 @@ "name": "costBase", "wireName": "base", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -43262,7 +43377,7 @@ "name": "costBaseFormatted", "wireName": "base_formatted", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -43272,7 +43387,7 @@ "name": "costDiscountPercent", "wireName": "discount_percent", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -43282,7 +43397,7 @@ "name": "costBeforeDiscount", "wireName": "before_discount", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -43292,7 +43407,7 @@ "name": "costBeforeDiscountFormatted", "wireName": "before_discount_formatted", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "cost" ] @@ -43302,7 +43417,8 @@ "name": "integrityIsEligible", "wireName": "is_eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInSmbMeteredMessagingAccountEnums", @@ -43326,7 +43442,7 @@ "name": "accountBalanceBilling", "wireName": "billing", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "account_balance" ] @@ -43336,7 +43452,7 @@ "name": "accountBalanceAvailable", "wireName": "available", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "account_balance" ] @@ -43346,7 +43462,7 @@ "name": "accountBalanceOffset", "wireName": "offset", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "account_balance" ] @@ -43356,28 +43472,28 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "costDiscounts", "type": "string", - "required": false, + "parserRequired": false, "tag": "discounts", "children": [ { "method": "child", "name": "discount", "type": "string", - "required": true, + "parserRequired": true, "tag": "discount", "children": [ { @@ -43385,7 +43501,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FREEMSG_PERCENTAGE", "module": "WASmaxInSmbMeteredMessagingAccountEnums", @@ -43406,21 +43523,21 @@ "name": "percentage", "wireName": "percentage", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "amount", "wireName": "amount", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "amountFormatted", "wireName": "amount_formatted", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -43435,7 +43552,7 @@ "method": "child", "name": "quota", "type": "string", - "required": false, + "parserRequired": false, "tag": "quota", "children": [ { @@ -43443,28 +43560,28 @@ "name": "remaining", "wireName": "remaining", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "totalMonthly", "wireName": "total_monthly", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "singleCredits", "wireName": "single_credits", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "totalAvailableCredits", "wireName": "total_available_credits", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": false @@ -43473,7 +43590,7 @@ "method": "child", "name": "offerStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "offer_status", "children": [ { @@ -43481,7 +43598,8 @@ "name": "value", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ALREADYCLAIMED_EXPIRED_INVALID_NOTFOUND_NOTOWNED_VALID", "module": "WASmaxInSmbMeteredMessagingAccountEnums", @@ -43590,21 +43708,21 @@ "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetSmbMeteredMessagingCheckoutIqErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -43614,7 +43732,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -43622,7 +43740,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -43651,7 +43769,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -43659,7 +43777,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -43688,7 +43806,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -43696,7 +43814,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -43725,7 +43843,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -43733,7 +43851,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -43762,7 +43880,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -43770,7 +43888,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -43799,7 +43917,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-limit" }, { @@ -43807,7 +43925,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "482" } ], @@ -43836,7 +43954,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -43844,7 +43962,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -43906,7 +44024,7 @@ "method": "child", "name": "privacySmbDataSharingSettingMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "privacy", "children": [ { @@ -43914,7 +44032,8 @@ "name": "value", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_NOTSET_TRUE", "module": "WASmaxInBizSettingsEnums", @@ -43942,7 +44061,7 @@ "name": "version", "wireName": "version", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "smb_data_sharing_with_meta_consent" ] @@ -43955,7 +44074,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -43994,7 +44113,7 @@ "method": "child", "name": "privacySmbDataSharingSettingMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "privacy", "children": [ { @@ -44002,7 +44121,8 @@ "name": "value", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_NOTSET_TRUE", "module": "WASmaxInBizSettingsEnums", @@ -44030,7 +44150,7 @@ "name": "version", "wireName": "version", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "smb_data_sharing_with_meta_consent" ] @@ -44043,7 +44163,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -44105,14 +44225,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorPrivacySettingErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -44122,7 +44242,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -44130,7 +44250,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -44159,7 +44279,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -44167,7 +44287,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -44196,7 +44316,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -44204,7 +44324,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -44233,7 +44353,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -44241,7 +44361,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -44316,7 +44436,8 @@ "attrs": [ { "name": "to", - "kind": "dynamic", + "kind": "const", + "value": "s.whatsapp.net", "required": true }, { @@ -44758,7 +44879,7 @@ "method": "maybeChild", "name": "signed_user_info", "type": "string", - "required": false, + "parserRequired": false, "tag": "signed_user_info", "children": [] } @@ -44823,28 +44944,28 @@ "method": "child", "name": "product_list", "type": "string", - "required": true, + "parserRequired": true, "tag": "product_list", "children": [ { "method": "forEachChildWithTag", "name": "product", "type": "string", - "required": true, + "parserRequired": true, "tag": "product", "children": [ { "method": "maybeChild", "name": "id", "type": "string", - "required": false, + "parserRequired": false, "tag": "id", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "contentType": "string" @@ -44853,14 +44974,14 @@ "method": "maybeChild", "name": "status", "type": "string", - "required": false, + "parserRequired": false, "tag": "status", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "contentType": "string" @@ -44921,7 +45042,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -44961,7 +45082,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -45023,14 +45144,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorUpdatePreferenceReqErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorNotAcceptable", @@ -45040,7 +45161,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -45048,14 +45169,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -45063,14 +45184,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -45101,7 +45222,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -45109,7 +45230,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -45138,7 +45259,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -45146,7 +45267,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -45175,7 +45296,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -45183,7 +45304,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -45258,14 +45379,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorUpdatePreferenceServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorFeatureNotImplemented", @@ -45275,7 +45396,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -45283,7 +45404,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -45312,7 +45433,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -45320,7 +45441,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -45404,7 +45525,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -45444,7 +45565,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -45501,14 +45622,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorEventErrorTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -45518,7 +45639,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -45526,7 +45647,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -45555,7 +45676,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -45563,7 +45684,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -45592,7 +45713,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -45600,7 +45721,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -45670,7 +45791,8 @@ "name": "blockingStatus", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_BLOCKED_UNBLOCKED", "module": "WASmaxInPsaEnums", @@ -45694,7 +45816,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -45734,7 +45856,8 @@ "name": "blockingStatus", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_BLOCKED_UNBLOCKED", "module": "WASmaxInPsaEnums", @@ -45758,7 +45881,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -45820,14 +45943,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorChatBlockError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -45837,7 +45960,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -45845,7 +45968,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -45874,7 +45997,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -45882,7 +46005,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -45911,7 +46034,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -45919,7 +46042,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -45948,7 +46071,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -45956,7 +46079,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -46025,7 +46148,8 @@ "name": "blockingStatus", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_BLOCKED_UNBLOCKED", "module": "WASmaxInPsaEnums", @@ -46049,7 +46173,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -46089,7 +46213,8 @@ "name": "blockingStatus", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_BLOCKED_UNBLOCKED", "module": "WASmaxInPsaEnums", @@ -46113,7 +46238,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -46175,14 +46300,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorChatBlockError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -46192,7 +46317,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -46200,7 +46325,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -46229,7 +46354,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -46237,7 +46362,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -46266,7 +46391,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -46274,7 +46399,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -46303,7 +46428,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -46311,7 +46436,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -46346,7 +46471,7 @@ "moduleName": "WASmaxOutGroupsBatchGetGroupInfoRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "g.us", "parserName": "WASmaxGroupsBatchGetGroupInfoRPC", "exportedFunction": "makeBatchGetGroupInfoRequestQueryGroup", "allExports": [ @@ -46356,7 +46481,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "g.us", "children": [ { "tag": "query", @@ -46394,35 +46519,36 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "groupsGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { "method": "", "name": "dedupAttrsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -46449,7 +46575,7 @@ "method": "", "name": "groupInfoOrTruncatedGroupInfoOrGroupForbiddenOrGroupNotExistMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfo", @@ -46459,7 +46585,7 @@ "name": "ack", "wireName": "ack", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "false" }, { @@ -46467,78 +46593,79 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -46560,21 +46687,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -46582,15 +46709,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -46601,21 +46728,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -46623,15 +46750,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -46639,15 +46766,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -46659,7 +46786,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -46669,7 +46796,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -46681,7 +46808,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -46691,19 +46818,19 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "groupMemberAddModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -46740,7 +46867,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -46761,14 +46888,14 @@ { "method": "", "name": "groupMemberLinkModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -46805,7 +46932,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -46826,14 +46953,14 @@ { "method": "", "name": "groupMemberShareGroupHistoryModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -46870,7 +46997,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -46892,41 +47019,41 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "", "name": "groupInfoDescriptionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -46934,21 +47061,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -46956,15 +47083,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -46982,33 +47109,33 @@ "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -47021,19 +47148,19 @@ "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasSupport", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -47041,7 +47168,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -47050,7 +47177,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -47061,7 +47188,7 @@ "method": "child", "name": "suspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -47069,7 +47196,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -47079,7 +47206,7 @@ "method": "child", "name": "appealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -47087,7 +47214,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -47118,7 +47246,7 @@ "method": "child", "name": "appealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -47126,7 +47254,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -47135,7 +47263,7 @@ "method": "child", "name": "growthLocked", "type": "string", - "required": false, + "parserRequired": false, "tag": "growth_locked", "children": [ { @@ -47143,7 +47271,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "invite" }, { @@ -47151,7 +47279,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -47160,27 +47288,27 @@ "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalGroupJoinModeEnabledMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -47196,43 +47324,43 @@ "method": "", "name": "hasIncognito", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAutoAddDisabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -47240,7 +47368,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -47249,19 +47377,19 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "evolutionVersion", "type": "string", - "required": false, + "parserRequired": false, "tag": "evolution_version", "children": [ { @@ -47269,7 +47397,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 } @@ -47280,19 +47408,19 @@ "method": "", "name": "hasGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "limitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -47300,7 +47428,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -47311,14 +47439,14 @@ "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -47328,7 +47456,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -47349,28 +47478,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -47390,7 +47520,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -47400,21 +47530,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47432,13 +47562,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -47448,14 +47578,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -47467,7 +47597,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -47479,7 +47609,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -47490,7 +47620,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47508,14 +47638,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47533,13 +47663,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -47549,14 +47679,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -47568,7 +47698,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -47580,7 +47710,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -47602,14 +47732,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47627,7 +47757,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47655,28 +47785,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -47696,7 +47827,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -47706,21 +47837,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47738,13 +47869,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -47754,14 +47885,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -47773,7 +47904,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -47785,7 +47916,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -47796,7 +47927,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47814,14 +47945,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47839,13 +47970,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -47855,14 +47986,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -47874,7 +48005,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -47886,7 +48017,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -47908,14 +48039,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47933,7 +48064,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -47958,15 +48089,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -47991,14 +48122,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "truncated", "wireName": "truncated", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" }, { @@ -48006,7 +48137,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999 } @@ -48031,14 +48162,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -48062,14 +48193,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -48130,35 +48261,36 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "groupsGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { "method": "", "name": "dedupAttrsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -48185,7 +48317,7 @@ "method": "", "name": "groupInfoOrTruncatedGroupInfoOrGroupForbiddenOrGroupNotExistMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfo", @@ -48195,7 +48327,7 @@ "name": "ack", "wireName": "ack", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "false" }, { @@ -48203,78 +48335,79 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -48296,21 +48429,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -48318,15 +48451,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -48337,21 +48470,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -48359,15 +48492,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -48375,15 +48508,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -48395,7 +48528,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -48405,7 +48538,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -48417,7 +48550,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -48427,19 +48560,19 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "groupMemberAddModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -48476,7 +48609,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -48497,14 +48630,14 @@ { "method": "", "name": "groupMemberLinkModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -48541,7 +48674,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -48562,14 +48695,14 @@ { "method": "", "name": "groupMemberShareGroupHistoryModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -48606,7 +48739,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -48628,41 +48761,41 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "", "name": "groupInfoDescriptionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -48670,21 +48803,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -48692,15 +48825,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -48718,33 +48851,33 @@ "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -48757,19 +48890,19 @@ "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasSupport", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -48777,7 +48910,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -48786,7 +48919,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -48797,7 +48930,7 @@ "method": "child", "name": "suspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -48805,7 +48938,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -48815,7 +48948,7 @@ "method": "child", "name": "appealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -48823,7 +48956,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -48854,7 +48988,7 @@ "method": "child", "name": "appealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -48862,7 +48996,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -48871,7 +49005,7 @@ "method": "child", "name": "growthLocked", "type": "string", - "required": false, + "parserRequired": false, "tag": "growth_locked", "children": [ { @@ -48879,7 +49013,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "invite" }, { @@ -48887,7 +49021,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -48896,27 +49030,27 @@ "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalGroupJoinModeEnabledMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -48932,43 +49066,43 @@ "method": "", "name": "hasIncognito", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAutoAddDisabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -48976,7 +49110,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -48985,19 +49119,19 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "evolutionVersion", "type": "string", - "required": false, + "parserRequired": false, "tag": "evolution_version", "children": [ { @@ -49005,7 +49139,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 } @@ -49016,19 +49150,19 @@ "method": "", "name": "hasGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "limitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -49036,7 +49170,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -49047,14 +49181,14 @@ "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -49064,7 +49198,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -49085,28 +49220,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -49126,7 +49262,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -49136,21 +49272,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49168,13 +49304,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -49184,14 +49320,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -49203,7 +49339,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -49215,7 +49351,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -49226,7 +49362,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49244,14 +49380,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49269,13 +49405,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -49285,14 +49421,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -49304,7 +49440,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -49316,7 +49452,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -49338,14 +49474,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49363,7 +49499,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49391,28 +49527,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -49432,7 +49569,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -49442,21 +49579,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49474,13 +49611,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -49490,14 +49627,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -49509,7 +49646,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -49521,7 +49658,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -49532,7 +49669,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49550,14 +49687,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49575,13 +49712,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -49591,14 +49728,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -49610,7 +49747,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -49622,7 +49759,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -49644,14 +49781,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49669,7 +49806,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -49694,15 +49831,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -49727,14 +49864,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "truncated", "wireName": "truncated", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" }, { @@ -49742,7 +49879,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999 } @@ -49767,14 +49904,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -49798,14 +49935,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -49878,14 +50015,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorBatchGetGroupInfoClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -49895,7 +50032,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -49903,7 +50040,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -49932,7 +50069,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -49940,7 +50077,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -50025,14 +50162,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -50042,7 +50179,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -50050,7 +50187,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -50079,7 +50216,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -50087,7 +50224,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -50116,7 +50253,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -50124,7 +50261,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -50153,14 +50290,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -50186,7 +50323,7 @@ "moduleName": "WASmaxOutGroupsGetGroupInfoRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsGetGroupInfoRPC", "exportedFunction": "makeGetGroupInfoRequestQueryAddRequest", "allExports": [ @@ -50196,7 +50333,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "query", @@ -50234,14 +50371,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "group", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -50249,7 +50386,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, @@ -50258,7 +50395,7 @@ "name": "ack", "wireName": "ack", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "false" }, { @@ -50266,69 +50403,70 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -50350,21 +50488,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -50372,15 +50510,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -50391,21 +50529,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -50413,15 +50551,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -50429,15 +50567,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -50449,7 +50587,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -50459,7 +50597,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -50471,7 +50609,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -50481,19 +50619,19 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "groupMemberAddModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -50530,7 +50668,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -50551,14 +50689,14 @@ { "method": "", "name": "groupMemberLinkModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -50595,7 +50733,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -50616,14 +50754,14 @@ { "method": "", "name": "groupMemberShareGroupHistoryModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -50660,7 +50798,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -50682,41 +50820,41 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "", "name": "groupInfoDescriptionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -50724,21 +50862,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -50746,15 +50884,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -50772,33 +50910,33 @@ "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -50811,19 +50949,19 @@ "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasSupport", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -50831,7 +50969,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -50840,7 +50978,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -50851,7 +50989,7 @@ "method": "child", "name": "suspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -50859,7 +50997,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -50869,7 +51007,7 @@ "method": "child", "name": "appealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -50877,7 +51015,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -50908,7 +51047,7 @@ "method": "child", "name": "appealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -50916,7 +51055,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -50925,7 +51064,7 @@ "method": "child", "name": "growthLocked", "type": "string", - "required": false, + "parserRequired": false, "tag": "growth_locked", "children": [ { @@ -50933,7 +51072,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "invite" }, { @@ -50941,7 +51080,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -50950,27 +51089,27 @@ "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalGroupJoinModeEnabledMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -50986,43 +51125,43 @@ "method": "", "name": "hasIncognito", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAutoAddDisabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -51030,7 +51169,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -51039,19 +51178,19 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "evolutionVersion", "type": "string", - "required": false, + "parserRequired": false, "tag": "evolution_version", "children": [ { @@ -51059,7 +51198,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 } @@ -51070,19 +51209,19 @@ "method": "", "name": "hasGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "limitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -51090,7 +51229,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -51101,14 +51240,14 @@ "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -51118,7 +51257,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -51139,28 +51279,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -51180,7 +51321,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -51190,21 +51331,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51222,13 +51363,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -51238,14 +51379,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -51257,7 +51398,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -51269,7 +51410,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -51280,7 +51421,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51298,14 +51439,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51323,13 +51464,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -51339,14 +51480,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -51358,7 +51499,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -51370,7 +51511,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -51392,14 +51533,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51417,7 +51558,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51445,28 +51586,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -51486,7 +51628,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -51496,21 +51638,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51528,13 +51670,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -51544,14 +51686,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -51563,7 +51705,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -51575,7 +51717,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -51586,7 +51728,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51604,14 +51746,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51629,13 +51771,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -51645,14 +51787,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -51664,7 +51806,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -51676,7 +51818,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -51698,14 +51840,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51723,7 +51865,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -51748,15 +51890,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -51768,22 +51910,23 @@ { "method": "", "name": "dedupAttrsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -51846,14 +51989,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "group", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -51861,7 +52004,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, @@ -51870,7 +52013,7 @@ "name": "ack", "wireName": "ack", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "false" }, { @@ -51878,69 +52021,70 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -51962,21 +52106,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -51984,15 +52128,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -52003,21 +52147,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -52025,15 +52169,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -52041,15 +52185,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -52061,7 +52205,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -52071,7 +52215,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -52083,7 +52227,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -52093,19 +52237,19 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "groupMemberAddModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -52142,7 +52286,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -52163,14 +52307,14 @@ { "method": "", "name": "groupMemberLinkModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -52207,7 +52351,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -52228,14 +52372,14 @@ { "method": "", "name": "groupMemberShareGroupHistoryModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -52272,7 +52416,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -52294,41 +52438,41 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "", "name": "groupInfoDescriptionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -52336,21 +52480,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -52358,15 +52502,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -52384,33 +52528,33 @@ "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -52423,19 +52567,19 @@ "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasSupport", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -52443,7 +52587,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -52452,7 +52596,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -52463,7 +52607,7 @@ "method": "child", "name": "suspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -52471,7 +52615,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -52481,7 +52625,7 @@ "method": "child", "name": "appealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -52489,7 +52633,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -52520,7 +52665,7 @@ "method": "child", "name": "appealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -52528,7 +52673,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -52537,7 +52682,7 @@ "method": "child", "name": "growthLocked", "type": "string", - "required": false, + "parserRequired": false, "tag": "growth_locked", "children": [ { @@ -52545,7 +52690,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "invite" }, { @@ -52553,7 +52698,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -52562,27 +52707,27 @@ "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalGroupJoinModeEnabledMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -52598,43 +52743,43 @@ "method": "", "name": "hasIncognito", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAutoAddDisabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -52642,7 +52787,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -52651,19 +52796,19 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "evolutionVersion", "type": "string", - "required": false, + "parserRequired": false, "tag": "evolution_version", "children": [ { @@ -52671,7 +52816,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 } @@ -52682,19 +52827,19 @@ "method": "", "name": "hasGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "limitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -52702,7 +52847,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -52713,14 +52858,14 @@ "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -52730,7 +52875,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -52751,28 +52897,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -52792,7 +52939,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -52802,21 +52949,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -52834,13 +52981,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -52850,14 +52997,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -52869,7 +53016,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -52881,7 +53028,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -52892,7 +53039,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -52910,14 +53057,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -52935,13 +53082,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -52951,14 +53098,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -52970,7 +53117,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -52982,7 +53129,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -53004,14 +53151,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -53029,7 +53176,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -53057,28 +53204,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -53098,7 +53246,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -53108,21 +53256,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -53140,13 +53288,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -53156,14 +53304,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -53175,7 +53323,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -53187,7 +53335,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -53198,7 +53346,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -53216,14 +53364,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -53241,13 +53389,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -53257,14 +53405,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -53276,7 +53424,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -53288,7 +53436,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -53310,14 +53458,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -53335,7 +53483,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -53360,15 +53508,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -53380,22 +53528,23 @@ { "method": "", "name": "dedupAttrsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -53490,14 +53639,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetGroupInfoClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorGone", @@ -53507,7 +53656,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "gone" }, { @@ -53515,7 +53664,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "410" } ], @@ -53544,7 +53693,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -53552,7 +53701,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -53581,7 +53730,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -53589,7 +53738,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -53618,7 +53767,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -53626,7 +53775,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -53655,7 +53804,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -53663,7 +53812,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -53692,14 +53841,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -53775,14 +53924,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -53792,7 +53941,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -53800,7 +53949,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -53829,7 +53978,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -53837,7 +53986,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -53866,7 +54015,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -53874,7 +54023,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -53903,14 +54052,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -53936,7 +54085,7 @@ "moduleName": "WASmaxOutGroupsGetGroupProfilePicturesRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "parserName": "WASmaxGroupsGetGroupProfilePicturesRPC", "exportedFunction": "makeGetGroupProfilePicturesRequest", "allExports": [ @@ -53945,7 +54094,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "unknown", "children": [] }, "response": { @@ -53957,21 +54106,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "picturesPicture", "type": "string", - "required": true, + "parserRequired": true, "tag": "picture", "children": [ { "method": "", "name": "parentOrSubGroupMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParentGroup", @@ -53981,7 +54130,7 @@ "name": "parentGroupJid", "wireName": "parent_group_jid", "type": "group_jid", - "required": true + "parserRequired": true } ] }, @@ -53993,7 +54142,7 @@ "name": "subGroupJid", "wireName": "sub_group_jid", "type": "group_jid", - "required": true + "parserRequired": true } ] } @@ -54003,7 +54152,7 @@ "method": "", "name": "getGroupProfilePicturesSuccessOrGetGroupProfilePicturesPartialProfilePictureResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GetGroupProfilePicturesSuccessProfilePictureResponse", @@ -54013,14 +54162,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_PREVIEW", "module": "WASmaxInGroupsEnums", @@ -54040,7 +54190,7 @@ "method": "", "name": "profilePictureUrlOrBlobResponseMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ProfilePictureUrlResponse", @@ -54050,14 +54200,14 @@ "name": "url", "wireName": "url", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -54074,7 +54224,7 @@ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "assertions": [ @@ -54101,7 +54251,7 @@ "method": "", "name": "pictureDidNotChangeOrPictureNotFoundOrBadServerProfilePictureErrorOrBadLinkedGroupProfilePictureErrorMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "PictureDidNotChange", @@ -54111,7 +54261,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "304" } ], @@ -54135,7 +54285,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "204" } ], @@ -54159,7 +54309,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -54183,7 +54333,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -54254,21 +54404,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "picturesPicture", "type": "string", - "required": true, + "parserRequired": true, "tag": "picture", "children": [ { "method": "", "name": "parentOrSubGroupMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParentGroup", @@ -54278,7 +54428,7 @@ "name": "parentGroupJid", "wireName": "parent_group_jid", "type": "group_jid", - "required": true + "parserRequired": true } ] }, @@ -54290,7 +54440,7 @@ "name": "subGroupJid", "wireName": "sub_group_jid", "type": "group_jid", - "required": true + "parserRequired": true } ] } @@ -54300,7 +54450,7 @@ "method": "", "name": "getGroupProfilePicturesSuccessOrGetGroupProfilePicturesPartialProfilePictureResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GetGroupProfilePicturesSuccessProfilePictureResponse", @@ -54310,14 +54460,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_PREVIEW", "module": "WASmaxInGroupsEnums", @@ -54337,7 +54488,7 @@ "method": "", "name": "profilePictureUrlOrBlobResponseMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ProfilePictureUrlResponse", @@ -54347,14 +54498,14 @@ "name": "url", "wireName": "url", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -54371,7 +54522,7 @@ "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "assertions": [ @@ -54398,7 +54549,7 @@ "method": "", "name": "pictureDidNotChangeOrPictureNotFoundOrBadServerProfilePictureErrorOrBadLinkedGroupProfilePictureErrorMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "PictureDidNotChange", @@ -54408,7 +54559,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "304" } ], @@ -54432,7 +54583,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "204" } ], @@ -54456,7 +54607,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -54480,7 +54631,7 @@ "name": "status", "wireName": "status", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -54583,14 +54734,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetGroupProfilePictureClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorItemNotFound", @@ -54600,7 +54751,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -54608,7 +54759,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -54637,7 +54788,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -54645,7 +54796,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -54674,7 +54825,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -54682,7 +54833,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -54711,7 +54862,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -54719,7 +54870,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -54748,7 +54899,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -54756,7 +54907,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -54785,14 +54936,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -54868,14 +55019,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -54885,7 +55036,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -54893,7 +55044,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -54922,7 +55073,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -54930,7 +55081,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -54959,7 +55110,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -54967,7 +55118,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -54996,14 +55147,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -55029,7 +55180,7 @@ "moduleName": "WASmaxOutGroupsGetInviteGroupInfoRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "g.us", "parserName": "WASmaxGroupsGetInviteGroupInfoRPC", "exportedFunction": "makeGetInviteGroupInfoRequest", "allExports": [ @@ -55038,7 +55189,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "g.us", "children": [ { "tag": "invite", @@ -55063,7 +55214,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -55071,7 +55222,7 @@ "name": "groupSize", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999, "sourcePath": [ @@ -55082,7 +55233,7 @@ "method": "child", "name": "groupInviteLinkGroupInfoMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -55090,7 +55241,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999 }, @@ -55098,7 +55249,7 @@ "method": "child", "name": "descriptionGroupInfoDescriptionMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -55106,27 +55257,27 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -55134,21 +55285,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -55156,15 +55307,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -55180,69 +55331,70 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -55264,21 +55416,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -55286,15 +55438,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -55305,21 +55457,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -55327,15 +55479,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -55343,15 +55495,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -55363,7 +55515,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -55373,7 +55525,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -55385,7 +55537,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -55395,13 +55547,13 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { @@ -55409,7 +55561,7 @@ "name": "numSubGroups", "wireName": "num_sub_groups", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 1000 } @@ -55420,7 +55572,7 @@ "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -55428,14 +55580,14 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -55444,25 +55596,25 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { @@ -55470,7 +55622,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -55483,7 +55635,7 @@ "method": "child", "name": "membershipApprovalRequest", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_request", "children": [ { @@ -55491,7 +55643,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "304" } ], @@ -55501,13 +55653,13 @@ "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -55515,7 +55667,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -55524,7 +55676,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -55535,20 +55687,20 @@ "method": "", "name": "hasGroupJoinContext", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -55558,7 +55710,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -55579,28 +55732,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -55620,7 +55774,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -55630,21 +55784,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -55662,13 +55816,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -55678,14 +55832,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -55697,7 +55851,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -55709,7 +55863,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -55720,7 +55874,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -55738,14 +55892,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -55763,13 +55917,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -55779,14 +55933,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -55798,7 +55952,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -55810,7 +55964,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -55832,14 +55986,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -55857,7 +56011,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -55885,28 +56039,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -55926,7 +56081,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -55936,21 +56091,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -55968,13 +56123,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -55984,14 +56139,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -56003,7 +56158,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -56015,7 +56170,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -56026,7 +56181,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -56044,14 +56199,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -56069,13 +56224,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -56085,14 +56240,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -56104,7 +56259,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -56116,7 +56271,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -56138,14 +56293,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -56163,7 +56318,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -56228,7 +56383,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -56236,7 +56391,7 @@ "name": "groupSize", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999, "sourcePath": [ @@ -56247,7 +56402,7 @@ "method": "child", "name": "groupInviteLinkGroupInfoMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -56255,7 +56410,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999 }, @@ -56263,7 +56418,7 @@ "method": "child", "name": "descriptionGroupInfoDescriptionMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -56271,27 +56426,27 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -56299,21 +56454,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -56321,15 +56476,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -56345,69 +56500,70 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -56429,21 +56585,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -56451,15 +56607,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -56470,21 +56626,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -56492,15 +56648,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -56508,15 +56664,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -56528,7 +56684,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -56538,7 +56694,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -56550,7 +56706,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -56560,13 +56716,13 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { @@ -56574,7 +56730,7 @@ "name": "numSubGroups", "wireName": "num_sub_groups", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 1000 } @@ -56585,7 +56741,7 @@ "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -56593,14 +56749,14 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -56609,25 +56765,25 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { @@ -56635,7 +56791,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -56648,7 +56804,7 @@ "method": "child", "name": "membershipApprovalRequest", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_request", "children": [ { @@ -56656,7 +56812,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "304" } ], @@ -56666,13 +56822,13 @@ "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -56680,7 +56836,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -56689,7 +56845,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -56700,20 +56856,20 @@ "method": "", "name": "hasGroupJoinContext", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -56723,7 +56879,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -56744,28 +56901,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -56785,7 +56943,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -56795,21 +56953,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -56827,13 +56985,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -56843,14 +57001,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -56862,7 +57020,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -56874,7 +57032,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -56885,7 +57043,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -56903,14 +57061,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -56928,13 +57086,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -56944,14 +57102,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -56963,7 +57121,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -56975,7 +57133,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -56997,14 +57155,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -57022,7 +57180,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -57050,28 +57208,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -57091,7 +57250,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -57101,21 +57260,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -57133,13 +57292,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -57149,14 +57308,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -57168,7 +57327,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -57180,7 +57339,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -57191,7 +57350,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -57209,14 +57368,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -57234,13 +57393,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -57250,14 +57409,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -57269,7 +57428,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -57281,7 +57440,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -57303,14 +57462,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -57328,7 +57487,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -57440,14 +57599,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetInviteGroupInfoClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -57457,7 +57616,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -57465,7 +57624,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -57494,7 +57653,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -57502,7 +57661,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -57531,7 +57690,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "gone" }, { @@ -57539,7 +57698,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "410" } ], @@ -57568,7 +57727,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -57576,7 +57735,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -57605,7 +57764,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -57613,14 +57772,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -57628,14 +57787,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -57666,7 +57825,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -57674,7 +57833,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -57703,7 +57862,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "growth-locked" }, { @@ -57711,14 +57870,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "436" }, { "method": "child", "name": "growthLocked", "type": "string", - "required": false, + "parserRequired": false, "tag": "growth_locked", "children": [ { @@ -57726,7 +57885,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "invite" }, { @@ -57734,7 +57893,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -57765,7 +57924,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "parent-group-suspended" }, { @@ -57773,7 +57932,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "416" } ], @@ -57802,14 +57961,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -57885,14 +58044,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -57902,7 +58061,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -57910,7 +58069,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -57939,7 +58098,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -57947,7 +58106,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -57976,7 +58135,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -57984,7 +58143,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -58013,14 +58172,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -58046,7 +58205,7 @@ "moduleName": "WASmaxOutGroupsGetLinkedGroupRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsGetLinkedGroupRPC", "exportedFunction": "makeGetLinkedGroupRequest", "allExports": [ @@ -58055,7 +58214,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [] }, "response": { @@ -58066,7 +58225,7 @@ "method": "child", "name": "linkedGroupLinkedGroupInfoMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "linked_group", "children": [ { @@ -58074,14 +58233,14 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "groupSize", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 19999, "sourcePath": [ @@ -58092,7 +58251,7 @@ "method": "child", "name": "groupDescriptionGroupInfoDescriptionMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -58100,27 +58259,27 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -58128,21 +58287,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -58150,15 +58309,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -58176,7 +58335,7 @@ "method": "child", "name": "groupGroupInfoAttributesMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -58184,78 +58343,79 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -58277,21 +58437,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -58299,15 +58459,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -58318,21 +58478,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -58340,15 +58500,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -58356,15 +58516,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -58376,7 +58536,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -58386,7 +58546,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -58398,7 +58558,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -58408,7 +58568,7 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true } ], "repeats": false @@ -58417,7 +58577,7 @@ "method": "child", "name": "groupGroupAddressingModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -58425,7 +58585,8 @@ "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -58448,7 +58609,7 @@ "method": "child", "name": "groupMembershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { @@ -58456,7 +58617,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -58472,7 +58633,7 @@ "method": "child", "name": "groupMembershipApprovalRequest", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_request", "children": [ { @@ -58480,7 +58641,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "304" } ], @@ -58493,19 +58654,19 @@ "method": "", "name": "hasGroupAdminRequestRequired", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupSuspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -58513,7 +58674,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -58526,7 +58687,7 @@ "method": "child", "name": "groupAppealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -58534,7 +58695,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -58568,7 +58730,7 @@ "method": "child", "name": "groupAppealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -58576,7 +58738,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false, @@ -58588,19 +58750,19 @@ "method": "", "name": "hasGroupGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupLimitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -58608,7 +58770,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -58622,14 +58784,14 @@ "method": "child", "name": "groupParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -58639,7 +58801,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -58660,28 +58823,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -58701,7 +58865,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -58711,21 +58875,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -58743,13 +58907,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -58759,14 +58923,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -58778,7 +58942,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -58790,7 +58954,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -58801,7 +58965,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -58819,14 +58983,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -58844,13 +59008,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -58860,14 +59024,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -58879,7 +59043,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -58891,7 +59055,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -58913,14 +59077,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -58938,7 +59102,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -58966,28 +59130,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -59007,7 +59172,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -59017,21 +59182,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -59049,13 +59214,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -59065,14 +59230,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -59084,7 +59249,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -59096,7 +59261,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -59107,7 +59272,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -59125,14 +59290,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -59150,13 +59315,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -59166,14 +59331,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -59185,7 +59350,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -59197,7 +59362,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -59219,14 +59384,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -59244,7 +59409,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -59280,21 +59445,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -59349,7 +59515,7 @@ "method": "child", "name": "linkedGroupLinkedGroupInfoMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "linked_group", "children": [ { @@ -59357,14 +59523,14 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "groupSize", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 19999, "sourcePath": [ @@ -59375,7 +59541,7 @@ "method": "child", "name": "groupDescriptionGroupInfoDescriptionMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -59383,27 +59549,27 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -59411,21 +59577,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -59433,15 +59599,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -59459,7 +59625,7 @@ "method": "child", "name": "groupGroupInfoAttributesMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -59467,78 +59633,79 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -59560,21 +59727,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -59582,15 +59749,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -59601,21 +59768,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -59623,15 +59790,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -59639,15 +59806,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -59659,7 +59826,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -59669,7 +59836,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -59681,7 +59848,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -59691,7 +59858,7 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true } ], "repeats": false @@ -59700,7 +59867,7 @@ "method": "child", "name": "groupGroupAddressingModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -59708,7 +59875,8 @@ "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -59731,7 +59899,7 @@ "method": "child", "name": "groupMembershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { @@ -59739,7 +59907,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -59755,7 +59923,7 @@ "method": "child", "name": "groupMembershipApprovalRequest", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_request", "children": [ { @@ -59763,7 +59931,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "304" } ], @@ -59776,19 +59944,19 @@ "method": "", "name": "hasGroupAdminRequestRequired", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupSuspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -59796,7 +59964,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -59809,7 +59977,7 @@ "method": "child", "name": "groupAppealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -59817,7 +59985,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -59851,7 +60020,7 @@ "method": "child", "name": "groupAppealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -59859,7 +60028,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false, @@ -59871,19 +60040,19 @@ "method": "", "name": "hasGroupGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupLimitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -59891,7 +60060,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -59905,14 +60074,14 @@ "method": "child", "name": "groupParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -59922,7 +60091,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -59943,28 +60113,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -59984,7 +60155,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -59994,21 +60165,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60026,13 +60197,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -60042,14 +60213,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -60061,7 +60232,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -60073,7 +60244,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -60084,7 +60255,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60102,14 +60273,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60127,13 +60298,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -60143,14 +60314,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -60162,7 +60333,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -60174,7 +60345,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -60196,14 +60367,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60221,7 +60392,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60249,28 +60420,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -60290,7 +60462,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -60300,21 +60472,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60332,13 +60504,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -60348,14 +60520,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -60367,7 +60539,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -60379,7 +60551,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -60390,7 +60562,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60408,14 +60580,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60433,13 +60605,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -60449,14 +60621,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -60468,7 +60640,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -60480,7 +60652,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -60502,14 +60674,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60527,7 +60699,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -60563,21 +60735,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -60660,14 +60833,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetLinkedGroupClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorItemNotFound", @@ -60677,7 +60850,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -60685,7 +60858,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -60714,7 +60887,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -60722,7 +60895,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -60751,7 +60924,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -60759,7 +60932,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -60788,7 +60961,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -60796,7 +60969,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -60825,14 +60998,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -60908,14 +61081,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -60925,7 +61098,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -60933,7 +61106,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -60962,7 +61135,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -60970,7 +61143,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -60999,7 +61172,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -61007,7 +61180,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -61036,14 +61209,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -61069,7 +61242,7 @@ "moduleName": "WASmaxOutGroupsGetLinkedGroupsParticipantsRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsGetLinkedGroupsParticipantsRPC", "exportedFunction": "makeGetLinkedGroupsParticipantsRequest", "allExports": [ @@ -61078,7 +61251,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "linked_groups_participants", @@ -61097,21 +61270,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -61134,7 +61308,7 @@ "method": "child", "name": "linkedGroupsParticipantsParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -61142,20 +61316,20 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -61203,21 +61377,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -61240,7 +61415,7 @@ "method": "child", "name": "linkedGroupsParticipantsParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -61248,20 +61423,20 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -61331,14 +61506,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetLinkedGroupsParticipantsClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -61348,7 +61523,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -61356,7 +61531,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -61385,7 +61560,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -61393,7 +61568,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -61422,7 +61597,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -61430,7 +61605,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -61459,7 +61634,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -61467,7 +61642,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -61552,14 +61727,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -61569,7 +61744,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -61577,7 +61752,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -61606,7 +61781,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -61614,7 +61789,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -61643,7 +61818,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -61651,7 +61826,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -61680,14 +61855,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -61713,7 +61888,7 @@ "moduleName": "WASmaxOutGroupsGetMembershipApprovalRequestsRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsGetMembershipApprovalRequestsRPC", "exportedFunction": "makeGetMembershipApprovalRequestsRequest", "allExports": [ @@ -61722,7 +61897,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "membership_approval_requests", @@ -61740,7 +61915,7 @@ "method": "child", "name": "membershipApprovalRequestsGetMembershipApprovalRequestsRequestorFetchMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_requests", "children": [ { @@ -61748,7 +61923,7 @@ "name": "requestorFetch", "wireName": "requestor_fetch", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" } ], @@ -61759,21 +61934,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -61796,7 +61972,7 @@ "method": "child", "name": "membershipApprovalRequestsMembershipApprovalRequest", "type": "string", - "required": true, + "parserRequired": true, "tag": "membership_approval_request", "children": [ { @@ -61804,49 +61980,50 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "requestor", "wireName": "requestor", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "requestorPn", "wireName": "requestor_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "requestorUsername", "wireName": "requestor_username", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrGroupJid", "name": "parentGroupJid", "wireName": "parent_group_jid", "type": "group_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "requestTime", "wireName": "request_time", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "requestMethod", "wireName": "request_method", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_INVITELINK_LINKEDGROUPJOIN_NONADMINADD", "module": "WASmaxInGroupsEnums", @@ -61869,14 +62046,14 @@ { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -61886,14 +62063,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -61905,7 +62082,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -61917,7 +62094,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -61968,7 +62145,7 @@ "method": "child", "name": "membershipApprovalRequestsGetMembershipApprovalRequestsRequestorFetchMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_requests", "children": [ { @@ -61976,7 +62153,7 @@ "name": "requestorFetch", "wireName": "requestor_fetch", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" } ], @@ -61987,21 +62164,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -62024,7 +62202,7 @@ "method": "child", "name": "membershipApprovalRequestsMembershipApprovalRequest", "type": "string", - "required": true, + "parserRequired": true, "tag": "membership_approval_request", "children": [ { @@ -62032,49 +62210,50 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "requestor", "wireName": "requestor", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "requestorPn", "wireName": "requestor_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "requestorUsername", "wireName": "requestor_username", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrGroupJid", "name": "parentGroupJid", "wireName": "parent_group_jid", "type": "group_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "requestTime", "wireName": "request_time", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "requestMethod", "wireName": "request_method", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_INVITELINK_LINKEDGROUPJOIN_NONADMINADD", "module": "WASmaxInGroupsEnums", @@ -62097,14 +62276,14 @@ { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -62114,14 +62293,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -62133,7 +62312,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -62145,7 +62324,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -62234,14 +62413,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetMembershipApprovalRequestsClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -62251,7 +62430,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -62259,7 +62438,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -62288,7 +62467,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -62296,7 +62475,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -62325,7 +62504,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -62333,7 +62512,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -62362,7 +62541,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -62370,7 +62549,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -62399,7 +62578,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -62407,7 +62586,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -62436,7 +62615,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -62444,7 +62623,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -62473,14 +62652,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -62556,14 +62735,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -62573,7 +62752,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -62581,7 +62760,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -62610,7 +62789,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -62618,7 +62797,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -62647,7 +62826,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -62655,7 +62834,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -62684,14 +62863,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -62717,7 +62896,7 @@ "moduleName": "WASmaxOutGroupsGetParticipatingGroupsRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "g.us", "parserName": "WASmaxGroupsGetParticipatingGroupsRPC", "exportedFunction": "makeGetParticipatingGroupsRequestParticipatingParticipants", "allExports": [ @@ -62728,7 +62907,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "g.us", "children": [ { "tag": "participating", @@ -62760,35 +62939,36 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "groupsGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { "method": "", "name": "dedupAttrsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -62815,7 +62995,7 @@ "method": "", "name": "groupInfoOrTruncatedGroupInfoGroupInfoMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfo", @@ -62825,7 +63005,7 @@ "name": "ack", "wireName": "ack", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "false" }, { @@ -62833,78 +63013,79 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -62926,21 +63107,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -62948,15 +63129,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -62967,21 +63148,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -62989,15 +63170,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -63005,15 +63186,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -63025,7 +63206,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -63035,7 +63216,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -63047,7 +63228,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -63057,19 +63238,19 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "groupMemberAddModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -63106,7 +63287,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -63127,14 +63308,14 @@ { "method": "", "name": "groupMemberLinkModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -63171,7 +63352,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -63192,14 +63373,14 @@ { "method": "", "name": "groupMemberShareGroupHistoryModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -63236,7 +63417,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -63258,41 +63439,41 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "", "name": "groupInfoDescriptionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -63300,21 +63481,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -63322,15 +63503,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -63348,33 +63529,33 @@ "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -63387,19 +63568,19 @@ "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasSupport", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -63407,7 +63588,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -63416,7 +63597,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -63427,7 +63608,7 @@ "method": "child", "name": "suspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -63435,7 +63616,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -63445,7 +63626,7 @@ "method": "child", "name": "appealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -63453,7 +63634,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -63484,7 +63666,7 @@ "method": "child", "name": "appealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -63492,7 +63674,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -63501,7 +63683,7 @@ "method": "child", "name": "growthLocked", "type": "string", - "required": false, + "parserRequired": false, "tag": "growth_locked", "children": [ { @@ -63509,7 +63691,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "invite" }, { @@ -63517,7 +63699,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -63526,27 +63708,27 @@ "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalGroupJoinModeEnabledMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -63562,43 +63744,43 @@ "method": "", "name": "hasIncognito", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAutoAddDisabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -63606,7 +63788,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -63615,19 +63797,19 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "evolutionVersion", "type": "string", - "required": false, + "parserRequired": false, "tag": "evolution_version", "children": [ { @@ -63635,7 +63817,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 } @@ -63646,19 +63828,19 @@ "method": "", "name": "hasGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "limitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -63666,7 +63848,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -63677,14 +63859,14 @@ "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -63694,7 +63876,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -63715,28 +63898,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -63756,7 +63940,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -63766,21 +63950,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -63798,13 +63982,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -63814,14 +63998,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -63833,7 +64017,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -63845,7 +64029,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -63856,7 +64040,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -63874,14 +64058,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -63899,13 +64083,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -63915,14 +64099,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -63934,7 +64118,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -63946,7 +64130,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -63968,14 +64152,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -63993,7 +64177,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64021,28 +64205,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -64062,7 +64247,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -64072,21 +64257,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64104,13 +64289,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -64120,14 +64305,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -64139,7 +64324,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -64151,7 +64336,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -64162,7 +64347,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64180,14 +64365,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64205,13 +64390,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -64221,14 +64406,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -64240,7 +64425,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -64252,7 +64437,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -64274,14 +64459,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64299,7 +64484,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64324,15 +64509,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -64357,14 +64542,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "truncated", "wireName": "truncated", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" }, { @@ -64372,7 +64557,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999 } @@ -64434,35 +64619,36 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "groupsGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { "method": "", "name": "dedupAttrsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -64489,7 +64675,7 @@ "method": "", "name": "groupInfoOrTruncatedGroupInfoGroupInfoMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfo", @@ -64499,7 +64685,7 @@ "name": "ack", "wireName": "ack", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "false" }, { @@ -64507,78 +64693,79 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "wireName": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "creation", "wireName": "creation", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "pVId", "wireName": "p_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "aVId", "wireName": "a_v_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "sT", "wireName": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "sO", "wireName": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "openThreadId", "wireName": "open_thread_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "size", "wireName": "size", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 19999 }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -64600,21 +64787,21 @@ { "method": "", "name": "subjectOwnerIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -64622,15 +64809,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -64641,21 +64828,21 @@ { "method": "", "name": "groupCreatorIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -64663,15 +64850,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -64679,15 +64866,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -64699,7 +64886,7 @@ "method": "", "name": "namedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -64709,7 +64896,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -64721,7 +64908,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -64731,19 +64918,19 @@ "method": "", "name": "hasMissingParticipantIdentification", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "groupMemberAddModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -64780,7 +64967,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64801,14 +64988,14 @@ { "method": "", "name": "groupMemberLinkModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -64845,7 +65032,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64866,14 +65053,14 @@ { "method": "", "name": "groupMemberShareGroupHistoryModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -64910,7 +65097,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -64932,41 +65119,41 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "", "name": "groupInfoDescriptionMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "wireName": "participant", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "bodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "body" ] @@ -64974,21 +65161,21 @@ { "method": "", "name": "participantIdentityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "participantPNMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -64996,15 +65183,15 @@ { "method": "", "name": "participantUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "participantUsername", "wireName": "participant_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -65022,33 +65209,33 @@ "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "parent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -65061,19 +65248,19 @@ "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasSupport", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -65081,7 +65268,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -65090,7 +65277,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -65101,7 +65288,7 @@ "method": "child", "name": "suspended", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended", "children": [ { @@ -65109,7 +65296,7 @@ "name": "canAutoFile", "wireName": "can_auto_file", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" } ], @@ -65119,7 +65306,7 @@ "method": "child", "name": "appealStatus", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_status", "children": [ { @@ -65127,7 +65314,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_APPROVED_INREVIEW_NONE_REJECTED", "module": "WASmaxInGroupsEnums", @@ -65158,7 +65346,7 @@ "method": "child", "name": "appealUpdateTime", "type": "string", - "required": false, + "parserRequired": false, "tag": "appeal_update_time", "children": [ { @@ -65166,7 +65354,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -65175,7 +65363,7 @@ "method": "child", "name": "growthLocked", "type": "string", - "required": false, + "parserRequired": false, "tag": "growth_locked", "children": [ { @@ -65183,7 +65371,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "invite" }, { @@ -65191,7 +65379,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -65200,27 +65388,27 @@ "method": "", "name": "hasDefaultSubGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalGroupJoinModeEnabledMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -65236,43 +65424,43 @@ "method": "", "name": "hasIncognito", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGeneralChat", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAutoAddDisabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "linkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -65280,7 +65468,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -65289,19 +65477,19 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "evolutionVersion", "type": "string", - "required": false, + "parserRequired": false, "tag": "evolution_version", "children": [ { @@ -65309,7 +65497,7 @@ "name": "value", "wireName": "value", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 } @@ -65320,19 +65508,19 @@ "method": "", "name": "hasGroupSafetyCheck", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasParticipantLabelEnabled", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "limitSharingEnabled", "type": "string", - "required": false, + "parserRequired": false, "tag": "limit_sharing_enabled", "children": [ { @@ -65340,7 +65528,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -65351,14 +65539,14 @@ "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "groupInfoParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupInfoParticipantAdmin", @@ -65368,7 +65556,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -65389,28 +65578,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -65430,7 +65620,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -65440,21 +65630,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65472,13 +65662,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -65488,14 +65678,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -65507,7 +65697,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -65519,7 +65709,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -65530,7 +65720,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65548,14 +65738,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65573,13 +65763,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -65589,14 +65779,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -65608,7 +65798,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -65620,7 +65810,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -65642,14 +65832,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65667,7 +65857,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65695,28 +65885,29 @@ "name": "participantLabel", "wireName": "participant_label", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "participantLabelMtime", "wireName": "participant_label_mtime", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "groupHistorySent", "wireName": "group_history_sent", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInGroupsEnums", @@ -65736,7 +65927,7 @@ "method": "", "name": "participantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantWithJidLidAndDisplayName", @@ -65746,21 +65937,21 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65778,13 +65969,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -65794,14 +65985,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -65813,7 +66004,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -65825,7 +66016,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -65836,7 +66027,7 @@ "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65854,14 +66045,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrLidUserJid", "name": "lid", "wireName": "lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65879,13 +66070,13 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -65895,14 +66086,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -65914,7 +66105,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -65926,7 +66117,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -65948,14 +66139,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "displayName", "wireName": "display_name", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65973,7 +66164,7 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "assertions": [ @@ -65998,15 +66189,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -66031,14 +66222,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "truncated", "wireName": "truncated", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true" }, { @@ -66046,7 +66237,7 @@ "name": "size", "wireName": "size", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 19999 } @@ -66125,14 +66316,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorIQErrorBadRequestOrRateOverlimitOrFallbackClientMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -66142,7 +66333,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -66150,7 +66341,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -66179,7 +66370,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -66187,7 +66378,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -66216,14 +66407,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -66299,14 +66490,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -66316,7 +66507,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -66324,7 +66515,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -66353,7 +66544,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -66361,7 +66552,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -66390,7 +66581,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -66398,7 +66589,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -66427,14 +66618,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -66460,7 +66651,7 @@ "moduleName": "WASmaxOutGroupsGetReportedMessagesRequest", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsGetReportedMessagesRPC", "exportedFunction": "makeGetReportedMessagesRequest", "allExports": [ @@ -66469,7 +66660,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "reports", @@ -66488,21 +66679,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -66525,7 +66717,7 @@ "method": "child", "name": "reportsReport", "type": "string", - "required": true, + "parserRequired": true, "tag": "report", "children": [ { @@ -66533,13 +66725,13 @@ "name": "messageId", "wireName": "message_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "reporter", "type": "string", - "required": true, + "parserRequired": true, "tag": "reporter", "children": [ { @@ -66547,26 +66739,26 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "timestamp", "wireName": "timestamp", "type": "integer", - "required": true + "parserRequired": true }, { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -66576,14 +66768,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -66595,7 +66787,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -66607,7 +66799,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -66662,21 +66854,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -66699,7 +66892,7 @@ "method": "child", "name": "reportsReport", "type": "string", - "required": true, + "parserRequired": true, "tag": "report", "children": [ { @@ -66707,13 +66900,13 @@ "name": "messageId", "wireName": "message_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "reporter", "type": "string", - "required": true, + "parserRequired": true, "tag": "reporter", "children": [ { @@ -66721,26 +66914,26 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "timestamp", "wireName": "timestamp", "type": "integer", - "required": true + "parserRequired": true }, { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -66750,14 +66943,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -66769,7 +66962,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -66781,7 +66974,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -66863,14 +67056,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetReportedMessagesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -66880,7 +67073,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -66888,7 +67081,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -66917,7 +67110,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -66925,7 +67118,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -66954,7 +67147,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -66962,7 +67155,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -66991,7 +67184,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -66999,7 +67192,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -67028,7 +67221,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -67036,7 +67229,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -67121,14 +67314,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -67138,7 +67331,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -67146,7 +67339,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -67175,7 +67368,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -67183,7 +67376,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -67212,7 +67405,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -67220,7 +67413,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -67249,14 +67442,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -67282,7 +67475,7 @@ "moduleName": "WAWebQueryGroupInviteProfilePicApi", "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "queryGroupProfilePicParser", "exportedFunction": "queryGroupInviteLinkProfilePic", "allExports": [ @@ -67292,7 +67485,7 @@ "request": { "namespace": "w:g2", "iqType": "get", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "picture", @@ -67331,32 +67524,32 @@ "method": "child", "name": "picture", "type": "string", - "required": true, + "parserRequired": true, "tag": "picture", "children": [ { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "url", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "direct_path", "type": "string", - "required": true + "parserRequired": true } ] } @@ -67367,7 +67560,7 @@ "moduleName": "WAWebGroupExitJob", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "g.us", "parserName": "leaveGroupsResultParser", "exportedFunction": "leaveGroup", "allExports": [ @@ -67378,7 +67571,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "g.us", "children": [ { "tag": "leave", @@ -67415,26 +67608,26 @@ "method": "child", "name": "leave", "type": "string", - "required": true, + "parserRequired": true, "tag": "leave", "children": [ { "method": "mapChildren", "name": "children", "type": "string", - "required": true, + "parserRequired": true, "children": [ { "method": "attrGroupJid", "name": "id", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "error", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": true @@ -67448,7 +67641,7 @@ "moduleName": "WASmaxOutGroupsAcceptGroupAddRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsAcceptGroupAddRPC", "exportedFunction": "makeAcceptGroupAddRequest", "allExports": [ @@ -67457,7 +67650,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "accept", @@ -67492,7 +67685,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -67532,7 +67725,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -67572,7 +67765,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -67679,14 +67872,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorAcceptGroupAddClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorAlreadyExists", @@ -67696,7 +67889,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "already-exists" }, { @@ -67704,7 +67897,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "304" } ], @@ -67733,7 +67926,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -67741,7 +67934,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -67770,7 +67963,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -67778,7 +67971,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -67807,7 +68000,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -67815,7 +68008,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -67844,7 +68037,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -67852,7 +68045,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -67881,7 +68074,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -67889,7 +68082,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -67918,7 +68111,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "gone" }, { @@ -67926,7 +68119,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "410" } ], @@ -67955,7 +68148,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-limit" }, { @@ -67963,7 +68156,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -67992,7 +68185,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -68000,7 +68193,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -68029,7 +68222,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-constraint" }, { @@ -68037,7 +68230,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -68066,7 +68259,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -68074,7 +68267,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -68103,7 +68296,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "linked-groups-participants-resource-limit" }, { @@ -68111,7 +68304,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "412" } ], @@ -68140,14 +68333,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -68223,14 +68416,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -68240,7 +68433,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -68248,7 +68441,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -68277,7 +68470,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -68285,7 +68478,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -68314,7 +68507,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -68322,7 +68515,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -68351,14 +68544,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -68384,7 +68577,7 @@ "moduleName": "WASmaxOutGroupsAcknowledgeGroupRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsAcknowledgeGroupRPC", "exportedFunction": "makeAcknowledgeGroupRequest", "allExports": [ @@ -68393,7 +68586,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "ack", @@ -68412,7 +68605,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -68452,7 +68645,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -68514,14 +68707,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorIQErrorItemNotFoundOrBadRequestOrRateOverlimitOrFallbackClientMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorItemNotFound", @@ -68531,7 +68724,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -68539,7 +68732,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -68568,7 +68761,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -68576,7 +68769,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -68605,7 +68798,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -68613,7 +68806,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -68642,14 +68835,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -68725,14 +68918,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -68742,7 +68935,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -68750,7 +68943,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -68779,7 +68972,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -68787,7 +68980,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -68816,7 +69009,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -68824,7 +69017,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -68853,14 +69046,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -68886,7 +69079,7 @@ "moduleName": "WASmaxOutGroupsAddParticipantsRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsAddParticipantsRPC", "exportedFunction": "makeAddParticipantsRequestAddParticipant", "allExports": [ @@ -68896,7 +69089,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "add", @@ -68938,21 +69131,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -68975,14 +69169,14 @@ "method": "child", "name": "addParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "addParticipantsParticipantAddedOrNonRegisteredWaUserParticipantErrorLidResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AddParticipantsParticipantAddedResponse", @@ -68992,27 +69186,27 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -69020,15 +69214,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -69037,7 +69231,7 @@ "method": "", "name": "addParticipantsParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ParticipantGroupJoinRequest", @@ -69047,7 +69241,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "421" }, { @@ -69055,7 +69249,8 @@ "name": "membershipApprovalRequestError", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_304_419", "module": "WASmaxInGroupsEnums", @@ -69095,7 +69290,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -69119,7 +69314,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "402" } ], @@ -69143,7 +69338,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -69151,7 +69346,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -69161,7 +69356,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -69169,15 +69364,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -69204,7 +69399,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -69228,7 +69423,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -69252,7 +69447,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -69276,7 +69471,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -69300,7 +69495,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -69324,7 +69519,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -69348,7 +69543,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -69372,7 +69567,7 @@ "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -69396,7 +69591,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "417" } ], @@ -69420,7 +69615,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "431" } ], @@ -69444,7 +69639,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "432" } ], @@ -69478,13 +69673,13 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "participantRequestCodeCanBeSentOrRequestCodeCannotBeCreatedForLegalConcernsOrHasInvalidPNMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantRequestCodeCanBeSent", @@ -69494,7 +69689,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -69502,7 +69697,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -69512,7 +69707,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -69520,15 +69715,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -69555,7 +69750,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -69579,7 +69774,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -69650,21 +69845,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -69687,14 +69883,14 @@ "method": "child", "name": "addParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "addParticipantsParticipantAddedOrNonRegisteredWaUserParticipantErrorLidResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AddParticipantsParticipantAddedResponse", @@ -69704,27 +69900,27 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -69732,15 +69928,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -69749,7 +69945,7 @@ "method": "", "name": "addParticipantsParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ParticipantGroupJoinRequest", @@ -69759,7 +69955,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "421" }, { @@ -69767,7 +69963,8 @@ "name": "membershipApprovalRequestError", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_304_419", "module": "WASmaxInGroupsEnums", @@ -69807,7 +70004,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -69831,7 +70028,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "402" } ], @@ -69855,7 +70052,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -69863,7 +70060,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -69873,7 +70070,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -69881,15 +70078,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -69916,7 +70113,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -69940,7 +70137,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -69964,7 +70161,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -69988,7 +70185,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -70012,7 +70209,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -70036,7 +70233,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -70060,7 +70257,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -70084,7 +70281,7 @@ "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -70108,7 +70305,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "417" } ], @@ -70132,7 +70329,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "431" } ], @@ -70156,7 +70353,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "432" } ], @@ -70190,13 +70387,13 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "participantRequestCodeCanBeSentOrRequestCodeCannotBeCreatedForLegalConcernsOrHasInvalidPNMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantRequestCodeCanBeSent", @@ -70206,7 +70403,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -70214,7 +70411,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -70224,7 +70421,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -70232,15 +70429,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -70267,7 +70464,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -70291,7 +70488,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -70419,14 +70616,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorAddParticipantsClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -70436,7 +70633,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -70444,7 +70641,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -70473,7 +70670,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -70481,7 +70678,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -70510,7 +70707,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -70518,7 +70715,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -70547,7 +70744,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -70555,7 +70752,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -70584,7 +70781,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -70592,14 +70789,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" }, { "method": "", "name": "rateLimitAddParticipantTimeOrCountRateLimitMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AddParticipantTimeRateLimit", @@ -70609,14 +70806,15 @@ "name": "backoff", "wireName": "backoff", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_GROUP_USER", "module": "WASmaxInGroupsEnums", @@ -70648,7 +70846,7 @@ "name": "participantLimit", "wireName": "participant_limit", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 19999 } @@ -70691,7 +70889,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -70699,7 +70897,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -70728,7 +70926,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -70736,7 +70934,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -70765,7 +70963,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -70773,7 +70971,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -70802,7 +71000,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "parent-group-suspended" }, { @@ -70810,7 +71008,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "416" } ], @@ -70839,14 +71037,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -70922,14 +71120,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -70939,7 +71137,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -70947,7 +71145,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -70976,7 +71174,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -70984,7 +71182,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -71013,7 +71211,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -71021,7 +71219,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -71050,14 +71248,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -71083,7 +71281,7 @@ "moduleName": "WASmaxOutGroupsCancelGroupMembershipRequestsRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsCancelGroupMembershipRequestsRPC", "exportedFunction": "makeCancelGroupMembershipRequestsRequestCancelMembershipRequestsParticipant", "allExports": [ @@ -71093,7 +71291,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "cancel_membership_requests", @@ -71125,21 +71323,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -71162,7 +71361,7 @@ "method": "child", "name": "cancelMembershipRequestsParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -71170,20 +71369,20 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -71192,7 +71391,7 @@ "method": "", "name": "membershipRequestsCancellationParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "CancelGroupMembershipRequestsParticipantRequestNotFound", @@ -71202,7 +71401,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -71226,7 +71425,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -71287,21 +71486,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -71324,7 +71524,7 @@ "method": "child", "name": "cancelMembershipRequestsParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -71332,20 +71532,20 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -71354,7 +71554,7 @@ "method": "", "name": "membershipRequestsCancellationParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "CancelGroupMembershipRequestsParticipantRequestNotFound", @@ -71364,7 +71564,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -71388,7 +71588,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -71476,14 +71676,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorMembershipRequestsCancellationClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -71493,7 +71693,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -71501,7 +71701,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -71530,7 +71730,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -71538,7 +71738,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -71567,7 +71767,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -71575,7 +71775,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -71604,7 +71804,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -71612,7 +71812,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -71641,14 +71841,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -71724,14 +71924,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -71741,7 +71941,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -71749,7 +71949,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -71778,7 +71978,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -71786,7 +71986,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -71815,7 +72015,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -71823,7 +72023,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -71852,14 +72052,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -71885,7 +72085,7 @@ "moduleName": "WASmaxOutGroupsCreateRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "g.us", "parserName": "WASmaxGroupsCreateRPC", "exportedFunction": "makeCreateRequestCreateParticipant", "allExports": [ @@ -71910,7 +72110,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "g.us", "children": [ { "tag": "create", @@ -72115,14 +72315,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -72130,7 +72330,7 @@ "name": "groupId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "group" ] @@ -72140,7 +72340,7 @@ "name": "groupCreator", "wireName": "creator", "type": "user_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "group" ] @@ -72150,7 +72350,7 @@ "name": "groupCreation", "wireName": "creation", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "group" ] @@ -72160,7 +72360,7 @@ "name": "groupST", "wireName": "s_t", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "group" ] @@ -72170,7 +72370,7 @@ "name": "groupSO", "wireName": "s_o", "type": "user_jid", - "required": false, + "parserRequired": false, "sourcePath": [ "group" ] @@ -72179,7 +72379,7 @@ "method": "child", "name": "groupDedupAttrsMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -72187,14 +72387,15 @@ "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -72221,14 +72422,14 @@ "method": "child", "name": "groupGroupMemberAddModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -72265,7 +72466,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -72287,7 +72488,7 @@ "method": "child", "name": "groupGroupAddressingModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -72295,7 +72496,8 @@ "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -72318,21 +72520,21 @@ "method": "child", "name": "groupSubjectOwnerIdentityMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -72340,15 +72542,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -72360,21 +72562,21 @@ "method": "child", "name": "groupGroupCreatorIdentityMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -72382,15 +72584,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -72398,15 +72600,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -72418,14 +72620,14 @@ "method": "child", "name": "groupGroupMemberLinkModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -72462,7 +72664,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -72484,14 +72686,14 @@ "method": "child", "name": "groupGroupMemberShareGroupHistoryModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -72528,7 +72730,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -72550,7 +72752,7 @@ "method": "", "name": "groupNamedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -72560,7 +72762,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -72572,7 +72774,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -72585,7 +72787,7 @@ "method": "child", "name": "groupDescription", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -72593,14 +72795,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "error", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_406_500", "module": "WASmaxInGroupsEnums", @@ -72626,33 +72829,33 @@ "method": "", "name": "hasGroupLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -72668,13 +72871,13 @@ "method": "", "name": "hasGroupNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupEphemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -72682,7 +72885,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -72691,7 +72894,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -72705,7 +72908,7 @@ "method": "child", "name": "groupMembershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { @@ -72713,7 +72916,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -72729,13 +72932,13 @@ "method": "", "name": "hasGroupBreakout", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupLinkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -72743,7 +72946,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false, @@ -72755,38 +72958,38 @@ "method": "", "name": "hasGroupHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "createParticipantAddedOrNonRegisteredWaUserParticipantErrorLidResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "CreateParticipantAddedResponse", @@ -72796,20 +72999,20 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -72817,15 +73020,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -72834,7 +73037,7 @@ "method": "", "name": "createParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantTemporarilyBlockedFromDefaultSubGroup", @@ -72844,7 +73047,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "417" } ], @@ -72868,7 +73071,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -72892,7 +73095,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -72900,7 +73103,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -72910,7 +73113,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -72918,15 +73121,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -72953,7 +73156,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -72977,7 +73180,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -73001,7 +73204,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -73025,7 +73228,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -73049,7 +73252,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -73073,7 +73276,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "431" } ], @@ -73097,7 +73300,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "432" } ], @@ -73121,7 +73324,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -73142,20 +73346,20 @@ "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -73187,13 +73391,13 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "participantRequestCodeCanBeSentOrRequestCodeCannotBeCreatedForLegalConcernsOrHasInvalidPNMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantRequestCodeCanBeSent", @@ -73203,7 +73407,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -73211,7 +73415,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -73221,7 +73425,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -73229,15 +73433,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -73264,7 +73468,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -73288,7 +73492,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -73352,14 +73556,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -73367,7 +73571,7 @@ "name": "groupId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "group" ] @@ -73377,7 +73581,7 @@ "name": "groupCreator", "wireName": "creator", "type": "user_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "group" ] @@ -73387,7 +73591,7 @@ "name": "groupCreation", "wireName": "creation", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "group" ] @@ -73397,7 +73601,7 @@ "name": "groupST", "wireName": "s_t", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "group" ] @@ -73407,7 +73611,7 @@ "name": "groupSO", "wireName": "s_o", "type": "user_jid", - "required": false, + "parserRequired": false, "sourcePath": [ "group" ] @@ -73416,7 +73620,7 @@ "method": "child", "name": "groupDedupAttrsMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -73424,14 +73628,15 @@ "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "createCtx", "wireName": "create_ctx", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_E2EEMIGRATION_REGULAR_RTC", "module": "WASmaxInGroupsEnums", @@ -73458,14 +73663,14 @@ "method": "child", "name": "groupGroupMemberAddModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "memberAddModeMemberAddModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminAddMode", @@ -73502,7 +73707,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -73524,7 +73729,7 @@ "method": "child", "name": "groupGroupAddressingModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { @@ -73532,7 +73737,8 @@ "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -73555,21 +73761,21 @@ "method": "child", "name": "groupSubjectOwnerIdentityMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "subjectOwnerPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "sOPn", "wireName": "s_o_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -73577,15 +73783,15 @@ { "method": "", "name": "subjectOwnerUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "sOUsername", "wireName": "s_o_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -73597,21 +73803,21 @@ "method": "child", "name": "groupGroupCreatorIdentityMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -73619,15 +73825,15 @@ { "method": "", "name": "groupCreatorUsernameMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorUsername", "wireName": "creator_username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -73635,15 +73841,15 @@ { "method": "", "name": "groupCreatorCountryCodeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "creatorCountryCode", "wireName": "creator_country_code", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -73655,14 +73861,14 @@ "method": "child", "name": "groupGroupMemberLinkModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "memberLinkModeMemberLinkModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminLinkMode", @@ -73699,7 +73905,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -73721,14 +73927,14 @@ "method": "child", "name": "groupGroupMemberShareGroupHistoryModeMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "", "name": "memberShareGroupHistoryModeMemberShareGroupHistoryModes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AdminShareMode", @@ -73765,7 +73971,7 @@ "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "assertions": [ @@ -73787,7 +73993,7 @@ "method": "", "name": "groupNamedSubjectOrUnnamedSubjectFallbackMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NamedSubject", @@ -73797,7 +74003,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -73809,7 +74015,7 @@ "name": "subject", "wireName": "subject", "type": "string", - "required": false + "parserRequired": false } ] } @@ -73822,7 +74028,7 @@ "method": "child", "name": "groupDescription", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -73830,14 +74036,15 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "error", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_406_500", "module": "WASmaxInGroupsEnums", @@ -73863,33 +74070,33 @@ "method": "", "name": "hasGroupLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "parent", "children": [ { "method": "", "name": "parentGroupDefaultMembershipApprovalModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "defaultMembershipApprovalMode", "wireName": "default_membership_approval_mode", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request_required" } ], @@ -73905,13 +74112,13 @@ "method": "", "name": "hasGroupNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupEphemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -73919,7 +74126,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -73928,7 +74135,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -73942,7 +74149,7 @@ "method": "child", "name": "groupMembershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { @@ -73950,7 +74157,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on", "sourcePath": [ "group_join" @@ -73966,13 +74173,13 @@ "method": "", "name": "hasGroupBreakout", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupLinkedParent", "type": "string", - "required": false, + "parserRequired": false, "tag": "linked_parent", "children": [ { @@ -73980,7 +74187,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": false, @@ -73992,38 +74199,38 @@ "method": "", "name": "hasGroupHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupCapi", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "groupParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "", "name": "createParticipantAddedOrNonRegisteredWaUserParticipantErrorLidResponseMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "CreateParticipantAddedResponse", @@ -74033,20 +74240,20 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -74054,15 +74261,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -74071,7 +74278,7 @@ "method": "", "name": "createParticipantMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantTemporarilyBlockedFromDefaultSubGroup", @@ -74081,7 +74288,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "417" } ], @@ -74105,7 +74312,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -74129,7 +74336,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -74137,7 +74344,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -74147,7 +74354,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -74155,15 +74362,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -74190,7 +74397,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -74214,7 +74421,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -74238,7 +74445,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -74262,7 +74469,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -74286,7 +74493,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -74310,7 +74517,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "431" } ], @@ -74334,7 +74541,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "432" } ], @@ -74358,7 +74565,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ADMIN_SUPERADMIN", "module": "WASmaxInGroupsEnums", @@ -74379,20 +74587,20 @@ "name": "joinTime", "wireName": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -74424,13 +74632,13 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "participantRequestCodeCanBeSentOrRequestCodeCannotBeCreatedForLegalConcernsOrHasInvalidPNMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ParticipantRequestCodeCanBeSent", @@ -74440,7 +74648,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" }, { @@ -74448,7 +74656,7 @@ "name": "addRequestCode", "wireName": "code", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -74458,7 +74666,7 @@ "name": "addRequestExpiration", "wireName": "expiration", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "add_request" ] @@ -74466,15 +74674,15 @@ { "method": "", "name": "participantNotAddressableMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "addressable", "wireName": "addressable", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "false" } ], @@ -74501,7 +74709,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "451" } ], @@ -74525,7 +74733,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -74589,14 +74797,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -74604,7 +74812,7 @@ "name": "groupJid", "wireName": "jid", "type": "group_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "group" ] @@ -74713,14 +74921,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorCreateClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorForbidden", @@ -74730,7 +74938,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -74738,7 +74946,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -74767,7 +74975,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-constraint" }, { @@ -74775,7 +74983,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -74804,7 +75012,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -74812,7 +75020,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -74841,7 +75049,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-limit" }, { @@ -74849,7 +75057,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -74878,7 +75086,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -74886,14 +75094,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -74901,14 +75109,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -74939,7 +75147,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -74947,7 +75155,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -74976,7 +75184,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -74984,14 +75192,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" }, { "method": "", "name": "rateLimitAddParticipantTimeOrCountRateLimitMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "AddParticipantTimeRateLimit", @@ -75001,14 +75209,15 @@ "name": "backoff", "wireName": "backoff", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_GROUP_USER", "module": "WASmaxInGroupsEnums", @@ -75040,7 +75249,7 @@ "name": "participantLimit", "wireName": "participant_limit", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 19999 } @@ -75083,7 +75292,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -75091,7 +75300,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -75120,7 +75329,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -75128,7 +75337,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -75157,7 +75366,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "linked-groups-participants-resource-limit" }, { @@ -75165,7 +75374,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "412" } ], @@ -75194,7 +75403,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "parent-group-suspended" }, { @@ -75202,7 +75411,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "416" } ], @@ -75231,14 +75440,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -75314,14 +75523,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -75331,7 +75540,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -75339,7 +75548,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -75368,7 +75577,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -75376,7 +75585,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -75405,7 +75614,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -75413,7 +75622,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -75442,14 +75651,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -75475,7 +75684,7 @@ "moduleName": "WASmaxOutGroupsCreateSubGroupSuggestionRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsCreateSubGroupSuggestionRPC", "exportedFunction": "makeCreateSubGroupSuggestionRequest", "allExports": [ @@ -75484,7 +75693,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "sub_group_suggestion", @@ -75503,7 +75712,7 @@ "name": "subGroupSuggestionJid", "wireName": "jid", "type": "group_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "sub_group_suggestion" ] @@ -75513,7 +75722,7 @@ "name": "subGroupSuggestionCreator", "wireName": "creator", "type": "user_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "sub_group_suggestion" ] @@ -75523,7 +75732,7 @@ "name": "subGroupSuggestionCreation", "wireName": "creation", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "sub_group_suggestion" ] @@ -75532,7 +75741,7 @@ "method": "child", "name": "subGroupSuggestionGroupCreatorPhoneNumberMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "sub_group_suggestion", "children": [ { @@ -75540,7 +75749,7 @@ "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -75550,21 +75759,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -75587,7 +75797,7 @@ "method": "child", "name": "subGroupSuggestionDescription", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -75595,7 +75805,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "406" } ], @@ -75641,7 +75851,7 @@ "name": "subGroupSuggestionJid", "wireName": "jid", "type": "group_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "sub_group_suggestion" ] @@ -75651,7 +75861,7 @@ "name": "subGroupSuggestionCreator", "wireName": "creator", "type": "user_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "sub_group_suggestion" ] @@ -75661,7 +75871,7 @@ "name": "subGroupSuggestionCreation", "wireName": "creation", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "sub_group_suggestion" ] @@ -75670,7 +75880,7 @@ "method": "child", "name": "subGroupSuggestionGroupCreatorPhoneNumberMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "sub_group_suggestion", "children": [ { @@ -75678,7 +75888,7 @@ "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "repeats": false @@ -75688,21 +75898,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -75725,7 +75936,7 @@ "method": "child", "name": "subGroupSuggestionDescription", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { @@ -75733,7 +75944,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "406" } ], @@ -75779,21 +75990,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -75816,7 +76028,7 @@ "method": "child", "name": "subGroupSuggestionGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -75824,13 +76036,13 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "subGroupNotAuthorizedOrNotExistOrConflictOrSuggestionNotAllowedOrResourceLimitOrBadRequestOrNotAcceptableOrServerErrorMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "SubGroupNotAuthorized", @@ -75840,7 +76052,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -75864,7 +76076,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -75888,7 +76100,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -75912,7 +76124,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -75936,7 +76148,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -75960,7 +76172,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -75984,7 +76196,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -76008,7 +76220,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -76111,14 +76323,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorCreateSubGroupSuggestionErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorForbidden", @@ -76128,7 +76340,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -76136,7 +76348,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -76165,7 +76377,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -76173,7 +76385,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -76202,7 +76414,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-limit" }, { @@ -76210,7 +76422,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -76239,7 +76451,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -76247,14 +76459,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -76262,14 +76474,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -76300,7 +76512,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -76308,7 +76520,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -76337,7 +76549,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -76345,7 +76557,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -76374,7 +76586,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -76382,7 +76594,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -76411,14 +76623,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -76494,14 +76706,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -76511,7 +76723,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -76519,7 +76731,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -76548,7 +76760,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -76556,7 +76768,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -76585,7 +76797,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -76593,7 +76805,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -76622,14 +76834,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -76655,7 +76867,7 @@ "moduleName": "WASmaxOutGroupsDeleteParentGroupRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsDeleteParentGroupRPC", "exportedFunction": "makeDeleteParentGroupRequest", "allExports": [ @@ -76664,7 +76876,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "delete_parent", @@ -76683,7 +76895,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -76723,7 +76935,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -76780,14 +76992,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorDeleteParentGroupClientError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -76797,7 +77009,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -76805,7 +77017,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -76834,7 +77046,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -76842,7 +77054,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -76871,7 +77083,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -76879,7 +77091,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -76964,14 +77176,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -76981,7 +77193,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -76989,7 +77201,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -77018,7 +77230,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -77026,7 +77238,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -77055,7 +77267,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -77063,7 +77275,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -77092,14 +77304,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -77125,7 +77337,7 @@ "moduleName": "WASmaxOutGroupsJoinLinkedGroupRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsJoinLinkedGroupRPC", "exportedFunction": "makeJoinLinkedGroupRequest", "allExports": [ @@ -77134,7 +77346,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "join_linked_group", @@ -77164,7 +77376,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -77204,7 +77416,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -77244,7 +77456,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -77341,14 +77553,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorJoinLinkedGroupClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -77358,7 +77570,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -77366,7 +77578,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -77395,7 +77607,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -77403,7 +77615,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -77432,7 +77644,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -77440,7 +77652,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -77469,7 +77681,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -77477,7 +77689,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -77506,7 +77718,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -77514,14 +77726,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -77529,14 +77741,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -77567,7 +77779,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -77575,7 +77787,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -77604,7 +77816,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-limit" }, { @@ -77612,7 +77824,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -77641,7 +77853,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -77649,7 +77861,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -77678,7 +77890,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "upgrade-required" }, { @@ -77686,7 +77898,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "426" } ], @@ -77715,7 +77927,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "already-exists" }, { @@ -77723,7 +77935,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "304" } ], @@ -77752,14 +77964,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -77835,14 +78047,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -77852,7 +78064,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -77860,7 +78072,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -77889,7 +78101,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -77897,7 +78109,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -77926,7 +78138,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -77934,7 +78146,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -77963,14 +78175,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -77996,7 +78208,7 @@ "moduleName": "WASmaxOutGroupsLinkSubGroupsRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsLinkSubGroupsRPC", "exportedFunction": "makeLinkSubGroupsRequestLinksLinkGroupHiddenGroup", "allExports": [ @@ -78007,7 +78219,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "links", @@ -78060,7 +78272,7 @@ "name": "linksLinkLinkType", "wireName": "link_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "sub_group", "sourcePath": [ "links", @@ -78072,21 +78284,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -78109,7 +78322,7 @@ "method": "child", "name": "linksLinkGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -78117,13 +78330,13 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "linkSubGroupsSuccessIqLinksLinkGroupMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "SubGroupNotAuthorized", @@ -78133,7 +78346,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -78157,7 +78370,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -78181,7 +78394,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -78205,7 +78418,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -78229,7 +78442,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -78253,7 +78466,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -78277,7 +78490,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "433" } ], @@ -78301,7 +78514,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -78323,13 +78536,13 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -78337,14 +78550,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -78394,7 +78607,7 @@ "name": "linksLinkLinkType", "wireName": "link_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "sub_group", "sourcePath": [ "links", @@ -78406,21 +78619,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -78443,7 +78657,7 @@ "method": "child", "name": "linksLinkGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -78451,13 +78665,13 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "linkSubGroupsSuccessIqLinksLinkGroupMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "SubGroupNotAuthorized", @@ -78467,7 +78681,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -78491,7 +78705,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -78515,7 +78729,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -78539,7 +78753,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -78563,7 +78777,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -78587,7 +78801,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -78611,7 +78825,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "433" } ], @@ -78635,7 +78849,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -78657,13 +78871,13 @@ "method": "", "name": "hasHiddenGroup", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -78671,14 +78885,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -78780,14 +78994,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorLinkSubGroupsClientError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -78797,7 +79011,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -78805,7 +79019,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -78834,7 +79048,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -78842,7 +79056,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -78871,7 +79085,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -78879,7 +79093,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -78908,7 +79122,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -78916,7 +79130,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -78945,7 +79159,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -78953,7 +79167,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -78982,7 +79196,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "payload-too-large" }, { @@ -78990,7 +79204,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "413" } ], @@ -79019,7 +79233,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-limit" }, { @@ -79027,7 +79241,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -79056,7 +79270,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "parent-group-suspended" }, { @@ -79064,7 +79278,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "416" } ], @@ -79093,7 +79307,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "pending-add-requests" }, { @@ -79101,7 +79315,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "433" } ], @@ -79130,7 +79344,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -79138,7 +79352,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -79223,14 +79437,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -79240,7 +79454,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -79248,7 +79462,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -79277,7 +79491,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -79285,7 +79499,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -79314,7 +79528,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -79322,7 +79536,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -79351,14 +79565,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -79384,7 +79598,7 @@ "moduleName": "WASmaxOutGroupsMembershipRequestsActionRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsMembershipRequestsActionRPC", "exportedFunction": "makeMembershipRequestsActionRequestMembershipRequestsActionApproveParticipant", "allExports": [ @@ -79397,7 +79611,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "membership_requests_action", @@ -79475,21 +79689,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -79512,14 +79727,14 @@ "method": "child", "name": "membershipRequestsActionApprove", "type": "string", - "required": false, + "parserRequired": false, "tag": "approve", "children": [ { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -79527,19 +79742,19 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -79549,14 +79764,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -79568,7 +79783,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -79580,7 +79795,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -79593,7 +79808,7 @@ "method": "", "name": "membershipRequestsActionAcceptParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ParticipantNotFound", @@ -79603,7 +79818,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -79627,7 +79842,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -79651,7 +79866,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -79675,7 +79890,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -79699,7 +79914,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -79723,7 +79938,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -79747,7 +79962,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -79771,7 +79986,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "412" } ], @@ -79802,14 +80017,14 @@ "method": "child", "name": "membershipRequestsActionReject", "type": "string", - "required": false, + "parserRequired": false, "tag": "reject", "children": [ { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -79817,19 +80032,19 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -79839,14 +80054,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -79858,7 +80073,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -79870,7 +80085,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -79883,7 +80098,7 @@ "method": "", "name": "membershipRequestsActionRejectParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "MembershipRequestsActionParticipantRequestNotFound", @@ -79893,7 +80108,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -79917,7 +80132,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -79981,21 +80196,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -80018,14 +80234,14 @@ "method": "child", "name": "membershipRequestsActionApprove", "type": "string", - "required": false, + "parserRequired": false, "tag": "approve", "children": [ { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -80033,19 +80249,19 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -80055,14 +80271,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -80074,7 +80290,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -80086,7 +80302,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -80099,7 +80315,7 @@ "method": "", "name": "membershipRequestsActionAcceptParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ParticipantNotFound", @@ -80109,7 +80325,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -80133,7 +80349,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -80157,7 +80373,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -80181,7 +80397,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -80205,7 +80421,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -80229,7 +80445,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -80253,7 +80469,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -80277,7 +80493,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "412" } ], @@ -80308,14 +80524,14 @@ "method": "child", "name": "membershipRequestsActionReject", "type": "string", - "required": false, + "parserRequired": false, "tag": "reject", "children": [ { "method": "child", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -80323,19 +80539,19 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -80345,14 +80561,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -80364,7 +80580,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -80376,7 +80592,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -80389,7 +80605,7 @@ "method": "", "name": "membershipRequestsActionRejectParticipantMixins", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "MembershipRequestsActionParticipantRequestNotFound", @@ -80399,7 +80615,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -80423,7 +80639,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -80519,14 +80735,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorMembershipRequestsActionClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -80536,7 +80752,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -80544,7 +80760,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -80573,7 +80789,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -80581,7 +80797,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -80610,7 +80826,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -80618,7 +80834,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -80647,7 +80863,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -80655,7 +80871,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -80684,7 +80900,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -80692,7 +80908,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -80721,14 +80937,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -80804,14 +81020,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -80821,7 +81037,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -80829,7 +81045,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -80858,7 +81074,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -80866,7 +81082,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -80895,7 +81111,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -80903,7 +81119,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -80932,14 +81148,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -80965,7 +81181,7 @@ "moduleName": "WASmaxOutGroupsPromoteDemoteAdminRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsPromoteDemoteAdminRPC", "exportedFunction": "makePromoteDemoteAdminRequestAdminPromoteParticipant", "allExports": [ @@ -80978,7 +81194,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "admin", @@ -81036,21 +81252,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -81073,7 +81290,7 @@ "method": "child", "name": "adminParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -81081,14 +81298,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "admin" }, { @@ -81096,7 +81313,8 @@ "name": "error", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_403_404_406_419", "module": "WASmaxInGroupsEnums", @@ -81123,15 +81341,15 @@ { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -81139,15 +81357,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -81195,21 +81413,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -81232,7 +81451,7 @@ "method": "child", "name": "adminParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -81240,14 +81459,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "admin" }, { @@ -81255,7 +81474,8 @@ "name": "error", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_403_404_406_419", "module": "WASmaxInGroupsEnums", @@ -81282,15 +81502,15 @@ { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -81298,15 +81518,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -81396,14 +81616,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorPromoteDemoteAdminClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorRateOverlimit", @@ -81413,7 +81633,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -81421,7 +81641,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -81450,7 +81670,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "blocked-integrity-enforcement" }, { @@ -81458,7 +81678,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "486" } ], @@ -81487,7 +81707,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -81495,7 +81715,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -81524,7 +81744,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -81532,7 +81752,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -81561,7 +81781,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -81569,7 +81789,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -81598,7 +81818,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -81606,7 +81826,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -81635,7 +81855,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -81643,7 +81863,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -81672,14 +81892,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -81755,14 +81975,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -81772,7 +81992,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -81780,7 +82000,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -81809,7 +82029,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -81817,7 +82037,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -81846,7 +82066,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -81854,7 +82074,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -81883,14 +82103,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -81916,7 +82136,7 @@ "moduleName": "WASmaxOutGroupsPromoteDemoteRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsPromoteDemoteRPC", "exportedFunction": "makePromoteDemoteRequestPromoteParticipant", "allExports": [ @@ -81929,7 +82149,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "promote", @@ -81980,21 +82200,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -82017,7 +82238,7 @@ "method": "child", "name": "promoteParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -82025,14 +82246,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "admin" }, { @@ -82040,7 +82261,8 @@ "name": "error", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_404_419", "module": "WASmaxInGroupsEnums", @@ -82059,15 +82281,15 @@ { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -82075,15 +82297,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -82131,21 +82353,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -82168,7 +82391,7 @@ "method": "child", "name": "promoteParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -82176,14 +82399,14 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "admin" }, { @@ -82191,7 +82414,8 @@ "name": "error", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_404_419", "module": "WASmaxInGroupsEnums", @@ -82210,15 +82434,15 @@ { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -82226,15 +82450,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -82282,21 +82506,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -82319,7 +82544,7 @@ "method": "child", "name": "demoteParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -82327,14 +82552,15 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "error", "wireName": "error", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_404_406", "module": "WASmaxInGroupsEnums", @@ -82353,15 +82579,15 @@ { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -82369,15 +82595,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -82467,14 +82693,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorPromoteDemoteClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorRateOverlimit", @@ -82484,7 +82710,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -82492,7 +82718,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -82521,7 +82747,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "blocked-integrity-enforcement" }, { @@ -82529,7 +82755,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "486" } ], @@ -82558,7 +82784,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -82566,7 +82792,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -82595,7 +82821,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -82603,7 +82829,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -82632,7 +82858,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -82640,7 +82866,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -82669,7 +82895,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -82677,7 +82903,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -82706,7 +82932,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -82714,7 +82940,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -82743,14 +82969,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -82826,14 +83052,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -82843,7 +83069,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -82851,7 +83077,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -82880,7 +83106,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -82888,7 +83114,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -82917,7 +83143,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -82925,7 +83151,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -82954,14 +83180,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -82987,7 +83213,7 @@ "moduleName": "WASmaxOutGroupsRemoveParticipantsRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsRemoveParticipantsRPC", "exportedFunction": "makeRemoveParticipantsRequestRemoveParticipant", "allExports": [ @@ -82997,7 +83223,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "remove", @@ -83035,7 +83261,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -83043,7 +83269,7 @@ "name": "removeLinkedGroups", "wireName": "linked_groups", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true", "sourcePath": [ "remove" @@ -83052,15 +83278,16 @@ { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -83083,7 +83310,7 @@ "method": "child", "name": "removeParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -83091,20 +83318,20 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -83112,15 +83339,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -83129,7 +83356,7 @@ "method": "", "name": "participantNotInGroupOrParticipantNotAllowedOrParticipantNotAcceptableOrRemoveParticipantsLinkedGroupsServerErrorMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ParticipantNotInGroup", @@ -83139,7 +83366,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -83163,7 +83390,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -83187,7 +83414,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -83211,7 +83438,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -83272,7 +83499,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -83280,7 +83507,7 @@ "name": "removeLinkedGroups", "wireName": "linked_groups", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true", "sourcePath": [ "remove" @@ -83289,15 +83516,16 @@ { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -83320,7 +83548,7 @@ "method": "child", "name": "removeParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -83328,20 +83556,20 @@ "name": "jid", "wireName": "jid", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -83349,15 +83577,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -83366,7 +83594,7 @@ "method": "", "name": "participantNotInGroupOrParticipantNotAllowedOrParticipantNotAcceptableOrRemoveParticipantsLinkedGroupsServerErrorMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "ParticipantNotInGroup", @@ -83376,7 +83604,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -83400,7 +83628,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -83424,7 +83652,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -83448,7 +83676,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -83551,14 +83779,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRemoveParticipantsClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorRateOverlimit", @@ -83568,7 +83796,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -83576,7 +83804,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -83605,7 +83833,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "payload-too-large" }, { @@ -83613,7 +83841,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "413" } ], @@ -83642,7 +83870,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -83650,7 +83878,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -83679,7 +83907,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -83687,7 +83915,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -83716,7 +83944,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -83724,7 +83952,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -83753,7 +83981,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -83761,7 +83989,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -83790,7 +84018,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -83798,7 +84026,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -83827,14 +84055,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -83910,14 +84138,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -83927,7 +84155,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -83935,7 +84163,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -83964,7 +84192,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -83972,7 +84200,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -84001,7 +84229,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -84009,7 +84237,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -84038,14 +84266,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -84071,7 +84299,7 @@ "moduleName": "WASmaxOutGroupsReportMessagesRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsReportMessagesRPC", "exportedFunction": "makeReportMessagesRequest", "allExports": [ @@ -84080,7 +84308,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "reports", @@ -84112,7 +84340,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -84152,7 +84380,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -84219,14 +84447,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorReportMessagesClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -84236,7 +84464,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -84244,7 +84472,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -84273,7 +84501,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -84281,7 +84509,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -84310,7 +84538,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -84318,7 +84546,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -84347,7 +84575,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -84355,7 +84583,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -84384,7 +84612,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -84392,7 +84620,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -84477,14 +84705,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -84494,7 +84722,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -84502,7 +84730,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -84531,7 +84759,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -84539,7 +84767,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -84568,7 +84796,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -84576,7 +84804,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -84605,14 +84833,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -84638,7 +84866,7 @@ "moduleName": "WASmaxOutGroupsRevokeRequestCodeRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsRevokeRequestCodeRPC", "exportedFunction": "makeRevokeRequestCodeRequestRevokeParticipant", "allExports": [ @@ -84648,7 +84876,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "revoke", @@ -84680,21 +84908,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -84717,7 +84946,7 @@ "method": "child", "name": "revokeParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -84725,28 +84954,28 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "404" }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -84754,15 +84983,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -84810,21 +85039,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -84847,7 +85077,7 @@ "method": "child", "name": "revokeParticipant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { @@ -84855,28 +85085,28 @@ "name": "jid", "wireName": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "error", "wireName": "error", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "404" }, { "method": "", "name": "phoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -84884,15 +85114,15 @@ { "method": "", "name": "usernameAttMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ], "sameNode": true @@ -84972,14 +85202,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -84989,7 +85219,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -84997,7 +85227,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -85026,7 +85256,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -85034,7 +85264,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -85063,7 +85293,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -85071,7 +85301,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -85100,7 +85330,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -85108,7 +85338,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -85137,7 +85367,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -85145,7 +85375,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -85174,14 +85404,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -85257,14 +85487,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -85274,7 +85504,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -85282,7 +85512,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -85311,7 +85541,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -85319,7 +85549,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -85348,7 +85578,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -85356,7 +85586,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -85385,14 +85615,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -85418,7 +85648,7 @@ "moduleName": "WASmaxOutGroupsSetDescriptionRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsSetDescriptionRPC", "exportedFunction": "makeSetDescriptionRequestDescriptionBody", "allExports": [ @@ -85428,7 +85658,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "description", @@ -85470,14 +85700,14 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -85517,14 +85747,14 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -85606,14 +85836,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSetDescriptionClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -85623,7 +85853,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -85631,7 +85861,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -85660,7 +85890,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -85668,7 +85898,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -85697,7 +85927,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -85705,7 +85935,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -85734,7 +85964,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -85742,7 +85972,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -85771,7 +86001,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -85779,7 +86009,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -85808,7 +86038,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -85816,14 +86046,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -85831,14 +86061,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -85869,7 +86099,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -85877,7 +86107,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -85906,14 +86136,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -85989,14 +86219,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -86006,7 +86236,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -86014,7 +86244,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -86043,7 +86273,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -86051,7 +86281,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -86080,7 +86310,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -86088,7 +86318,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -86117,14 +86347,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -86150,7 +86380,7 @@ "moduleName": "WASmaxOutGroupsSetPropertyRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsSetPropertyRPC", "exportedFunction": "makeSetPropertyRequestLocked", "allExports": [ @@ -86174,7 +86404,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "locked", @@ -86294,32 +86524,32 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -86327,7 +86557,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -86336,7 +86566,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -86347,44 +86577,44 @@ "method": "", "name": "hasUnlocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasFrequentlyForwardedOk", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotEphemeral", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalPropertyResponseMixinMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupJoinGroupJoinMembershipApprovalModeEnabledOrDisabledMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupJoinMembershipApprovalModeEnabled", @@ -86394,7 +86624,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on" } ], @@ -86418,7 +86648,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "off" } ], @@ -86449,37 +86679,37 @@ "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNoGroupHistory", "type": "bool", - "required": true + "parserRequired": true } ], "variants": [ @@ -86518,32 +86748,32 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "hasLocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNoFrequentlyForwarded", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { @@ -86551,7 +86781,7 @@ "name": "expiration", "wireName": "expiration", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 2147483647 }, @@ -86560,7 +86790,7 @@ "name": "trigger", "wireName": "trigger", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 20 } @@ -86571,44 +86801,44 @@ "method": "", "name": "hasUnlocked", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotAnnouncement", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasFrequentlyForwardedOk", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotEphemeral", "type": "bool", - "required": true + "parserRequired": true }, { "method": "child", "name": "membershipApprovalMode", "type": "string", - "required": false, + "parserRequired": false, "tag": "membership_approval_mode", "children": [ { "method": "", "name": "membershipApprovalPropertyResponseMixinMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "groupJoinGroupJoinMembershipApprovalModeEnabledOrDisabledMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupJoinMembershipApprovalModeEnabled", @@ -86618,7 +86848,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "on" } ], @@ -86642,7 +86872,7 @@ "name": "state", "wireName": "state", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "off" } ], @@ -86673,37 +86903,37 @@ "method": "", "name": "hasAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotAllowAdminReports", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNotAllowNonAdminSubGroupCreation", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasGroupHistory", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNoGroupHistory", "type": "bool", - "required": true + "parserRequired": true } ] }, @@ -86794,14 +87024,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSetPropertyClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -86811,7 +87041,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -86819,7 +87049,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -86848,7 +87078,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -86856,7 +87086,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -86885,7 +87115,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -86893,7 +87123,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -86922,7 +87152,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -86930,7 +87160,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -86959,7 +87189,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -86967,7 +87197,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -86996,7 +87226,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "resource-limit" }, { @@ -87004,7 +87234,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -87033,7 +87263,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -87041,7 +87271,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -87070,7 +87300,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -87078,7 +87308,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -87107,7 +87337,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "upgrade-required" }, { @@ -87115,7 +87345,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "426" } ], @@ -87144,14 +87374,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -87227,14 +87457,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -87244,7 +87474,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -87252,7 +87482,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -87281,7 +87511,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -87289,7 +87519,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -87318,7 +87548,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -87326,7 +87556,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -87355,14 +87585,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -87388,7 +87618,7 @@ "moduleName": "WASmaxOutGroupsSetSubjectRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsSetSubjectRPC", "exportedFunction": "makeSetSubjectRequest", "allExports": [ @@ -87397,7 +87627,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "subject", @@ -87416,7 +87646,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -87456,7 +87686,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -87538,14 +87768,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSetSubjectClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -87555,7 +87785,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -87563,7 +87793,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -87592,7 +87822,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -87600,7 +87830,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -87629,7 +87859,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -87637,7 +87867,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -87666,7 +87896,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "forbidden" }, { @@ -87674,7 +87904,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "403" } ], @@ -87703,7 +87933,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -87711,14 +87941,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -87726,14 +87956,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -87764,7 +87994,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "locked" }, { @@ -87772,7 +88002,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "423" } ], @@ -87801,7 +88031,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -87809,7 +88039,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -87838,14 +88068,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -87921,14 +88151,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -87938,7 +88168,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -87946,7 +88176,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -87975,7 +88205,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -87983,7 +88213,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -88012,7 +88242,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -88020,7 +88250,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -88049,14 +88279,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -88082,7 +88312,7 @@ "moduleName": "WASmaxOutGroupsSubGroupSuggestionsActionRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsSubGroupSuggestionsActionRPC", "exportedFunction": "makeSubGroupSuggestionsActionRequestSubGroupSuggestionsActionApproveSubGroupSuggestion", "allExports": [ @@ -88097,7 +88327,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "sub_group_suggestions_action", @@ -88156,21 +88386,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -88193,14 +88424,14 @@ "method": "child", "name": "subGroupSuggestionsActionApprove", "type": "string", - "required": false, + "parserRequired": false, "tag": "approve", "children": [ { "method": "child", "name": "subGroupSuggestion", "type": "string", - "required": true, + "parserRequired": true, "tag": "sub_group_suggestion", "children": [ { @@ -88208,27 +88439,27 @@ "name": "creator", "wireName": "creator", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrGroupJid", "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -88237,7 +88468,7 @@ "method": "", "name": "subGroupSuggestionsApprovalErrors", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "SubGroupSuggestionsActionSubGroupSuggestionNotFound", @@ -88247,7 +88478,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -88271,7 +88502,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -88295,7 +88526,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -88319,7 +88550,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "433" } ], @@ -88343,7 +88574,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -88374,14 +88605,14 @@ "method": "child", "name": "subGroupSuggestionsActionReject", "type": "string", - "required": false, + "parserRequired": false, "tag": "reject", "children": [ { "method": "child", "name": "subGroupSuggestion", "type": "string", - "required": true, + "parserRequired": true, "tag": "sub_group_suggestion", "children": [ { @@ -88389,27 +88620,27 @@ "name": "creator", "wireName": "creator", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrGroupJid", "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -88417,15 +88648,15 @@ { "method": "", "name": "subGroupSuggestionsActionSubGroupSuggestionNotFoundMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -88434,14 +88665,14 @@ { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -88451,14 +88682,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -88470,7 +88701,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -88482,7 +88713,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -88504,14 +88735,14 @@ "method": "child", "name": "subGroupSuggestionsActionCancel", "type": "string", - "required": false, + "parserRequired": false, "tag": "cancel", "children": [ { "method": "child", "name": "subGroupSuggestion", "type": "string", - "required": true, + "parserRequired": true, "tag": "sub_group_suggestion", "children": [ { @@ -88519,20 +88750,20 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "subGroupSuggestionsActionSubGroupSuggestionNotFoundMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -88541,14 +88772,14 @@ { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -88558,14 +88789,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -88577,7 +88808,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -88589,7 +88820,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -88644,21 +88875,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "", "name": "groupAddressingModeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "addressingMode", "wireName": "addressing_mode", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_LID_PN", "module": "WASmaxInGroupsEnums", @@ -88681,14 +88913,14 @@ "method": "child", "name": "subGroupSuggestionsActionApprove", "type": "string", - "required": false, + "parserRequired": false, "tag": "approve", "children": [ { "method": "child", "name": "subGroupSuggestion", "type": "string", - "required": true, + "parserRequired": true, "tag": "sub_group_suggestion", "children": [ { @@ -88696,27 +88928,27 @@ "name": "creator", "wireName": "creator", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrGroupJid", "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -88725,7 +88957,7 @@ "method": "", "name": "subGroupSuggestionsApprovalErrors", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "SubGroupSuggestionsActionSubGroupSuggestionNotFound", @@ -88735,7 +88967,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -88759,7 +88991,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -88783,7 +89015,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "419" } ], @@ -88807,7 +89039,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "433" } ], @@ -88831,7 +89063,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -88862,14 +89094,14 @@ "method": "child", "name": "subGroupSuggestionsActionReject", "type": "string", - "required": false, + "parserRequired": false, "tag": "reject", "children": [ { "method": "child", "name": "subGroupSuggestion", "type": "string", - "required": true, + "parserRequired": true, "tag": "sub_group_suggestion", "children": [ { @@ -88877,27 +89109,27 @@ "name": "creator", "wireName": "creator", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrGroupJid", "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "groupCreatorPhoneNumberMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrUserJid", "name": "creatorPn", "wireName": "creator_pn", "type": "user_jid", - "required": true + "parserRequired": true } ], "sameNode": true @@ -88905,15 +89137,15 @@ { "method": "", "name": "subGroupSuggestionsActionSubGroupSuggestionNotFoundMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -88922,14 +89154,14 @@ { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -88939,14 +89171,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -88958,7 +89190,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -88970,7 +89202,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -88992,14 +89224,14 @@ "method": "child", "name": "subGroupSuggestionsActionCancel", "type": "string", - "required": false, + "parserRequired": false, "tag": "cancel", "children": [ { "method": "child", "name": "subGroupSuggestion", "type": "string", - "required": true, + "parserRequired": true, "tag": "sub_group_suggestion", "children": [ { @@ -89007,20 +89239,20 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "", "name": "subGroupSuggestionsActionSubGroupSuggestionNotFoundMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -89029,14 +89261,14 @@ { "method": "", "name": "identityMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "", "name": "identityTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PhoneNumberAndUsernameAtt", @@ -89046,14 +89278,14 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -89065,7 +89297,7 @@ "name": "phoneNumber", "wireName": "phone_number", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -89077,7 +89309,7 @@ "name": "username", "wireName": "username", "type": "string", - "required": true + "parserRequired": true } ] } @@ -89159,14 +89391,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSubGroupSuggestionsActionClientErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -89176,7 +89408,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -89184,7 +89416,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -89213,7 +89445,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -89221,7 +89453,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -89250,7 +89482,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -89258,7 +89490,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -89287,7 +89519,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -89295,7 +89527,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -89324,14 +89556,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 400, "intMax": 499 } @@ -89407,14 +89639,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -89424,7 +89656,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -89432,7 +89664,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -89461,7 +89693,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -89469,7 +89701,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -89498,7 +89730,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -89506,7 +89738,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -89535,14 +89767,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -89568,7 +89800,7 @@ "moduleName": "WASmaxOutGroupsUnlinkGroupsRequest", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "WASmaxGroupsUnlinkGroupsRPC", "exportedFunction": "makeUnlinkGroupsRequestUnlinkGroup", "allExports": [ @@ -89578,7 +89810,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "unlink", @@ -89622,7 +89854,7 @@ "name": "unlinkUnlinkType", "wireName": "unlink_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "sub_group", "sourcePath": [ "unlink" @@ -89633,14 +89865,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "unlinkGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -89648,21 +89880,21 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "removeOrphanedMembers", "wireName": "remove_orphaned_members", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "subGroupBadRequestOrNotAuthorizedOrNotExistOrNotAcceptableOrPartialServerErrorOrServerErrorMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "SubGroupBadRequest", @@ -89672,7 +89904,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -89696,7 +89928,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -89720,7 +89952,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -89744,7 +89976,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -89768,7 +90000,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -89792,7 +90024,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -89853,7 +90085,7 @@ "name": "unlinkUnlinkType", "wireName": "unlink_type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "sub_group", "sourcePath": [ "unlink" @@ -89864,14 +90096,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "unlinkGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -89879,21 +90111,21 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "removeOrphanedMembers", "wireName": "remove_orphaned_members", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "subGroupBadRequestOrNotAuthorizedOrNotExistOrNotAcceptableOrPartialServerErrorOrServerErrorMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "SubGroupBadRequest", @@ -89903,7 +90135,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -89927,7 +90159,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -89951,7 +90183,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -89975,7 +90207,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "406" } ], @@ -89999,7 +90231,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -90023,7 +90255,7 @@ "name": "error", "wireName": "error", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -90106,14 +90338,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorUnlinkGroupsClientError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -90123,7 +90355,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -90131,7 +90363,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -90160,7 +90392,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -90168,7 +90400,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -90197,7 +90429,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -90205,7 +90437,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -90234,7 +90466,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -90242,14 +90474,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -90257,14 +90489,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -90351,14 +90583,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorServerErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorInternalServerError", @@ -90368,7 +90600,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -90376,7 +90608,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -90405,7 +90637,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -90413,7 +90645,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -90442,7 +90674,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "partial-server-error" }, { @@ -90450,7 +90682,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "530" } ], @@ -90479,14 +90711,14 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 500, "intMax": 599 } @@ -90512,7 +90744,7 @@ "moduleName": "WAWebGroupInviteJob", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "parserName": "queryGroupInviteCodeParser", "exportedFunction": "resetGroupInviteCode", "allExports": [ @@ -90522,7 +90754,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "group_jid", "children": [ { "tag": "invite", @@ -90540,14 +90772,14 @@ "method": "child", "name": "invite", "type": "string", - "required": true, + "parserRequired": true, "tag": "invite", "children": [ { "method": "attrString", "name": "code", "type": "string", - "required": true + "parserRequired": true } ] } @@ -90558,7 +90790,7 @@ "moduleName": "WAWebGroupInviteJob", "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "g.us", "parserName": "queryGroupInviteCodeParser", "exportedFunction": "resetGroupInviteCode", "allExports": [ @@ -90568,7 +90800,7 @@ "request": { "namespace": "w:g2", "iqType": "set", - "target": "s.whatsapp.net", + "target": "g.us", "children": [ { "tag": "invite", @@ -90592,14 +90824,14 @@ "method": "child", "name": "invite", "type": "string", - "required": true, + "parserRequired": true, "tag": "invite", "children": [ { "method": "attrString", "name": "code", "type": "string", - "required": true + "parserRequired": true } ] } @@ -90638,44 +90870,44 @@ "method": "child", "name": "media_conn", "type": "string", - "required": true, + "parserRequired": true, "tag": "media_conn", "children": [ { "method": "attrString", "name": "auth", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrFutureTime", "name": "auth_ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrFutureTime", "name": "ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "max_buckets", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "max_manual_retry", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "max_auto_download_retry", "type": "integer", - "required": false + "parserRequired": false } ] } @@ -90719,14 +90951,14 @@ "method": "child", "name": "result", "type": "string", - "required": true, + "parserRequired": true, "tag": "result", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ] } @@ -90775,14 +91007,14 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { @@ -90790,7 +91022,7 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true } ] } @@ -90867,7 +91099,7 @@ "method": "child", "name": "accountCustomPaymentMethodCustomPaymentMethodMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "custom_payment_method", "children": [ { @@ -90875,7 +91107,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_PAYONDELIVERY_PIXKEY", "module": "WASmaxInBrPaymentEnums", @@ -90896,7 +91129,7 @@ "name": "country", "wireName": "country", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "BR" }, { @@ -90904,14 +91137,15 @@ "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "flow", "wireName": "flow", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_P2M_P2P", "module": "WASmaxInBrPaymentEnums", @@ -90932,14 +91166,15 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -90960,7 +91195,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -90979,14 +91215,14 @@ { "method": "", "name": "customPaymentMethodMetaDataInfoMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "metadata", "type": "string", - "required": true, + "parserRequired": true, "tag": "metadata", "children": [ { @@ -90994,14 +91230,14 @@ "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true, @@ -91023,7 +91259,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -91062,7 +91298,7 @@ "method": "child", "name": "accountCustomPaymentMethodCustomPaymentMethodMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "custom_payment_method", "children": [ { @@ -91070,7 +91306,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_PAYONDELIVERY_PIXKEY", "module": "WASmaxInBrPaymentEnums", @@ -91091,7 +91328,7 @@ "name": "country", "wireName": "country", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "BR" }, { @@ -91099,14 +91336,15 @@ "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "flow", "wireName": "flow", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_P2M_P2P", "module": "WASmaxInBrPaymentEnums", @@ -91127,14 +91365,15 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91155,7 +91394,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91174,14 +91414,14 @@ { "method": "", "name": "customPaymentMethodMetaDataInfoMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "metadata", "type": "string", - "required": true, + "parserRequired": true, "tag": "metadata", "children": [ { @@ -91189,14 +91429,14 @@ "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true, @@ -91218,7 +91458,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -91261,7 +91501,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { @@ -91269,7 +91509,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -91279,7 +91519,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -91338,7 +91578,7 @@ "method": "child", "name": "accountPaymentMethodsMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "account", "children": [ { @@ -91346,34 +91586,34 @@ "name": "version", "wireName": "version", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "instanceId", "wireName": "instance-id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "waSupportPhoneNumber", "wireName": "wa-support-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "child", "name": "card", "type": "string", - "required": true, + "parserRequired": true, "tag": "card", "children": [ { "method": "", "name": "bROrMXOrESCardMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BRCard", @@ -91383,21 +91623,22 @@ "name": "imageContentId", "wireName": "image-content-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "bindingType", "wireName": "binding-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "needsDeviceBinding", "wireName": "needs-device-binding", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91418,7 +91659,8 @@ "name": "state", "wireName": "state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_DELETED_INACTIVE_NEEDSRETOKENIZATION_NEEDSRETOKENIZATIONDELETED_SUSPENDED", "module": "WASmaxInBrPaymentEnums", @@ -91455,21 +91697,22 @@ "name": "bankName", "wireName": "bank-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "bankPhoneNumber", "wireName": "bank-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "automaticBinding", "wireName": "automatic-binding", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91490,14 +91733,15 @@ "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "verified", "wireName": "verified", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91518,28 +91762,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "networkType", "wireName": "network-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "timeLastAdded", "wireName": "time-last-added", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_EXPIRED_SUSPENDED_VOIDED", "module": "WASmaxInBrPaymentEnums", @@ -91568,7 +91813,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91589,7 +91835,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91610,7 +91857,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91631,7 +91879,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91652,7 +91901,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91673,7 +91923,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91694,28 +91945,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91736,7 +91988,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91757,7 +92010,8 @@ "name": "capabilitiesEditable", "wireName": "editable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91781,7 +92035,8 @@ "name": "capabilitiesVerifiable", "wireName": "verifiable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91805,7 +92060,8 @@ "name": "capabilitiesDefaultEligible", "wireName": "default-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91829,7 +92085,8 @@ "name": "capabilitiesDefaultEligibleP2p", "wireName": "default-eligible-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91853,7 +92110,8 @@ "name": "capabilitiesDefaultEligibleP2m", "wireName": "default-eligible-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -91877,7 +92135,8 @@ "name": "capabilitiesP2pSend", "wireName": "p2p-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -91905,7 +92164,8 @@ "name": "capabilitiesP2pReceive", "wireName": "p2p-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -91933,7 +92193,8 @@ "name": "capabilitiesP2mSend", "wireName": "p2m-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -91961,7 +92222,8 @@ "name": "capabilitiesP2mReceive", "wireName": "p2m-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -91987,15 +92249,16 @@ { "method": "", "name": "comboCardCapabilitiesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "capabilitiesP2mCreditEligible", "wireName": "p2m-credit-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92019,7 +92282,8 @@ "name": "capabilitiesP2mDebitEligible", "wireName": "p2m-debit-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92057,21 +92321,22 @@ "name": "image", "wireName": "image", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "verified", "wireName": "verified", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92092,28 +92357,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "networkType", "wireName": "network-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "timeLastAdded", "wireName": "time-last-added", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_EXPIRED_SUSPENDED_VOIDED", "module": "WASmaxInBrPaymentEnums", @@ -92142,7 +92408,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92163,7 +92430,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92184,7 +92452,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92205,7 +92474,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92226,7 +92496,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92247,7 +92518,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92268,28 +92540,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92310,7 +92583,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92331,7 +92605,8 @@ "name": "capabilitiesEditable", "wireName": "editable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92355,7 +92630,8 @@ "name": "capabilitiesVerifiable", "wireName": "verifiable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92379,7 +92655,8 @@ "name": "capabilitiesDefaultEligible", "wireName": "default-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92403,7 +92680,8 @@ "name": "capabilitiesDefaultEligibleP2p", "wireName": "default-eligible-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92427,7 +92705,8 @@ "name": "capabilitiesDefaultEligibleP2m", "wireName": "default-eligible-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92451,7 +92730,8 @@ "name": "capabilitiesP2pSend", "wireName": "p2p-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -92479,7 +92759,8 @@ "name": "capabilitiesP2pReceive", "wireName": "p2p-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -92507,7 +92788,8 @@ "name": "capabilitiesP2mSend", "wireName": "p2m-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -92535,7 +92817,8 @@ "name": "capabilitiesP2mReceive", "wireName": "p2m-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -92574,14 +92857,15 @@ "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "verified", "wireName": "verified", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92602,28 +92886,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "networkType", "wireName": "network-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "timeLastAdded", "wireName": "time-last-added", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_EXPIRED_SUSPENDED_VOIDED", "module": "WASmaxInBrPaymentEnums", @@ -92652,7 +92937,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92673,7 +92959,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92694,7 +92981,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92715,7 +93003,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92736,7 +93025,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92757,7 +93047,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92778,28 +93069,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92820,7 +93112,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92841,7 +93134,8 @@ "name": "capabilitiesEditable", "wireName": "editable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92865,7 +93159,8 @@ "name": "capabilitiesVerifiable", "wireName": "verifiable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92889,7 +93184,8 @@ "name": "capabilitiesDefaultEligible", "wireName": "default-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92913,7 +93209,8 @@ "name": "capabilitiesDefaultEligibleP2p", "wireName": "default-eligible-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92937,7 +93234,8 @@ "name": "capabilitiesDefaultEligibleP2m", "wireName": "default-eligible-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -92961,7 +93259,8 @@ "name": "capabilitiesP2pSend", "wireName": "p2p-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -92989,7 +93288,8 @@ "name": "capabilitiesP2pReceive", "wireName": "p2p-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -93017,7 +93317,8 @@ "name": "capabilitiesP2mSend", "wireName": "p2m-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -93045,7 +93346,8 @@ "name": "capabilitiesP2mReceive", "wireName": "p2m-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -93085,7 +93387,7 @@ "method": "child", "name": "bank", "type": "string", - "required": true, + "parserRequired": true, "tag": "bank", "children": [ { @@ -93093,7 +93395,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "upi" }, { @@ -93101,49 +93403,50 @@ "name": "vpa", "wireName": "vpa", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "provider", "wireName": "provider", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "vpaId", "wireName": "vpa-id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "accountNumber", "wireName": "account-number", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "mmid", "wireName": "mmid", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "accountName", "wireName": "account-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "isMpinSet", "wireName": "is-mpin-set", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93164,7 +93467,7 @@ "name": "atmPinLength", "wireName": "atm-pin-length", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 }, @@ -93173,7 +93476,7 @@ "name": "mpinLength", "wireName": "mpin-length", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 }, @@ -93182,7 +93485,7 @@ "name": "otpLength", "wireName": "otp-length", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 }, @@ -93191,35 +93494,36 @@ "name": "image", "wireName": "image", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "bankName", "wireName": "bank-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "bankPhoneNumber", "wireName": "bank-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "code", "wireName": "code", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "pinFormatVersion", "wireName": "pin-format-version", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1_2", "module": "WASmaxInBrPaymentEnums", @@ -93240,49 +93544,50 @@ "name": "upiBankInfo", "wireName": "upi-bank-info", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "transactionPrefix", "wireName": "transaction-prefix", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "accountType", "wireName": "account-type", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "bankRefId", "wireName": "bank-ref-id", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "ifscCode", "wireName": "ifsc-code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "accountRefId", "wireName": "account-ref-id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "isAadhaarEnabled", "wireName": "is-aadhaar-enabled", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93303,7 +93608,8 @@ "name": "isInternationalPayEnabled", "wireName": "is_international_pay_enabled", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93324,7 +93630,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93345,7 +93652,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93366,7 +93674,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93387,7 +93696,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93408,7 +93718,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93429,7 +93740,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93450,28 +93762,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93492,7 +93805,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93515,7 +93829,7 @@ "method": "child", "name": "merchant", "type": "string", - "required": true, + "parserRequired": true, "tag": "merchant", "children": [ { @@ -93523,14 +93837,15 @@ "name": "gatewayName", "wireName": "gateway-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACCOUNTPENDINGLINKING_ACTIVE_EXTERNALLYDISABLED_HARDBLOCKED_INACTIVE_INITED_INTEGRITYBLOCKED_PENDING_SOFTBLOCKED", "module": "WASmaxInBrPaymentEnums", @@ -93579,21 +93894,21 @@ "name": "dashboardUrl", "wireName": "dashboard-url", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "logoUri", "wireName": "logo-uri", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "maxInstallmentCount", "wireName": "max_installment_count", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 50 }, @@ -93602,21 +93917,22 @@ "name": "merchantId", "wireName": "merchant-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "businessName", "wireName": "business-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "canSell", "wireName": "can-sell", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93637,7 +93953,8 @@ "name": "canPayout", "wireName": "can-payout", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93658,7 +93975,8 @@ "name": "canAddPayout", "wireName": "can-add-payout", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93679,21 +93997,22 @@ "name": "supportPhoneNumber", "wireName": "support-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "providerType", "wireName": "provider-type", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "pixOnboardingState", "wireName": "pix-onboarding-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1_2", "module": "WASmaxInBrPaymentEnums", @@ -93718,28 +94037,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93760,7 +94080,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93780,14 +94101,14 @@ "method": "child", "name": "payout", "type": "string", - "required": true, + "parserRequired": true, "tag": "payout", "children": [ { "method": "", "name": "payoutBankOrPrepaidCardMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PayoutBank", @@ -93797,7 +94118,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bank" }, { @@ -93805,28 +94126,29 @@ "name": "accountNumber", "wireName": "account-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "bankName", "wireName": "bank-name", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "code", "wireName": "code", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "verificationStatus", "wireName": "verification-status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAILED_PENDING_VERIFIED", "module": "WASmaxInBrPaymentEnums", @@ -93851,28 +94173,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93893,7 +94216,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93930,7 +94254,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "prepaid-card" }, { @@ -93938,35 +94262,36 @@ "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -93987,7 +94312,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94028,7 +94354,7 @@ "method": "child", "name": "alias", "type": "string", - "required": true, + "parserRequired": true, "tag": "alias", "children": [ { @@ -94036,28 +94362,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "aliasValue", "wireName": "alias_value", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "aliasId", "wireName": "alias_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "aliasType", "wireName": "alias_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_MOBILENUMBER_NUMERICID", "module": "WASmaxInBrPaymentEnums", @@ -94078,7 +94405,8 @@ "name": "aliasStatus", "wireName": "alias_status", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_ACTIVEPENDING_ACTIVESTATUSPENDING_AVAILABLE_AVAILABLEPENDING_AVAILABLESTATUSPENDING_BLOCKED_DEREGISTERED_DEREGISTEREDPENDING_INACTIVE_INACTIVEPENDING_INACTIVESTATUSPENDING_UNKNOWN", "module": "WASmaxInBrPaymentEnums", @@ -94145,7 +94473,7 @@ "method": "child", "name": "customPaymentMethod", "type": "string", - "required": true, + "parserRequired": true, "tag": "custom_payment_method", "children": [ { @@ -94153,7 +94481,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_PAYONDELIVERY_PIXKEY", "module": "WASmaxInBrPaymentEnums", @@ -94174,7 +94503,7 @@ "name": "country", "wireName": "country", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "BR" }, { @@ -94182,14 +94511,15 @@ "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "flow", "wireName": "flow", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_P2M_P2P", "module": "WASmaxInBrPaymentEnums", @@ -94210,14 +94540,15 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94238,7 +94569,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94257,14 +94589,14 @@ { "method": "", "name": "customPaymentMethodMetaDataInfoMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "metadata", "type": "string", - "required": true, + "parserRequired": true, "tag": "metadata", "children": [ { @@ -94272,14 +94604,14 @@ "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true, @@ -94301,7 +94633,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -94340,7 +94672,7 @@ "method": "child", "name": "accountPaymentMethodsMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "account", "children": [ { @@ -94348,34 +94680,34 @@ "name": "version", "wireName": "version", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "instanceId", "wireName": "instance-id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "waSupportPhoneNumber", "wireName": "wa-support-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "child", "name": "card", "type": "string", - "required": true, + "parserRequired": true, "tag": "card", "children": [ { "method": "", "name": "bROrMXOrESCardMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "BRCard", @@ -94385,21 +94717,22 @@ "name": "imageContentId", "wireName": "image-content-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "bindingType", "wireName": "binding-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "needsDeviceBinding", "wireName": "needs-device-binding", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94420,7 +94753,8 @@ "name": "state", "wireName": "state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_DELETED_INACTIVE_NEEDSRETOKENIZATION_NEEDSRETOKENIZATIONDELETED_SUSPENDED", "module": "WASmaxInBrPaymentEnums", @@ -94457,21 +94791,22 @@ "name": "bankName", "wireName": "bank-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "bankPhoneNumber", "wireName": "bank-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "automaticBinding", "wireName": "automatic-binding", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94492,14 +94827,15 @@ "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "verified", "wireName": "verified", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94520,28 +94856,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "networkType", "wireName": "network-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "timeLastAdded", "wireName": "time-last-added", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_EXPIRED_SUSPENDED_VOIDED", "module": "WASmaxInBrPaymentEnums", @@ -94570,7 +94907,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94591,7 +94929,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94612,7 +94951,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94633,7 +94973,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94654,7 +94995,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94675,7 +95017,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94696,28 +95039,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94738,7 +95082,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94759,7 +95104,8 @@ "name": "capabilitiesEditable", "wireName": "editable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94783,7 +95129,8 @@ "name": "capabilitiesVerifiable", "wireName": "verifiable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94807,7 +95154,8 @@ "name": "capabilitiesDefaultEligible", "wireName": "default-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94831,7 +95179,8 @@ "name": "capabilitiesDefaultEligibleP2p", "wireName": "default-eligible-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94855,7 +95204,8 @@ "name": "capabilitiesDefaultEligibleP2m", "wireName": "default-eligible-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -94879,7 +95229,8 @@ "name": "capabilitiesP2pSend", "wireName": "p2p-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -94907,7 +95258,8 @@ "name": "capabilitiesP2pReceive", "wireName": "p2p-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -94935,7 +95287,8 @@ "name": "capabilitiesP2mSend", "wireName": "p2m-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -94963,7 +95316,8 @@ "name": "capabilitiesP2mReceive", "wireName": "p2m-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -94989,15 +95343,16 @@ { "method": "", "name": "comboCardCapabilitiesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "capabilitiesP2mCreditEligible", "wireName": "p2m-credit-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95021,7 +95376,8 @@ "name": "capabilitiesP2mDebitEligible", "wireName": "p2m-debit-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95059,21 +95415,22 @@ "name": "image", "wireName": "image", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "verified", "wireName": "verified", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95094,28 +95451,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "networkType", "wireName": "network-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "timeLastAdded", "wireName": "time-last-added", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_EXPIRED_SUSPENDED_VOIDED", "module": "WASmaxInBrPaymentEnums", @@ -95144,7 +95502,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95165,7 +95524,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95186,7 +95546,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95207,7 +95568,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95228,7 +95590,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95249,7 +95612,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95270,28 +95634,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95312,7 +95677,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95333,7 +95699,8 @@ "name": "capabilitiesEditable", "wireName": "editable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95357,7 +95724,8 @@ "name": "capabilitiesVerifiable", "wireName": "verifiable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95381,7 +95749,8 @@ "name": "capabilitiesDefaultEligible", "wireName": "default-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95405,7 +95774,8 @@ "name": "capabilitiesDefaultEligibleP2p", "wireName": "default-eligible-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95429,7 +95799,8 @@ "name": "capabilitiesDefaultEligibleP2m", "wireName": "default-eligible-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95453,7 +95824,8 @@ "name": "capabilitiesP2pSend", "wireName": "p2p-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -95481,7 +95853,8 @@ "name": "capabilitiesP2pReceive", "wireName": "p2p-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -95509,7 +95882,8 @@ "name": "capabilitiesP2mSend", "wireName": "p2m-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -95537,7 +95911,8 @@ "name": "capabilitiesP2mReceive", "wireName": "p2m-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -95576,14 +95951,15 @@ "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "verified", "wireName": "verified", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95604,28 +95980,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "networkType", "wireName": "network-type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "timeLastAdded", "wireName": "time-last-added", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_EXPIRED_SUSPENDED_VOIDED", "module": "WASmaxInBrPaymentEnums", @@ -95654,7 +96031,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95675,7 +96053,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95696,7 +96075,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95717,7 +96097,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95738,7 +96119,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95759,7 +96141,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95780,28 +96163,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95822,7 +96206,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95843,7 +96228,8 @@ "name": "capabilitiesEditable", "wireName": "editable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95867,7 +96253,8 @@ "name": "capabilitiesVerifiable", "wireName": "verifiable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95891,7 +96278,8 @@ "name": "capabilitiesDefaultEligible", "wireName": "default-eligible", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95915,7 +96303,8 @@ "name": "capabilitiesDefaultEligibleP2p", "wireName": "default-eligible-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95939,7 +96328,8 @@ "name": "capabilitiesDefaultEligibleP2m", "wireName": "default-eligible-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -95963,7 +96353,8 @@ "name": "capabilitiesP2pSend", "wireName": "p2p-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -95991,7 +96382,8 @@ "name": "capabilitiesP2pReceive", "wireName": "p2p-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -96019,7 +96411,8 @@ "name": "capabilitiesP2mSend", "wireName": "p2m-send", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -96047,7 +96440,8 @@ "name": "capabilitiesP2mReceive", "wireName": "p2m-receive", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DISABLED_ENABLED_REQUIRESVERIFICATION", "module": "WASmaxInBrPaymentEnums", @@ -96087,7 +96481,7 @@ "method": "child", "name": "bank", "type": "string", - "required": true, + "parserRequired": true, "tag": "bank", "children": [ { @@ -96095,7 +96489,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "upi" }, { @@ -96103,49 +96497,50 @@ "name": "vpa", "wireName": "vpa", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "provider", "wireName": "provider", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "vpaId", "wireName": "vpa-id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "accountNumber", "wireName": "account-number", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "mmid", "wireName": "mmid", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "accountName", "wireName": "account-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "isMpinSet", "wireName": "is-mpin-set", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96166,7 +96561,7 @@ "name": "atmPinLength", "wireName": "atm-pin-length", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 }, @@ -96175,7 +96570,7 @@ "name": "mpinLength", "wireName": "mpin-length", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 }, @@ -96184,7 +96579,7 @@ "name": "otpLength", "wireName": "otp-length", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 100 }, @@ -96193,35 +96588,36 @@ "name": "image", "wireName": "image", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "bankName", "wireName": "bank-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "bankPhoneNumber", "wireName": "bank-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "code", "wireName": "code", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "pinFormatVersion", "wireName": "pin-format-version", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1_2", "module": "WASmaxInBrPaymentEnums", @@ -96242,49 +96638,50 @@ "name": "upiBankInfo", "wireName": "upi-bank-info", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "transactionPrefix", "wireName": "transaction-prefix", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "accountType", "wireName": "account-type", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "bankRefId", "wireName": "bank-ref-id", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "ifscCode", "wireName": "ifsc-code", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "accountRefId", "wireName": "account-ref-id", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "isAadhaarEnabled", "wireName": "is-aadhaar-enabled", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96305,7 +96702,8 @@ "name": "isInternationalPayEnabled", "wireName": "is_international_pay_enabled", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96326,7 +96724,8 @@ "name": "defaultCredit", "wireName": "default-credit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96347,7 +96746,8 @@ "name": "defaultDebit", "wireName": "default-debit", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96368,7 +96768,8 @@ "name": "defaultCreditP2p", "wireName": "default-credit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96389,7 +96790,8 @@ "name": "defaultCreditP2m", "wireName": "default-credit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96410,7 +96812,8 @@ "name": "defaultDebitP2p", "wireName": "default-debit-p2p", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96431,7 +96834,8 @@ "name": "defaultDebitP2m", "wireName": "default-debit-p2m", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96452,28 +96856,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96494,7 +96899,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96517,7 +96923,7 @@ "method": "child", "name": "merchant", "type": "string", - "required": true, + "parserRequired": true, "tag": "merchant", "children": [ { @@ -96525,14 +96931,15 @@ "name": "gatewayName", "wireName": "gateway-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "displayState", "wireName": "display-state", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACCOUNTPENDINGLINKING_ACTIVE_EXTERNALLYDISABLED_HARDBLOCKED_INACTIVE_INITED_INTEGRITYBLOCKED_PENDING_SOFTBLOCKED", "module": "WASmaxInBrPaymentEnums", @@ -96581,21 +96988,21 @@ "name": "dashboardUrl", "wireName": "dashboard-url", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "logoUri", "wireName": "logo-uri", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "maxInstallmentCount", "wireName": "max_installment_count", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 50 }, @@ -96604,21 +97011,22 @@ "name": "merchantId", "wireName": "merchant-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "businessName", "wireName": "business-name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "canSell", "wireName": "can-sell", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96639,7 +97047,8 @@ "name": "canPayout", "wireName": "can-payout", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96660,7 +97069,8 @@ "name": "canAddPayout", "wireName": "can-add-payout", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96681,21 +97091,22 @@ "name": "supportPhoneNumber", "wireName": "support-phone-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "providerType", "wireName": "provider-type", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "pixOnboardingState", "wireName": "pix-onboarding-state", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1_2", "module": "WASmaxInBrPaymentEnums", @@ -96720,28 +97131,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96762,7 +97174,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96782,14 +97195,14 @@ "method": "child", "name": "payout", "type": "string", - "required": true, + "parserRequired": true, "tag": "payout", "children": [ { "method": "", "name": "payoutBankOrPrepaidCardMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "PayoutBank", @@ -96799,7 +97212,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bank" }, { @@ -96807,28 +97220,29 @@ "name": "accountNumber", "wireName": "account-number", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "bankName", "wireName": "bank-name", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "code", "wireName": "code", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrEnum", "name": "verificationStatus", "wireName": "verification-status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FAILED_PENDING_VERIFIED", "module": "WASmaxInBrPaymentEnums", @@ -96853,28 +97267,29 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96895,7 +97310,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96932,7 +97348,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "prepaid-card" }, { @@ -96940,35 +97356,36 @@ "name": "last4", "wireName": "last4", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "country", "wireName": "country", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -96989,7 +97406,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -97030,7 +97448,7 @@ "method": "child", "name": "alias", "type": "string", - "required": true, + "parserRequired": true, "tag": "alias", "children": [ { @@ -97038,28 +97456,29 @@ "name": "type", "wireName": "type", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "aliasValue", "wireName": "alias_value", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "aliasId", "wireName": "alias_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "aliasType", "wireName": "alias_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_MOBILENUMBER_NUMERICID", "module": "WASmaxInBrPaymentEnums", @@ -97080,7 +97499,8 @@ "name": "aliasStatus", "wireName": "alias_status", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_ACTIVE_ACTIVEPENDING_ACTIVESTATUSPENDING_AVAILABLE_AVAILABLEPENDING_AVAILABLESTATUSPENDING_BLOCKED_DEREGISTERED_DEREGISTEREDPENDING_INACTIVE_INACTIVEPENDING_INACTIVESTATUSPENDING_UNKNOWN", "module": "WASmaxInBrPaymentEnums", @@ -97147,7 +97567,7 @@ "method": "child", "name": "customPaymentMethod", "type": "string", - "required": true, + "parserRequired": true, "tag": "custom_payment_method", "children": [ { @@ -97155,7 +97575,8 @@ "name": "type", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_PAYONDELIVERY_PIXKEY", "module": "WASmaxInBrPaymentEnums", @@ -97176,7 +97597,7 @@ "name": "country", "wireName": "country", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "BR" }, { @@ -97184,14 +97605,15 @@ "name": "created", "wireName": "created", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "flow", "wireName": "flow", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_P2M_P2P", "module": "WASmaxInBrPaymentEnums", @@ -97212,14 +97634,15 @@ "name": "credentialId", "wireName": "credential-id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrEnum", "name": "p2pEligible", "wireName": "p2p-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -97240,7 +97663,8 @@ "name": "p2mEligible", "wireName": "p2m-eligible", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_0_1", "module": "WASmaxInBrPaymentEnums", @@ -97259,14 +97683,14 @@ { "method": "", "name": "customPaymentMethodMetaDataInfoMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "metadata", "type": "string", - "required": true, + "parserRequired": true, "tag": "metadata", "children": [ { @@ -97274,14 +97698,14 @@ "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true, @@ -97303,7 +97727,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -97346,7 +97770,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { @@ -97354,7 +97778,7 @@ "name": "errorText", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -97364,7 +97788,7 @@ "name": "errorCode", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "error" ] @@ -97437,7 +97861,7 @@ "name": "pictureId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97447,7 +97871,8 @@ "name": "pictureType", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_PREVIEW", "module": "WASmaxInProfilePictureEnums", @@ -97471,7 +97896,7 @@ "name": "pictureUrl", "wireName": "url", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97481,7 +97906,7 @@ "name": "pictureDirectPath", "wireName": "direct_path", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97491,7 +97916,7 @@ "name": "pictureHash", "wireName": "hash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "picture" ] @@ -97501,7 +97926,8 @@ "name": "pictureHasStaging", "wireName": "has_staging", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInProfilePictureEnums", @@ -97525,7 +97951,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -97565,7 +97991,7 @@ "name": "pictureId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97575,7 +98001,8 @@ "name": "pictureType", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_PREVIEW", "module": "WASmaxInProfilePictureEnums", @@ -97599,7 +98026,7 @@ "name": "pictureUrl", "wireName": "url", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97609,7 +98036,7 @@ "name": "pictureDirectPath", "wireName": "direct_path", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97619,7 +98046,7 @@ "name": "pictureHash", "wireName": "hash", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "picture" ] @@ -97629,7 +98056,8 @@ "name": "pictureHasStaging", "wireName": "has_staging", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInProfilePictureEnums", @@ -97653,7 +98081,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -97693,14 +98121,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "avatar", "type": "string", - "required": true, + "parserRequired": true, "tag": "avatar", "children": [ { @@ -97708,21 +98136,21 @@ "name": "url", "wireName": "url", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "poseId", "wireName": "pose_id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "hash", "wireName": "hash", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -97764,7 +98192,7 @@ "name": "pictureId", "wireName": "id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97774,7 +98202,8 @@ "name": "pictureType", "wireName": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_IMAGE_PREVIEW", "module": "WASmaxInProfilePictureEnums", @@ -97798,7 +98227,8 @@ "name": "pictureHasStaging", "wireName": "has_staging", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInProfilePictureEnums", @@ -97821,7 +98251,7 @@ "method": "contentBytes", "name": "pictureElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "picture" ] @@ -97831,7 +98261,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -97871,7 +98301,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -97948,14 +98378,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorProfilePictureGetErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -97965,7 +98395,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -97973,7 +98403,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -98002,7 +98432,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -98010,7 +98440,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -98039,7 +98469,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "item-not-found" }, { @@ -98047,7 +98477,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "404" } ], @@ -98076,7 +98506,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -98084,7 +98514,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -98113,7 +98543,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -98121,7 +98551,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -98150,7 +98580,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -98158,7 +98588,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -98187,7 +98617,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -98195,7 +98625,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -98297,32 +98727,32 @@ "method": "child", "name": "picture", "type": "string", - "required": true, + "parserRequired": true, "tag": "picture", "children": [ { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "url", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "direct_path", "type": "string", - "required": true + "parserRequired": true } ] } @@ -98373,14 +98803,14 @@ "method": "child", "name": "picture", "type": "string", - "required": true, + "parserRequired": true, "tag": "picture", "children": [ { "method": "attrInt", "name": "id", "type": "integer", - "required": true + "parserRequired": true } ] } @@ -98425,7 +98855,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -98465,7 +98895,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -98522,14 +98952,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorSendBufferNoRetryError", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -98539,7 +98969,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -98547,7 +98977,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -98576,7 +99006,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-acceptable" }, { @@ -98584,14 +99014,14 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "406" }, { "method": "child", "name": "field", "type": "string", - "required": false, + "parserRequired": false, "tag": "field", "children": [ { @@ -98599,14 +99029,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "wireName": "reason", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -98637,7 +99067,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -98645,7 +99075,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -98713,7 +99143,7 @@ "method": "child", "name": "errorIQErrorServiceUnavailableMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "error", "children": [ { @@ -98721,7 +99151,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -98729,7 +99159,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -98740,7 +99170,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" } ] @@ -98880,7 +99310,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -98888,7 +99318,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -98896,14 +99326,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -98914,7 +99344,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -98925,7 +99355,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -98936,7 +99366,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -98951,21 +99381,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "wfDeleted", "type": "string", - "required": false, + "parserRequired": false, "tag": "wf_deleted", "children": [ { "method": "contentEnum", "name": "elementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -99020,7 +99451,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -99028,7 +99459,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -99036,14 +99467,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -99054,7 +99485,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -99065,7 +99496,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -99076,7 +99507,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -99091,21 +99522,22 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "wfDeleted", "type": "string", - "required": false, + "parserRequired": false, "tag": "wf_deleted", "children": [ { "method": "contentEnum", "name": "elementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -99223,14 +99655,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorEncryptedPayloadRequestErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -99240,7 +99672,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -99248,7 +99680,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -99277,7 +99709,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -99285,7 +99717,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -99314,7 +99746,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "payload-enc-dec-failed" }, { @@ -99322,7 +99754,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "480" } ], @@ -99351,7 +99783,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -99359,7 +99791,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -99388,7 +99820,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -99396,7 +99828,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -99425,7 +99857,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -99433,7 +99865,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -99462,7 +99894,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -99470,7 +99902,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -99499,7 +99931,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -99507,7 +99939,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -99536,7 +99968,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -99544,7 +99976,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -99573,7 +100005,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-not-found" }, { @@ -99581,7 +100013,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "483" } ], @@ -99610,7 +100042,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-suspended" }, { @@ -99618,7 +100050,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "484" }, { @@ -99626,7 +100058,8 @@ "name": "ndc", "wireName": "ndc", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -99647,7 +100080,8 @@ "name": "npr", "wireName": "npr", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -99689,7 +100123,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-state-mismatch" }, { @@ -99697,7 +100131,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "485" } ], @@ -99767,7 +100201,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -99807,7 +100241,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -99879,14 +100313,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorForceDeleteStateErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -99896,7 +100330,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -99904,7 +100338,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -99933,7 +100367,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -99941,7 +100375,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -99970,7 +100404,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -99978,7 +100412,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -100007,7 +100441,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -100015,7 +100449,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -100044,7 +100478,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -100052,7 +100486,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -100081,7 +100515,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -100089,7 +100523,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -100151,7 +100585,8 @@ "method": "contentEnum", "name": "nprElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -100175,7 +100610,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -100214,7 +100649,8 @@ "method": "contentEnum", "name": "nprElementValue", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -100238,7 +100674,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -100325,14 +100761,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorForceSuspendStateErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -100342,7 +100778,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -100350,7 +100786,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -100379,7 +100815,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -100387,7 +100823,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -100416,7 +100852,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -100424,7 +100860,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -100453,7 +100889,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -100461,7 +100897,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -100490,7 +100926,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -100498,7 +100934,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -100527,7 +100963,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -100535,7 +100971,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -100564,7 +101000,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -100572,7 +101008,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -100601,7 +101037,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-not-found" }, { @@ -100609,7 +101045,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "483" } ], @@ -100638,7 +101074,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-state-mismatch" }, { @@ -100646,7 +101082,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "485" } ], @@ -100726,7 +101162,7 @@ "method": "contentInt", "name": "pingIntervalElementValue", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "ping_interval" ] @@ -100735,7 +101171,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -100743,7 +101179,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -100751,14 +101187,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -100769,7 +101205,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -100780,7 +101216,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -100791,7 +101227,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -100806,7 +101242,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -100845,7 +101281,7 @@ "method": "contentInt", "name": "pingIntervalElementValue", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "ping_interval" ] @@ -100854,7 +101290,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -100862,7 +101298,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -100870,14 +101306,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -100888,7 +101324,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -100899,7 +101335,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -100910,7 +101346,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -100925,7 +101361,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -101032,14 +101468,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGenerateAccessTokensErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -101049,7 +101485,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -101057,7 +101493,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -101086,7 +101522,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -101094,7 +101530,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -101123,7 +101559,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "payload-enc-dec-failed" }, { @@ -101131,7 +101567,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "480" } ], @@ -101160,7 +101596,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -101168,7 +101604,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -101197,7 +101633,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -101205,7 +101641,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -101234,7 +101670,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -101242,7 +101678,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -101271,7 +101707,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -101279,7 +101715,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -101308,7 +101744,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -101316,7 +101752,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -101345,7 +101781,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -101353,7 +101789,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -101382,7 +101818,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "already-exists" }, { @@ -101390,7 +101826,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "304" } ], @@ -101419,7 +101855,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-not-found" }, { @@ -101427,7 +101863,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "483" } ], @@ -101456,7 +101892,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-state-mismatch" }, { @@ -101464,7 +101900,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "485" } ], @@ -101493,7 +101929,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-not-authorized-invalid-password" }, { @@ -101501,7 +101937,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "416" } ], @@ -101596,7 +102032,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -101604,7 +102040,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -101612,14 +102048,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -101630,7 +102066,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -101641,7 +102077,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -101652,7 +102088,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -101667,7 +102103,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -101706,7 +102142,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -101714,7 +102150,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -101722,14 +102158,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -101740,7 +102176,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -101751,7 +102187,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -101762,7 +102198,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -101777,7 +102213,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -101874,14 +102310,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGenerateWaEntAcUserErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -101891,7 +102327,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -101899,7 +102335,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -101928,7 +102364,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -101936,7 +102372,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -101965,7 +102401,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "payload-enc-dec-failed" }, { @@ -101973,7 +102409,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "480" } ], @@ -102002,7 +102438,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -102010,7 +102446,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -102039,7 +102475,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -102047,7 +102483,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -102076,7 +102512,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -102084,7 +102520,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -102113,7 +102549,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -102121,7 +102557,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -102150,7 +102586,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -102158,7 +102594,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -102187,7 +102623,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -102195,7 +102631,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -102224,7 +102660,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "already-exists" }, { @@ -102232,7 +102668,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "304" } ], @@ -102261,7 +102697,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-jurisdiction-gating" }, { @@ -102269,7 +102705,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "418" } ], @@ -102345,7 +102781,7 @@ "method": "child", "name": "replyGetCertificateResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "reply", "children": [ { @@ -102353,13 +102789,13 @@ "name": "timestamp", "wireName": "timestamp", "type": "integer", - "required": true + "parserRequired": true }, { "method": "child", "name": "encryptionPem", "type": "string", - "required": false, + "parserRequired": false, "tag": "encryption_pem", "children": [ { @@ -102367,13 +102803,13 @@ "name": "ttl", "wireName": "ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4092 } @@ -102384,7 +102820,7 @@ "method": "child", "name": "signaturePem", "type": "string", - "required": false, + "parserRequired": false, "tag": "signature_pem", "children": [ { @@ -102392,13 +102828,13 @@ "name": "ttl", "wireName": "ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4092 } @@ -102409,7 +102845,7 @@ "method": "child", "name": "passwordPem", "type": "string", - "required": false, + "parserRequired": false, "tag": "password_pem", "children": [ { @@ -102417,20 +102853,20 @@ "name": "ttl", "wireName": "ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "keyId", "wireName": "key_id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4092 } @@ -102445,7 +102881,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -102484,7 +102920,7 @@ "method": "child", "name": "replyGetCertificateResponseMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "reply", "children": [ { @@ -102492,13 +102928,13 @@ "name": "timestamp", "wireName": "timestamp", "type": "integer", - "required": true + "parserRequired": true }, { "method": "child", "name": "encryptionPem", "type": "string", - "required": false, + "parserRequired": false, "tag": "encryption_pem", "children": [ { @@ -102506,13 +102942,13 @@ "name": "ttl", "wireName": "ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4092 } @@ -102523,7 +102959,7 @@ "method": "child", "name": "signaturePem", "type": "string", - "required": false, + "parserRequired": false, "tag": "signature_pem", "children": [ { @@ -102531,13 +102967,13 @@ "name": "ttl", "wireName": "ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4092 } @@ -102548,7 +102984,7 @@ "method": "child", "name": "passwordPem", "type": "string", - "required": false, + "parserRequired": false, "tag": "password_pem", "children": [ { @@ -102556,20 +102992,20 @@ "name": "ttl", "wireName": "ttl", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "keyId", "wireName": "key_id", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4092 } @@ -102584,7 +103020,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -102661,14 +103097,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorGetCertificateErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -102678,7 +103114,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -102686,7 +103122,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -102715,7 +103151,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -102723,7 +103159,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -102752,7 +103188,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -102760,7 +103196,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -102789,7 +103225,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -102797,7 +103233,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -102826,7 +103262,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -102834,7 +103270,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -102863,7 +103299,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -102871,7 +103307,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -102900,7 +103336,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "feature-not-implemented" }, { @@ -102908,7 +103344,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "501" } ], @@ -102982,7 +103418,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -102990,7 +103426,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -102998,14 +103434,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -103016,7 +103452,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -103027,7 +103463,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -103038,7 +103474,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -103053,7 +103489,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -103092,7 +103528,7 @@ "method": "child", "name": "encryptionMetadataRSAEncryptionMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "encryption_metadata", "children": [ { @@ -103100,7 +103536,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -103108,14 +103544,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rsa2048" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -103126,7 +103562,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -103137,7 +103573,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -103148,7 +103584,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -103163,7 +103599,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -103270,14 +103706,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorRefreshAccessTokensErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -103287,7 +103723,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -103295,7 +103731,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -103324,7 +103760,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -103332,7 +103768,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -103361,7 +103797,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "payload-enc-dec-failed" }, { @@ -103369,7 +103805,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "480" } ], @@ -103398,7 +103834,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -103406,7 +103842,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -103435,7 +103871,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -103443,7 +103879,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -103472,7 +103908,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -103480,7 +103916,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -103509,7 +103945,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -103517,7 +103953,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -103546,7 +103982,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -103554,7 +103990,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -103583,7 +104019,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -103591,7 +104027,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -103620,7 +104056,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-not-found" }, { @@ -103628,7 +104064,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "483" } ], @@ -103657,7 +104093,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-suspended" }, { @@ -103665,7 +104101,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "484" }, { @@ -103673,7 +104109,8 @@ "name": "ndc", "wireName": "ndc", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -103694,7 +104131,8 @@ "name": "npr", "wireName": "npr", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -103736,7 +104174,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-state-mismatch" }, { @@ -103744,7 +104182,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "485" } ], @@ -103773,7 +104211,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-not-authorized-invalid-password" }, { @@ -103781,7 +104219,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "416" } ], @@ -103843,7 +104281,7 @@ "method": "contentInt", "name": "wfStateElementValue", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "wf_state" ] @@ -103853,14 +104291,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "suspendedState", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended_state", "children": [ { @@ -103868,7 +104306,8 @@ "name": "npr", "wireName": "npr", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -103923,7 +104362,7 @@ "method": "contentInt", "name": "wfStateElementValue", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "wf_state" ] @@ -103933,14 +104372,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" }, { "method": "child", "name": "suspendedState", "type": "string", - "required": false, + "parserRequired": false, "tag": "suspended_state", "children": [ { @@ -103948,7 +104387,8 @@ "name": "npr", "wireName": "npr", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -104036,14 +104476,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorStateExistsErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -104053,7 +104493,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -104061,7 +104501,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -104090,7 +104530,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -104098,7 +104538,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -104127,7 +104567,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -104135,7 +104575,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -104164,7 +104604,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -104172,7 +104612,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -104201,7 +104641,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -104209,7 +104649,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -104238,7 +104678,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -104246,7 +104686,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -104320,7 +104760,7 @@ "method": "contentInt", "name": "pingIntervalElementValue", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "ping_interval" ] @@ -104330,7 +104770,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ], @@ -104369,7 +104809,7 @@ "method": "contentInt", "name": "pingIntervalElementValue", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "ping_interval" ] @@ -104379,7 +104819,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result" } ] @@ -104481,14 +104921,14 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "error" }, { "method": "", "name": "errorWfPingErrors", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "IQErrorBadRequest", @@ -104498,7 +104938,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "bad-request" }, { @@ -104506,7 +104946,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "400" } ], @@ -104535,7 +104975,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "request-timeout" }, { @@ -104543,7 +104983,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "408" } ], @@ -104572,7 +105012,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "payload-enc-dec-failed" }, { @@ -104580,7 +105020,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "480" } ], @@ -104609,7 +105049,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "internal-server-error" }, { @@ -104617,7 +105057,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "500" } ], @@ -104646,7 +105086,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "service-unavailable" }, { @@ -104654,7 +105094,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "503" } ], @@ -104683,7 +105123,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-authorized" }, { @@ -104691,7 +105131,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "401" } ], @@ -104720,7 +105160,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "rate-overlimit" }, { @@ -104728,7 +105168,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "429" } ], @@ -104757,7 +105197,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "not-allowed" }, { @@ -104765,7 +105205,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "405" } ], @@ -104794,7 +105234,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "conflict" }, { @@ -104802,7 +105242,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "409" } ], @@ -104831,7 +105271,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-not-found" }, { @@ -104839,7 +105279,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "483" } ], @@ -104868,7 +105308,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-suspended" }, { @@ -104876,7 +105316,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "484" }, { @@ -104884,7 +105324,8 @@ "name": "ndc", "wireName": "ndc", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -104905,7 +105346,8 @@ "name": "npr", "wireName": "npr", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -104947,7 +105389,7 @@ "name": "text", "wireName": "text", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "wf-state-mismatch" }, { @@ -104955,7 +105397,7 @@ "name": "code", "wireName": "code", "type": "integer", - "required": true, + "parserRequired": true, "literalValue": "485" } ], diff --git a/generated/manifest.json b/generated/manifest.json index 39f75574..3677c1c0 100644 --- a/generated/manifest.json +++ b/generated/manifest.json @@ -32,6 +32,14 @@ }, "excludedFragments": 66, "stanzas": 143, + "targets": { + "groupJid": 26, + "groupServer": 6, + "resolved": 138, + "server": 106, + "unknown": 5, + "unset": 0 + }, "typedResponses": 139, "unparseable": 5 }, @@ -54,37 +62,37 @@ "abprops": { "file": "abprops/index.json", "schema": "schema/abprops.schema.json", - "sha256": "8e935cd88d28fa8e2c87dee73405a4611266f7bdd4c0f6f62c2764656fc29c0a" + "sha256": "8f55c73c67c6ee632d81f3240861883ec0026abc524bdb32a73dcd500b031336" }, "appstate": { "file": "appstate/index.json", "schema": "schema/appstate.schema.json", - "sha256": "3ab0c56c54d0ba6c0e2e5b319737b799258f881a158deada1dcf8c6233d84eb8" + "sha256": "86fd39f3e7c709fe6f44c6c968aa0ef73203f321bba5b95815ba0c0738fb139f" }, "enums": { "file": "enums/index.json", "schema": "schema/enums.schema.json", - "sha256": "031e7e83d08ab71be97fe23e056e99ad590bd23dd49aec34061670d49819ed03" + "sha256": "bd8bc2a97ab35967978aeca3aa0b0b48e95da1a0f0aa4f062e01d2e4cb457799" }, "incoming": { "file": "incoming/index.json", "schema": "schema/incoming.schema.json", - "sha256": "18c955020acfc3ea86bedb4186aac951ccafdf26ede0b05554926a3157d7749e" + "sha256": "dc5700e2f8400d76f2b49876cbd860504d63b05f59db0ec3c9f67b858f9a1c83" }, "iq": { "file": "iq/index.json", "schema": "schema/iq.schema.json", - "sha256": "e59a905faf82c17a0ea21bb20b8b16f87d91fbc04cbaba3d74be7f231b0b2beb" + "sha256": "abe219f06bea1138af6b6e6970f47ace0120dfb8d87e34eed274aa4121338a9b" }, "mex": { "file": "mex/index.json", "schema": "schema/mex.schema.json", - "sha256": "e381c86874d16ec39d817fd85592b6b5e4423a68831219d5b790341993fd0b1f" + "sha256": "7d5fd5ff2dde0acebbc1b780eb728f93beb5b1490c8c56896bd5ad10292e4826" }, "notif": { "file": "notif/index.json", "schema": "schema/notif.schema.json", - "sha256": "cc09f68856975f293e7eae1bf9e5960a2b210e0b220874d5a49ef45cb9b7e0c6" + "sha256": "a9bf2d409d11eb52fc03d39c8a6d8c170f4e5920134c6cd425191d688279f6a6" }, "proto": { "file": "proto/WAProto.proto", @@ -93,37 +101,37 @@ "srvreq": { "file": "srvreq/index.json", "schema": "schema/srvreq.schema.json", - "sha256": "baec73c91ac79abc8a94f7da62ea5ae7241c1af3b44d68d5392ea46fa0d05ccd" + "sha256": "785f32b10c5a92a6f9e43e07efba4af63e4602cdd5857a5323df06b353ee35b1" }, "stanza": { "file": "stanza/index.json", "schema": "schema/stanza.schema.json", - "sha256": "57be7bb39e0e5514e1c2c0ee9aa9a22b11f7d2b53893d0b908fdbc9c7bdfffa8" + "sha256": "95aee43b67cf84ce7556298bc110f2af09cb7bdc85ed3351152285e6e38309ee" }, "tokens": { "file": "tokens/index.json", "schema": "schema/tokens.schema.json", - "sha256": "6d45399515cdc6ec55528aa56e36ecf566f06290039e3ed37a5561a272cb89f9" + "sha256": "a7ffc66bedf994e007268ace0ce64a17c0bb04e8d28fcd4770c1d1aa25d70ca6" }, "wam": { "file": "wam/index.json", "schema": "schema/wam.schema.json", - "sha256": "58c0e27e87a88b36a66a39f0202a9ca39679d2345ee5e31c92e74baca316784a" + "sha256": "4bc2f0147ffd95e1d46d0c3c1c032ffcc41e210a7e1eaf7c34c7826a62778ae1" }, "wasm": { "file": "wasm/index.json", "schema": "schema/wasm.schema.json", - "sha256": "eb728ed0e4d2a6c8952a6369b4adc79c2c9ddd1ba0fe2719a2f1209a6a42e461" + "sha256": "dd590de1b1f785057d7c5a722f95b356865d50c9c8b687c83b8ed65e6a445df7" } }, - "enumDefs": 328, + "enumDefs": 403, "generatorVersion": "0.1.0", "incomingDefs": 16, "iqModules": 33, "mexOperations": 137, "notifTypes": 27, "protoEntities": 268, - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "serverRequestDefs": 22, "stanzaDefs": 179, "tokenDoubleByte": 1024, diff --git a/generated/mex/index.json b/generated/mex/index.json index 35febd2a..da0c776c 100644 --- a/generated/mex/index.json +++ b/generated/mex/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "operations": { "ACSServerProviderConfig": { diff --git a/generated/notif/index.json b/generated/notif/index.json index 20dba6d4..36bd2c48 100644 --- a/generated/notif/index.json +++ b/generated/notif/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "dispatcherModules": [ "WAWebCommsHandleLoggedInStanza", @@ -73,32 +73,32 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrDeviceJid", "name": "from", "type": "device_jid", - "required": true + "parserRequired": true }, { "method": "child", "name": "status", "type": "string", - "required": false, + "parserRequired": false, "tag": "status", "children": [ { "method": "attrString", "name": "action", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -106,32 +106,32 @@ "method": "child", "name": "text_status", "type": "string", - "required": false, + "parserRequired": false, "tag": "text_status", "children": [ { "method": "attrString", "name": "action", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "text", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "ephemeral_duration_sec", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "last_update_time", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -139,7 +139,7 @@ "method": "child", "name": "devices", "type": "string", - "required": false, + "parserRequired": false, "tag": "devices", "children": [] }, @@ -147,27 +147,27 @@ "method": "child", "name": "blocklist", "type": "string", - "required": false, + "parserRequired": false, "tag": "blocklist", "children": [ { "method": "forEachChildWithTag", "name": "item", "type": "string", - "required": true, + "parserRequired": true, "tag": "item", "children": [ { "method": "maybeAttrString", "name": "username", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "repeats": true @@ -178,27 +178,27 @@ "method": "child", "name": "tos", "type": "string", - "required": false, + "parserRequired": false, "tag": "tos", "children": [ { "method": "forEachChildWithTag", "name": "notice", "type": "string", - "required": true, + "parserRequired": true, "tag": "notice", "children": [ { "method": "maybeAttrString", "name": "state", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -209,26 +209,26 @@ "method": "child", "name": "disappearing_mode", "type": "string", - "required": false, + "parserRequired": false, "tag": "disappearing_mode", "children": [ { "method": "attrString", "name": "action", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "duration", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "t", "type": "integer", - "required": true + "parserRequired": true } ] }, @@ -236,32 +236,32 @@ "method": "child", "name": "notice", "type": "string", - "required": false, + "parserRequired": false, "tag": "notice", "children": [ { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "stage", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "version", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "t", "type": "integer", - "required": true + "parserRequired": true } ] }, @@ -269,14 +269,14 @@ "method": "child", "name": "user", "type": "string", - "required": false, + "parserRequired": false, "tag": "user", "children": [ { "method": "maybeAttrString", "name": "state", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -284,26 +284,26 @@ "method": "child", "name": "biz_opt_out_list", "type": "string", - "required": false, + "parserRequired": false, "tag": "biz_opt_out_list", "children": [ { "method": "mapChildren", "name": "children", "type": "string", - "required": true, + "parserRequired": true, "children": [ { "method": "attrString", "name": "action", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "biz_jid", "type": "user_jid", - "required": true + "parserRequired": true } ], "repeats": true @@ -312,13 +312,13 @@ "method": "maybeAttrString", "name": "dhash", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "prev_dhash", "type": "string", - "required": false + "parserRequired": false } ] } @@ -342,25 +342,25 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "child", "name": "remove", "type": "string", - "required": false, + "parserRequired": false, "tag": "remove", "children": [] }, @@ -368,7 +368,7 @@ "method": "child", "name": "verified_name", "type": "string", - "required": false, + "parserRequired": false, "tag": "verified_name", "children": [] }, @@ -376,14 +376,14 @@ "method": "child", "name": "profile", "type": "string", - "required": false, + "parserRequired": false, "tag": "profile", "children": [ { "method": "maybeAttrString", "name": "hash", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -391,7 +391,7 @@ "method": "child", "name": "product_catalog", "type": "string", - "required": false, + "parserRequired": false, "tag": "product_catalog", "children": [] } @@ -420,13 +420,13 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "from", "type": "string", - "required": true + "parserRequired": true } ] } @@ -447,44 +447,44 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "t", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "update", "type": "string", - "required": false, + "parserRequired": false, "tag": "update", "children": [ { "method": "attrUserJid", "name": "jid", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "hash", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -492,14 +492,14 @@ "method": "child", "name": "add", "type": "string", - "required": false, + "parserRequired": false, "tag": "add", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -508,14 +508,14 @@ "method": "child", "name": "remove", "type": "string", - "required": false, + "parserRequired": false, "tag": "remove", "children": [ { "method": "attrUserJid", "name": "jid", "type": "user_jid", - "required": true + "parserRequired": true } ] }, @@ -523,44 +523,44 @@ "method": "child", "name": "modify", "type": "string", - "required": false, + "parserRequired": false, "tag": "modify", "children": [ { "method": "attrUserJid", "name": "new", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "old", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrUserJid", "name": "new_lid", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrLidUserJid", "name": "new_lid", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrUserJid", "name": "old_lid", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrLidUserJid", "name": "old_lid", "type": "lid_user_jid", - "required": true + "parserRequired": true } ] }, @@ -568,14 +568,14 @@ "method": "child", "name": "sync", "type": "string", - "required": false, + "parserRequired": false, "tag": "sync", "children": [ { "method": "attrTime", "name": "after", "type": "integer", - "required": true + "parserRequired": true } ] } @@ -605,7 +605,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "crsc_continuation" }, { @@ -613,13 +613,13 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "primaryEphemeralIdentityElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "primary_ephemeral_identity" ] @@ -629,21 +629,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -672,7 +672,7 @@ "method": "child", "name": "remove", "type": "string", - "required": false, + "parserRequired": false, "tag": "remove", "children": [] }, @@ -680,7 +680,7 @@ "method": "child", "name": "add", "type": "string", - "required": false, + "parserRequired": false, "tag": "add", "children": [] }, @@ -688,7 +688,7 @@ "method": "child", "name": "update", "type": "string", - "required": false, + "parserRequired": false, "tag": "update", "children": [] }, @@ -696,19 +696,19 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrDeviceJid", "name": "from", "type": "device_jid", - "required": true + "parserRequired": true }, { "method": "attrLidDeviceJid", "name": "lid", "type": "lid_device_jid", - "required": false + "parserRequired": false } ] } @@ -730,13 +730,13 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true } ] } @@ -758,20 +758,20 @@ "method": "child", "name": "disappearing_mode", "type": "string", - "required": true, + "parserRequired": true, "tag": "disappearing_mode", "children": [ { "method": "attrInt", "name": "duration", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true } ] }, @@ -779,13 +779,13 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrDeviceJid", "name": "from", "type": "device_jid", - "required": true + "parserRequired": true } ] } @@ -847,14 +847,14 @@ "method": "maybeChild", "name": "error", "type": "string", - "required": false, + "parserRequired": false, "tag": "error", "children": [ { "method": "attrInt", "name": "code", "type": "integer", - "required": true + "parserRequired": true } ] }, @@ -862,39 +862,39 @@ "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "participant", "type": "jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "encrypt", "type": "string", - "required": true, + "parserRequired": true, "tag": "encrypt", "children": [ { "method": "child", "name": "enc_p", "type": "string", - "required": true, + "parserRequired": true, "tag": "enc_p", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ] }, @@ -902,14 +902,14 @@ "method": "child", "name": "enc_iv", "type": "string", - "required": true, + "parserRequired": true, "tag": "enc_iv", "children": [ { "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ] } @@ -940,20 +940,20 @@ "method": "child", "name": "update", "type": "string", - "required": true, + "parserRequired": true, "tag": "update", "children": [ { "method": "attrString", "name": "op_name", "type": "string", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "contentType": "string" @@ -962,19 +962,19 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "offline", "type": "string", - "required": false + "parserRequired": false } ] } @@ -1011,7 +1011,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "passkey_prologue_request" }, { @@ -1019,28 +1019,28 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 }, @@ -1048,14 +1048,14 @@ "method": "child", "name": "passkeyRequestOptions", "type": "string", - "required": false, + "parserRequired": false, "tag": "passkey_request_options", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4096 } @@ -1087,7 +1087,7 @@ "method": "child", "name": "delete", "type": "string", - "required": false, + "parserRequired": false, "tag": "delete", "children": [] }, @@ -1095,7 +1095,7 @@ "method": "child", "name": "set", "type": "string", - "required": false, + "parserRequired": false, "tag": "set", "children": [] }, @@ -1103,7 +1103,7 @@ "method": "child", "name": "request", "type": "string", - "required": false, + "parserRequired": false, "tag": "request", "children": [] }, @@ -1111,7 +1111,7 @@ "method": "child", "name": "set_avatar", "type": "string", - "required": false, + "parserRequired": false, "tag": "set_avatar", "children": [] }, @@ -1119,31 +1119,31 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrChatJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "t", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "from", "type": "user_jid", - "required": true + "parserRequired": true } ] } @@ -1164,51 +1164,51 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "from", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrLidUserJid", "name": "sender_lid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "child", "name": "tokens", "type": "string", - "required": true, + "parserRequired": true, "tag": "tokens", "children": [ { "method": "forEachChildWithTag", "name": "token", "type": "string", - "required": true, + "parserRequired": true, "tag": "token", "children": [ { "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "content", "type": "bytes", - "required": false + "parserRequired": false }, { "method": "attrTime", "name": "t", "type": "integer", - "required": false + "parserRequired": false } ], "repeats": true @@ -1238,58 +1238,59 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "child", "name": "campaign", "type": "string", - "required": true, + "parserRequired": true, "tag": "campaign", "children": [ { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "duration", "type": "integer", - "required": false + "parserRequired": false }, { "method": "mapChildrenWithTag", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { "method": "child", "name": "media", "type": "string", - "required": true, + "parserRequired": true, "tag": "media", "children": [ { "method": "attrEnumValues", "name": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumKeys": [ "image", "video", @@ -1300,7 +1301,7 @@ "method": "contentBytes", "name": "content", "type": "bytes", - "required": true + "parserRequired": true } ], "contentType": "bytes" @@ -1309,7 +1310,7 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -1335,44 +1336,44 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "child", "name": "wa_old_registration", "type": "string", - "required": true, + "parserRequired": true, "tag": "wa_old_registration", "children": [ { "method": "attrString", "name": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "expiry_t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "ts", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "device_id", "type": "string", - "required": true + "parserRequired": true } ] } @@ -1396,13 +1397,13 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true } ] } @@ -1424,26 +1425,26 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "mapChildrenWithTag", "name": "collection", "type": "string", - "required": true, + "parserRequired": true, "tag": "collection", "children": [ { "method": "attrString", "name": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "version", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -1452,7 +1453,7 @@ "method": "attrString", "name": "from", "type": "string", - "required": true + "parserRequired": true } ] } @@ -1474,13 +1475,13 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "set", "type": "string", - "required": false, + "parserRequired": false, "tag": "set", "children": [] }, @@ -1488,25 +1489,25 @@ "method": "attrUserJid", "name": "from", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "notify", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "from", "type": "string", - "required": true + "parserRequired": true } ] } @@ -1528,75 +1529,76 @@ "method": "attrString", "name": "to", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrGroupJid", "name": "from", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participant", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrPhoneUserJid", "name": "participant_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrTime", "name": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "addressing_mode", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "participant_username", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "participant_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "mapChildren", "name": "children", "type": "string", - "required": true, + "parserRequired": true, "children": [ { "method": "child", "name": "group", "type": "string", - "required": false, + "parserRequired": false, "tag": "group", "children": [ { "method": "mapChildrenWithTag", "name": "participant", "type": "string", - "required": false, + "parserRequired": false, "tag": "participant", "children": [ { "method": "maybeAttrEnum", "name": "type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "GROUP_PARTICIPANT_TYPES", "module": "WAWebGroupApiConst", @@ -1620,43 +1622,43 @@ "method": "maybeAttrLidUserJid", "name": "lid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrPhoneUserJid", "name": "phone_number", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "display_name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "jid", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "username", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrTime", "name": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "group_history_sent_state", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -1665,21 +1667,21 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "child", "name": "body", "type": "string", - "required": false, + "parserRequired": false, "tag": "body", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": false + "parserRequired": false } ], "contentType": "string" @@ -1688,7 +1690,7 @@ "method": "attrString", "name": "id", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -1696,26 +1698,26 @@ "method": "attrUserJid", "name": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "child", "name": "ephemeral", "type": "string", - "required": false, + "parserRequired": false, "tag": "ephemeral", "children": [ { "method": "attrInt", "name": "expiration", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "trigger", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -1723,61 +1725,61 @@ "method": "attrString", "name": "subject", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "creator_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "creator_country_code", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "creator_username", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrTime", "name": "creation", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "s_o_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "s_o_username", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrTime", "name": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "size", "type": "integer", - "required": false + "parserRequired": false } ] }, @@ -1785,19 +1787,20 @@ "method": "attrString", "name": "type", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrGroupJid", "name": "context_group_jid", "type": "group_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrEnum", "name": "reason", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "null", "enumKeys": [ "invite", "linked_group_join", @@ -1812,14 +1815,15 @@ "method": "mapChildrenWithTag", "name": "participant", "type": "string", - "required": true, + "parserRequired": true, "tag": "participant", "children": [ { "method": "maybeAttrEnum", "name": "type", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "GROUP_PARTICIPANT_TYPES", "module": "WAWebGroupApiConst", @@ -1843,49 +1847,49 @@ "method": "maybeAttrLidUserJid", "name": "lid", "type": "lid_user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrPhoneUserJid", "name": "phone_number", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "display_name", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "username", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrTime", "name": "join_time", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "group_history_sent_state", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "expiration", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -1894,56 +1898,56 @@ "method": "attrString", "name": "reason", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "subject", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "s_o", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "s_o_pn", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "s_o_username", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrTime", "name": "s_t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeChild", "name": "body", "type": "string", - "required": false, + "parserRequired": false, "tag": "body", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ] }, @@ -1951,7 +1955,7 @@ "method": "child", "name": "body", "type": "string", - "required": false, + "parserRequired": false, "tag": "body", "children": [] }, @@ -1959,56 +1963,56 @@ "method": "maybeAttrString", "name": "threshold", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "expiration", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "trigger", "type": "integer", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "link_type", "type": "string", - "required": true + "parserRequired": true }, { "method": "mapChildrenWithTag", "name": "group", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { "method": "attrGroupJid", "name": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "subject", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "s_t", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -2017,19 +2021,19 @@ "method": "attrString", "name": "unlink_type", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "unlink_reason", "type": "string", - "required": false + "parserRequired": false }, { "method": "child", "name": "group_join", "type": "string", - "required": true, + "parserRequired": true, "tag": "group_join", "children": [] }, @@ -2037,44 +2041,44 @@ "method": "attrString", "name": "triggered", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "request_method", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrGroupJid", "name": "parent_group_jid", "type": "group_jid", - "required": false + "parserRequired": false }, { "method": "mapChildrenWithTag", "name": "requested_user", "type": "string", - "required": true, + "parserRequired": true, "tag": "requested_user", "children": [ { "method": "attrUserJid", "name": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "username", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "phone_number", "type": "user_jid", - "required": false + "parserRequired": false } ], "repeats": true @@ -2083,45 +2087,45 @@ "method": "maybeAttrString", "name": "suppress_sys_msg", "type": "string", - "required": false + "parserRequired": false }, { "method": "child", "name": "sub_group_suggestion", "type": "string", - "required": false, + "parserRequired": false, "tag": "sub_group_suggestion", "children": [ { "method": "attrGroupJid", "name": "jid", "type": "group_jid", - "required": false + "parserRequired": false }, { "method": "attrUserJid", "name": "creator", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrTime", "name": "creation", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "subject", "type": "string", - "required": false, + "parserRequired": false, "tag": "subject", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": false + "parserRequired": false } ], "contentType": "string" @@ -2130,21 +2134,21 @@ "method": "child", "name": "description", "type": "string", - "required": false, + "parserRequired": false, "tag": "description", "children": [ { "method": "child", "name": "body", "type": "string", - "required": false, + "parserRequired": false, "tag": "body", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": false + "parserRequired": false } ], "contentType": "string" @@ -2155,14 +2159,14 @@ "method": "child", "name": "is_existing_group", "type": "string", - "required": false, + "parserRequired": false, "tag": "is_existing_group", "children": [ { "method": "contentString", "name": "content", "type": "string", - "required": false + "parserRequired": false } ], "contentType": "string" @@ -2171,14 +2175,14 @@ "method": "child", "name": "participant_count", "type": "string", - "required": false, + "parserRequired": false, "tag": "participant_count", "children": [ { "method": "contentInt", "name": "content", "type": "integer", - "required": false + "parserRequired": false } ], "contentType": "integer" @@ -2189,26 +2193,26 @@ "method": "mapChildrenWithTag", "name": "sub_group_suggestion", "type": "string", - "required": true, + "parserRequired": true, "tag": "sub_group_suggestion", "children": [ { "method": "attrGroupJid", "name": "jid", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "creator", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "reason", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -2217,13 +2221,13 @@ "method": "attrUserJid", "name": "jid", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "contentString", "name": "content", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -2232,19 +2236,19 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "notify", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "offline", "type": "string", - "required": false + "parserRequired": false } ] }, @@ -2257,7 +2261,8 @@ "name": "reason", "wireName": "reason", "type": "enum", - "required": false + "required": false, + "unknownValue": "null" }, { "name": "contextGroupId", @@ -3384,19 +3389,20 @@ "method": "attrString", "name": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrWapJid", "name": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrEnum", "name": "type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumKeys": [ "contacts", "w:growth" @@ -3406,27 +3412,27 @@ "method": "child", "name": "invite", "type": "string", - "required": false, + "parserRequired": false, "tag": "invite", "children": [ { "method": "child", "name": "receiver", "type": "string", - "required": true, + "parserRequired": true, "tag": "receiver", "children": [ { "method": "attrUserJid", "name": "user", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "reason", "type": "string", - "required": false + "parserRequired": false } ] } @@ -3458,14 +3464,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "waffle" }, { @@ -3473,7 +3479,7 @@ "name": "notificationMetadataEvent", "wireName": "event", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 7, "sourcePath": [ @@ -3485,7 +3491,8 @@ "name": "notificationMetadataShowUserNotif", "wireName": "show_user_notif", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -3509,7 +3516,7 @@ "name": "notificationMetadataType", "wireName": "type", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 0, "sourcePath": [ @@ -3521,7 +3528,8 @@ "name": "notificationMetadataClientResync", "wireName": "client_resync", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -3545,7 +3553,7 @@ "name": "notificationMetadataSyncDelay", "wireName": "sync_delay", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "notification_metadata" ] @@ -3555,7 +3563,8 @@ "name": "notificationMetadataNpr", "wireName": "npr", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -3579,21 +3588,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } diff --git a/generated/schema/enums.schema.json b/generated/schema/enums.schema.json index 2582805f..07b8879a 100644 --- a/generated/schema/enums.schema.json +++ b/generated/schema/enums.schema.json @@ -49,17 +49,25 @@ ] }, "InternalEnumDef": { - "description": "A single `$InternalEnum` definition with its resolved name.", + "description": "A single enum definition with its resolved name.\n\n**The key is `(module, name)`, never `name`.** Four names in the catalog are defined\ntwice (`ACK`, `HostedState`, `ENUM_CBP_NBP_PMP`, `EventType`) and `EventType`'s two\ndefinitions do not even agree on [`value_kind`] — an `int` one in\n`WASmaxMockRunnerUtils` and a `string` one in `WAWebCommonMsgUtils`. A consumer\nindexing by name picks one and generates a type whose values come from the other.\n\n[`value_kind`]: InternalEnumDef::value_kind", "type": "object", "properties": { + "bitPosition": { + "description": "The integer values are **bit positions**, so the value that reaches the wire for\na variant is `1 << value`, not `value`. Recovered from the bundle shifting by a\nmember of this enum (`t |= 1 << Mod.ReceiptModeBitPosition.ORPHAN`), never from\nthe name: it is evidence, and `ReceiptModeBitPosition` is the only enum in the\ncatalog that carries any.\n\n`false` means no shift use was found, which is not proof the enum is a plain code\ntable — an enum whose only consumer computes the shift somewhere the scan cannot\nfollow looks the same. It is never set on a string enum.", + "type": "boolean" + }, "module": { "description": "The module that defines it.", "type": "string" }, "name": { - "description": "Resolved enum name (its export, or the module name for a default export).", + "description": "Resolved enum name (its export, or the module name for a default export).\nUnique only together with [`module`] — see the type's note.\n\n[`module`]: InternalEnumDef::module", "type": "string" }, + "syntheticName": { + "description": "The name is **WA's build-generated one, spelled out of the variants themselves**\n(`ENUM_FALSE_TRUE`, `ENUM_0_1_7`, `ENUM_HIDDEN_HSCROLL_…`) rather than chosen to\nmean anything. Set when the name is exactly `ENUM_` followed by the variants'\n(or values') alphanumerics, uppercased, de-duplicated and sorted — the rule WA's\nown emitter uses, applied in reverse, not a guess from the prefix.\n\nIt is a warning to a code generator, not a defect: eleven different modules each\ndefine a *different* two-value enum called `ENUM_FALSE_TRUE`, so the name is\nneither unique nor descriptive and must not become a type name. What the enum\nmeans lives at the reference site, in the field that reads it.\n\nIt does not say the enum is uninteresting, and its absence does not promise the\nname is unique — [`name`] is not a key either way.\n\n[`name`]: InternalEnumDef::name", + "type": "boolean" + }, "valueKind": { "$ref": "#/$defs/EnumValueKind" }, diff --git a/generated/schema/incoming.schema.json b/generated/schema/incoming.schema.json index 9c658b5c..69396dfc 100644 --- a/generated/schema/incoming.schema.json +++ b/generated/schema/incoming.schema.json @@ -271,7 +271,7 @@ "format": "int64" }, "literalValue": { - "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`required`] tells the two pinning forms apart, and the difference matters to an\nemitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`required`]: ParsedField::required\n[`wire_name`]: ParsedField::wire_name", + "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`parser_required`] tells the two pinning forms apart, and the difference matters\nto an emitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`parser_required`]: ParsedField::parser_required\n[`wire_name`]: ParsedField::wire_name", "type": [ "string", "null" @@ -284,6 +284,10 @@ "description": "The output (struct field) name — the camelCase `makeResult` key in smax.", "type": "string" }, + "parserRequired": { + "description": "**The accessor does not tolerate absence** — it is `attrX`, not `maybeAttrX`, so\nthe parser rejects the node when the value is missing *at the point it reads it*.\n\nDeliberately not called `required`, which is what it was called and what it never\nmeant. `` is read with a non-`maybe` accessor and so is\n`parserRequired`, but the client only reaches that read when the envelope's\n`type` is `poll` — 1 of 7 values. A consumer that treated the old name as \"the\nwire always carries this\" and validated on it rejected legitimate traffic.\n\nThe IR models shape and constraint, not control flow: **no domain carries the\nbranch condition** that decides whether a field is read at all, so `true` here is\nan upper bound on presence, never a guarantee of it. `false` is the sharper\nclaim — the parser accepts the node without the value.\n\nOn the *request* side [`WapAttrDef::required`] is a different statement (the\nbuilder always writes the attribute) and keeps its name.", + "type": "boolean" + }, "referencePath": { "description": "The field is pinned not to a constant but to **a value taken from the request** —\nthe same echo rule [`AssertionKind::Reference`] carries, in the same\n`attrStringFromReference` path form, but for a pin that is *not* a variant guard.\n\nA required echo (`literal(…, \"from\", ref.to)`) is recorded as an assertion, since\nit must hold for the variant to match at all. An **optional** one\n(`optionalLiteral(…, \"c_dhash\", ref.item.dhash)`) is not a guard — the attribute\nmay be absent — so it lives here instead: an emitter may omit it, but if it sends\nit, the value must be the request's. Mutually exclusive with [`literal_value`],\nand — like it — always conditional when carried on a [`ParsedFieldType::Bool`]\npresence flag.\n\n[`literal_value`]: ParsedField::literal_value", "type": [ @@ -300,9 +304,6 @@ "null" ] }, - "required": { - "type": "boolean" - }, "sameNode": { "description": "The field's attrs/content are read off the PARENT node, not a child named\n`tag` (a smax payload mixin spread inline) — codegen must not descend.", "type": "boolean" @@ -336,6 +337,17 @@ "$ref": "#/$defs/UnionVariant" } }, + "unknownValue": { + "description": "What the parser does with a wire value **outside** this field's legal set — the\ndimension the accessor's name carried and the IR did not. Present exactly on the\nfields whose type is `enum`, which are the ones this document publishes a value\nset for; absent means there is no set *here*, not that anything goes.\n\nThe JID accessors are outside it, `attrJidEnum` included. They do reject an\nunrecognised server, but they decode to [`ParsedFieldType::JidTyped`] and the enum\nlinker never resolves their argument, so a policy on them would name a set this\ndocument does not carry.\n\nWithout it `attrEnum` and `attrEnumOrNullIfUnknown` are the same field — same\n`type`, same `parserRequired` — while one rejects the whole stanza on an\nunrecognised value and the other yields null. Which one a wire enum is decides\nwhether a consumer may close its generated enum or must give it a fallback\nvariant, so reading it off the WhatsApp method name in English was the last step\na consumer had to do by hand.", + "anyOf": [ + { + "$ref": "#/$defs/UnknownValuePolicy" + }, + { + "type": "null" + } + ] + }, "wireName": { "description": "The wire attribute/content name (snake_case), when it differs from `name`.\nCodegen reads the attribute by this name; falls back to `name` when absent.", "type": [ @@ -348,7 +360,7 @@ "method", "name", "type", - "required" + "parserRequired" ] }, "ParsedFieldType": { @@ -437,6 +449,11 @@ "description": "A discriminated union (`{name, value}` smax disjunction) — the alternatives\nare carried in [`ParsedField::union_variants`].", "type": "string", "const": "union" + }, + { + "description": "A structural container, not a value: the field has **no accessor of its own**\n(`method` is empty) and its content is entirely in [`ParsedField::children`] —\na smax payload mixin folded into the response (`groupAddressingModeMixin`,\n`wAMOSubMixin`, …), read off this same node when [`same_node`] is set.\n\nIt exists because the alternative was worse: `method_field_type(\"\")` fell through\nto [`String`], so 517 containers in `iq/index.json` alone declared a scalar type\nthey have no value for, and a codegen switching on `type` emitted `String` for a\nnode with children. Carrying no scalar type at all is the fact.\n\nIt says nothing about the *identity* of the mixin that was folded in — that\nsurvives only in the field's camelCase name.\n\n[`String`]: ParsedFieldType::String\n[`same_node`]: ParsedField::same_node", + "type": "string", + "const": "node" } ] }, @@ -617,6 +634,26 @@ "name", "fields" ] + }, + "UnknownValuePolicy": { + "description": "What a response parser does when the wire carries a value **outside** the legal set\na field's accessor checks against.\n\nThe second dimension of an accessor, next to the type it decodes to\n([`crate::wap::method_field_type`]): WA spells both into one method name, and only\nthe first was ever published. See [`ParsedField::unknown_value`] for why the\ndifference is not cosmetic.", + "oneOf": [ + { + "description": "The parse fails: an unrecognised value makes the whole node unparseable, so the\nvariant does not match and the stanza falls through to the next one (or is\nrejected outright). `attrEnum`, `attrEnumValues`, `attrStringEnum`, `contentEnum`,\n`contentStringEnum`. A consumer may generate a closed enum — the client cannot see\na value outside it either.", + "type": "string", + "const": "reject" + }, + { + "description": "The field becomes null and the parse continues — `attrEnumOrNullIfUnknown`. The\nwire may legitimately carry a value this bundle's enum does not list (a newer\nserver), so a consumer needs a fallback variant or an optional field; closing the\nenum here rejects traffic the official client accepts.", + "type": "string", + "const": "null" + }, + { + "description": "The accessor has a closed value set and this build does **not** know which of the\nabove it does with a value outside it. Emitted rather than silently folded into\n[`Reject`], the commoner state: a new WA enum accessor must be visible as\nunclassified — `scripts/lint-ir.py` counts it and holds the count at zero — rather\nthan arriving with a policy nobody checked.\n\n[`Reject`]: UnknownValuePolicy::Reject", + "type": "string", + "const": "unclassified" + } + ] } } } diff --git a/generated/schema/iq.schema.json b/generated/schema/iq.schema.json index e63ed037..d56b78e9 100644 --- a/generated/schema/iq.schema.json +++ b/generated/schema/iq.schema.json @@ -235,11 +235,33 @@ ] }, "IqTarget": { - "description": "IQ target server.", - "type": "string", - "enum": [ - "s.whatsapp.net", - "g.us" + "description": "Who the builder addresses an `` to — the `to` attribute it writes on the root.\n\nThe first three are claims about the wire and are **three different addresses**, not\ntwo. WA keeps `@g.us` and the bare `g.us` apart in its own mixin names\n(`WASmaxOutGroupsBaseGetGroupMixin` writes `GROUP_JID(x)`,\n`…BaseGetServerMixin` writes `g.us`), and 26 of the 33 `w:g2` requests take the\nfirst: collapsing them told an emitter to send a group's subject change to the group\nserver, which answers nothing.\n\nThe last two record what the builder does when no server can be named: [`Unset`]\nmeans it writes no `to` at all, [`Unknown`] that it writes one whose value the scan\ncould not resolve. Neither is a polite spelling of \"server\" — an `` addressed to a\nruntime JID is exactly the case a `s.whatsapp.net` default sends to the wrong place,\nwhich is how every `w:g2` request came to claim the server while the client addressed\nthe group.\n\n[`Unset`]: IqTarget::Unset\n[`Unknown`]: IqTarget::Unknown", + "oneOf": [ + { + "description": "`to=\"s.whatsapp.net\"` — written as the literal or as WA's `S_WHATSAPP_NET`\nconstant. The literal string to send.", + "type": "string", + "const": "s.whatsapp.net" + }, + { + "description": "`to=\"g.us\"` — the group *server*, written as the literal or as `G_US`. Also the\nliteral string to send. Used by the operations that are not about one group:\ncreating one, listing, exiting.\n\nDistinct from [`GroupJid`], which is a specific group.\n\n[`GroupJid`]: IqTarget::GroupJid", + "type": "string", + "const": "g.us" + }, + { + "description": "`to=GROUP_JID(x)` — a `@g.us` JID built at runtime from the call's\nargument. **Not a literal to send**: the server is fixed, the JID is not, so an\nemitter has to supply the group. Serialized as `group_jid` rather than a JID-like\nstring for exactly that reason — there is no string here to copy.", + "type": "string", + "const": "group_jid" + }, + { + "description": "The builder writes **no** `to` attribute, and no mixin it folds in adds one. A\nfact about the request, not a failure: `deprecatedSendIq` adds nothing of its\nown, so the stanza really does go out without the attribute. An emitter should\nomit it too rather than substitute a server.", + "type": "string", + "const": "unset" + }, + { + "description": "The builder writes a `to` whose value is a runtime JID the scan could not resolve\nto a server (`JID(x)`, `DOMAIN_JID(x)`, a field of an argument). The addressee is\na parameter of the call, so the IR states that it does not know it — counted\nunder `manifest.diagnostics.iq.targets.unknown`, never rounded to [`Server`].\n\n[`Server`]: IqTarget::Server", + "type": "string", + "const": "unknown" + } ] }, "IqType": { @@ -336,7 +358,7 @@ "format": "int64" }, "literalValue": { - "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`required`] tells the two pinning forms apart, and the difference matters to an\nemitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`required`]: ParsedField::required\n[`wire_name`]: ParsedField::wire_name", + "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`parser_required`] tells the two pinning forms apart, and the difference matters\nto an emitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`parser_required`]: ParsedField::parser_required\n[`wire_name`]: ParsedField::wire_name", "type": [ "string", "null" @@ -349,6 +371,10 @@ "description": "The output (struct field) name — the camelCase `makeResult` key in smax.", "type": "string" }, + "parserRequired": { + "description": "**The accessor does not tolerate absence** — it is `attrX`, not `maybeAttrX`, so\nthe parser rejects the node when the value is missing *at the point it reads it*.\n\nDeliberately not called `required`, which is what it was called and what it never\nmeant. `` is read with a non-`maybe` accessor and so is\n`parserRequired`, but the client only reaches that read when the envelope's\n`type` is `poll` — 1 of 7 values. A consumer that treated the old name as \"the\nwire always carries this\" and validated on it rejected legitimate traffic.\n\nThe IR models shape and constraint, not control flow: **no domain carries the\nbranch condition** that decides whether a field is read at all, so `true` here is\nan upper bound on presence, never a guarantee of it. `false` is the sharper\nclaim — the parser accepts the node without the value.\n\nOn the *request* side [`WapAttrDef::required`] is a different statement (the\nbuilder always writes the attribute) and keeps its name.", + "type": "boolean" + }, "referencePath": { "description": "The field is pinned not to a constant but to **a value taken from the request** —\nthe same echo rule [`AssertionKind::Reference`] carries, in the same\n`attrStringFromReference` path form, but for a pin that is *not* a variant guard.\n\nA required echo (`literal(…, \"from\", ref.to)`) is recorded as an assertion, since\nit must hold for the variant to match at all. An **optional** one\n(`optionalLiteral(…, \"c_dhash\", ref.item.dhash)`) is not a guard — the attribute\nmay be absent — so it lives here instead: an emitter may omit it, but if it sends\nit, the value must be the request's. Mutually exclusive with [`literal_value`],\nand — like it — always conditional when carried on a [`ParsedFieldType::Bool`]\npresence flag.\n\n[`literal_value`]: ParsedField::literal_value", "type": [ @@ -365,9 +391,6 @@ "null" ] }, - "required": { - "type": "boolean" - }, "sameNode": { "description": "The field's attrs/content are read off the PARENT node, not a child named\n`tag` (a smax payload mixin spread inline) — codegen must not descend.", "type": "boolean" @@ -401,6 +424,17 @@ "$ref": "#/$defs/UnionVariant" } }, + "unknownValue": { + "description": "What the parser does with a wire value **outside** this field's legal set — the\ndimension the accessor's name carried and the IR did not. Present exactly on the\nfields whose type is `enum`, which are the ones this document publishes a value\nset for; absent means there is no set *here*, not that anything goes.\n\nThe JID accessors are outside it, `attrJidEnum` included. They do reject an\nunrecognised server, but they decode to [`ParsedFieldType::JidTyped`] and the enum\nlinker never resolves their argument, so a policy on them would name a set this\ndocument does not carry.\n\nWithout it `attrEnum` and `attrEnumOrNullIfUnknown` are the same field — same\n`type`, same `parserRequired` — while one rejects the whole stanza on an\nunrecognised value and the other yields null. Which one a wire enum is decides\nwhether a consumer may close its generated enum or must give it a fallback\nvariant, so reading it off the WhatsApp method name in English was the last step\na consumer had to do by hand.", + "anyOf": [ + { + "$ref": "#/$defs/UnknownValuePolicy" + }, + { + "type": "null" + } + ] + }, "wireName": { "description": "The wire attribute/content name (snake_case), when it differs from `name`.\nCodegen reads the attribute by this name; falls back to `name` when absent.", "type": [ @@ -413,7 +447,7 @@ "method", "name", "type", - "required" + "parserRequired" ] }, "ParsedFieldType": { @@ -502,6 +536,11 @@ "description": "A discriminated union (`{name, value}` smax disjunction) — the alternatives\nare carried in [`ParsedField::union_variants`].", "type": "string", "const": "union" + }, + { + "description": "A structural container, not a value: the field has **no accessor of its own**\n(`method` is empty) and its content is entirely in [`ParsedField::children`] —\na smax payload mixin folded into the response (`groupAddressingModeMixin`,\n`wAMOSubMixin`, …), read off this same node when [`same_node`] is set.\n\nIt exists because the alternative was worse: `method_field_type(\"\")` fell through\nto [`String`], so 517 containers in `iq/index.json` alone declared a scalar type\nthey have no value for, and a codegen switching on `type` emitted `String` for a\nnode with children. Carrying no scalar type at all is the fact.\n\nIt says nothing about the *identity* of the mixin that was folded in — that\nsurvives only in the field's camelCase name.\n\n[`String`]: ParsedFieldType::String\n[`same_node`]: ParsedField::same_node", + "type": "string", + "const": "node" } ] }, @@ -683,6 +722,26 @@ "fields" ] }, + "UnknownValuePolicy": { + "description": "What a response parser does when the wire carries a value **outside** the legal set\na field's accessor checks against.\n\nThe second dimension of an accessor, next to the type it decodes to\n([`crate::wap::method_field_type`]): WA spells both into one method name, and only\nthe first was ever published. See [`ParsedField::unknown_value`] for why the\ndifference is not cosmetic.", + "oneOf": [ + { + "description": "The parse fails: an unrecognised value makes the whole node unparseable, so the\nvariant does not match and the stanza falls through to the next one (or is\nrejected outright). `attrEnum`, `attrEnumValues`, `attrStringEnum`, `contentEnum`,\n`contentStringEnum`. A consumer may generate a closed enum — the client cannot see\na value outside it either.", + "type": "string", + "const": "reject" + }, + { + "description": "The field becomes null and the parse continues — `attrEnumOrNullIfUnknown`. The\nwire may legitimately carry a value this bundle's enum does not list (a newer\nserver), so a consumer needs a fallback variant or an optional field; closing the\nenum here rejects traffic the official client accepts.", + "type": "string", + "const": "null" + }, + { + "description": "The accessor has a closed value set and this build does **not** know which of the\nabove it does with a value outside it. Emitted rather than silently folded into\n[`Reject`], the commoner state: a new WA enum accessor must be visible as\nunclassified — `scripts/lint-ir.py` counts it and holds the count at zero — rather\nthan arriving with a policy nobody checked.\n\n[`Reject`]: UnknownValuePolicy::Reject", + "type": "string", + "const": "unclassified" + } + ] + }, "Unparseable": { "description": "A module the scanner recognized as an IQ module but that yielded no standalone\nstanza. NOT necessarily a failure: `reason` distinguishes a genuine parse/resolution\nfailure (the minority) from a benign mixin fragment folded into real requests (the\nmajority). Recorded either way to honor the no-silent-vanish invariant. The\nmanifest's `diagnostics.iq` splits these into `unparseable` (genuine) and\n`excludedFragments` (benign) so neither count is inflated by the other.", "type": "object", diff --git a/generated/schema/notif.schema.json b/generated/schema/notif.schema.json index d9fcd324..20950c5d 100644 --- a/generated/schema/notif.schema.json +++ b/generated/schema/notif.schema.json @@ -286,6 +286,17 @@ "description": "How the value decodes, reusing the response-field type vocabulary.", "$ref": "#/$defs/ParsedFieldType" }, + "unknownValue": { + "description": "What the arm does with a wire value outside [`enum_ref`]'s set — the same\nquestion [`crate::ParsedField::unknown_value`] answers on the response side, and\nthe one that decides whether a generated enum may be closed. Stamped from the\naccessor at extraction time because this shape does not carry the accessor.\n\n[`enum_ref`]: NotifActionField::enum_ref", + "anyOf": [ + { + "$ref": "#/$defs/UnknownValuePolicy" + }, + { + "type": "null" + } + ] + }, "wireName": { "description": "The wire attribute it is read from (`\"expiration\"`), or the child tag for a\ncontent read. Differs from [`name`] often enough that assuming they match is the\nbug this field exists to prevent.\n\n[`name`]: NotifActionField::name", "type": "string" @@ -451,7 +462,7 @@ "format": "int64" }, "literalValue": { - "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`required`] tells the two pinning forms apart, and the difference matters to an\nemitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`required`]: ParsedField::required\n[`wire_name`]: ParsedField::wire_name", + "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`parser_required`] tells the two pinning forms apart, and the difference matters\nto an emitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`parser_required`]: ParsedField::parser_required\n[`wire_name`]: ParsedField::wire_name", "type": [ "string", "null" @@ -464,6 +475,10 @@ "description": "The output (struct field) name — the camelCase `makeResult` key in smax.", "type": "string" }, + "parserRequired": { + "description": "**The accessor does not tolerate absence** — it is `attrX`, not `maybeAttrX`, so\nthe parser rejects the node when the value is missing *at the point it reads it*.\n\nDeliberately not called `required`, which is what it was called and what it never\nmeant. `` is read with a non-`maybe` accessor and so is\n`parserRequired`, but the client only reaches that read when the envelope's\n`type` is `poll` — 1 of 7 values. A consumer that treated the old name as \"the\nwire always carries this\" and validated on it rejected legitimate traffic.\n\nThe IR models shape and constraint, not control flow: **no domain carries the\nbranch condition** that decides whether a field is read at all, so `true` here is\nan upper bound on presence, never a guarantee of it. `false` is the sharper\nclaim — the parser accepts the node without the value.\n\nOn the *request* side [`WapAttrDef::required`] is a different statement (the\nbuilder always writes the attribute) and keeps its name.", + "type": "boolean" + }, "referencePath": { "description": "The field is pinned not to a constant but to **a value taken from the request** —\nthe same echo rule [`AssertionKind::Reference`] carries, in the same\n`attrStringFromReference` path form, but for a pin that is *not* a variant guard.\n\nA required echo (`literal(…, \"from\", ref.to)`) is recorded as an assertion, since\nit must hold for the variant to match at all. An **optional** one\n(`optionalLiteral(…, \"c_dhash\", ref.item.dhash)`) is not a guard — the attribute\nmay be absent — so it lives here instead: an emitter may omit it, but if it sends\nit, the value must be the request's. Mutually exclusive with [`literal_value`],\nand — like it — always conditional when carried on a [`ParsedFieldType::Bool`]\npresence flag.\n\n[`literal_value`]: ParsedField::literal_value", "type": [ @@ -480,9 +495,6 @@ "null" ] }, - "required": { - "type": "boolean" - }, "sameNode": { "description": "The field's attrs/content are read off the PARENT node, not a child named\n`tag` (a smax payload mixin spread inline) — codegen must not descend.", "type": "boolean" @@ -516,6 +528,17 @@ "$ref": "#/$defs/UnionVariant" } }, + "unknownValue": { + "description": "What the parser does with a wire value **outside** this field's legal set — the\ndimension the accessor's name carried and the IR did not. Present exactly on the\nfields whose type is `enum`, which are the ones this document publishes a value\nset for; absent means there is no set *here*, not that anything goes.\n\nThe JID accessors are outside it, `attrJidEnum` included. They do reject an\nunrecognised server, but they decode to [`ParsedFieldType::JidTyped`] and the enum\nlinker never resolves their argument, so a policy on them would name a set this\ndocument does not carry.\n\nWithout it `attrEnum` and `attrEnumOrNullIfUnknown` are the same field — same\n`type`, same `parserRequired` — while one rejects the whole stanza on an\nunrecognised value and the other yields null. Which one a wire enum is decides\nwhether a consumer may close its generated enum or must give it a fallback\nvariant, so reading it off the WhatsApp method name in English was the last step\na consumer had to do by hand.", + "anyOf": [ + { + "$ref": "#/$defs/UnknownValuePolicy" + }, + { + "type": "null" + } + ] + }, "wireName": { "description": "The wire attribute/content name (snake_case), when it differs from `name`.\nCodegen reads the attribute by this name; falls back to `name` when absent.", "type": [ @@ -528,7 +551,7 @@ "method", "name", "type", - "required" + "parserRequired" ] }, "ParsedFieldType": { @@ -617,6 +640,11 @@ "description": "A discriminated union (`{name, value}` smax disjunction) — the alternatives\nare carried in [`ParsedField::union_variants`].", "type": "string", "const": "union" + }, + { + "description": "A structural container, not a value: the field has **no accessor of its own**\n(`method` is empty) and its content is entirely in [`ParsedField::children`] —\na smax payload mixin folded into the response (`groupAddressingModeMixin`,\n`wAMOSubMixin`, …), read off this same node when [`same_node`] is set.\n\nIt exists because the alternative was worse: `method_field_type(\"\")` fell through\nto [`String`], so 517 containers in `iq/index.json` alone declared a scalar type\nthey have no value for, and a codegen switching on `type` emitted `String` for a\nnode with children. Carrying no scalar type at all is the fact.\n\nIt says nothing about the *identity* of the mixin that was folded in — that\nsurvives only in the field's camelCase name.\n\n[`String`]: ParsedFieldType::String\n[`same_node`]: ParsedField::same_node", + "type": "string", + "const": "node" } ] }, @@ -882,6 +910,26 @@ "name", "fields" ] + }, + "UnknownValuePolicy": { + "description": "What a response parser does when the wire carries a value **outside** the legal set\na field's accessor checks against.\n\nThe second dimension of an accessor, next to the type it decodes to\n([`crate::wap::method_field_type`]): WA spells both into one method name, and only\nthe first was ever published. See [`ParsedField::unknown_value`] for why the\ndifference is not cosmetic.", + "oneOf": [ + { + "description": "The parse fails: an unrecognised value makes the whole node unparseable, so the\nvariant does not match and the stanza falls through to the next one (or is\nrejected outright). `attrEnum`, `attrEnumValues`, `attrStringEnum`, `contentEnum`,\n`contentStringEnum`. A consumer may generate a closed enum — the client cannot see\na value outside it either.", + "type": "string", + "const": "reject" + }, + { + "description": "The field becomes null and the parse continues — `attrEnumOrNullIfUnknown`. The\nwire may legitimately carry a value this bundle's enum does not list (a newer\nserver), so a consumer needs a fallback variant or an optional field; closing the\nenum here rejects traffic the official client accepts.", + "type": "string", + "const": "null" + }, + { + "description": "The accessor has a closed value set and this build does **not** know which of the\nabove it does with a value outside it. Emitted rather than silently folded into\n[`Reject`], the commoner state: a new WA enum accessor must be visible as\nunclassified — `scripts/lint-ir.py` counts it and holds the count at zero — rather\nthan arriving with a policy nobody checked.\n\n[`Reject`]: UnknownValuePolicy::Reject", + "type": "string", + "const": "unclassified" + } + ] } } } diff --git a/generated/schema/srvreq.schema.json b/generated/schema/srvreq.schema.json index d15b2045..6f668d24 100644 --- a/generated/schema/srvreq.schema.json +++ b/generated/schema/srvreq.schema.json @@ -238,7 +238,7 @@ "format": "int64" }, "literalValue": { - "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`required`] tells the two pinning forms apart, and the difference matters to an\nemitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`required`]: ParsedField::required\n[`wire_name`]: ParsedField::wire_name", + "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`parser_required`] tells the two pinning forms apart, and the difference matters\nto an emitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`parser_required`]: ParsedField::parser_required\n[`wire_name`]: ParsedField::wire_name", "type": [ "string", "null" @@ -251,6 +251,10 @@ "description": "The output (struct field) name — the camelCase `makeResult` key in smax.", "type": "string" }, + "parserRequired": { + "description": "**The accessor does not tolerate absence** — it is `attrX`, not `maybeAttrX`, so\nthe parser rejects the node when the value is missing *at the point it reads it*.\n\nDeliberately not called `required`, which is what it was called and what it never\nmeant. `` is read with a non-`maybe` accessor and so is\n`parserRequired`, but the client only reaches that read when the envelope's\n`type` is `poll` — 1 of 7 values. A consumer that treated the old name as \"the\nwire always carries this\" and validated on it rejected legitimate traffic.\n\nThe IR models shape and constraint, not control flow: **no domain carries the\nbranch condition** that decides whether a field is read at all, so `true` here is\nan upper bound on presence, never a guarantee of it. `false` is the sharper\nclaim — the parser accepts the node without the value.\n\nOn the *request* side [`WapAttrDef::required`] is a different statement (the\nbuilder always writes the attribute) and keeps its name.", + "type": "boolean" + }, "referencePath": { "description": "The field is pinned not to a constant but to **a value taken from the request** —\nthe same echo rule [`AssertionKind::Reference`] carries, in the same\n`attrStringFromReference` path form, but for a pin that is *not* a variant guard.\n\nA required echo (`literal(…, \"from\", ref.to)`) is recorded as an assertion, since\nit must hold for the variant to match at all. An **optional** one\n(`optionalLiteral(…, \"c_dhash\", ref.item.dhash)`) is not a guard — the attribute\nmay be absent — so it lives here instead: an emitter may omit it, but if it sends\nit, the value must be the request's. Mutually exclusive with [`literal_value`],\nand — like it — always conditional when carried on a [`ParsedFieldType::Bool`]\npresence flag.\n\n[`literal_value`]: ParsedField::literal_value", "type": [ @@ -267,9 +271,6 @@ "null" ] }, - "required": { - "type": "boolean" - }, "sameNode": { "description": "The field's attrs/content are read off the PARENT node, not a child named\n`tag` (a smax payload mixin spread inline) — codegen must not descend.", "type": "boolean" @@ -303,6 +304,17 @@ "$ref": "#/$defs/UnionVariant" } }, + "unknownValue": { + "description": "What the parser does with a wire value **outside** this field's legal set — the\ndimension the accessor's name carried and the IR did not. Present exactly on the\nfields whose type is `enum`, which are the ones this document publishes a value\nset for; absent means there is no set *here*, not that anything goes.\n\nThe JID accessors are outside it, `attrJidEnum` included. They do reject an\nunrecognised server, but they decode to [`ParsedFieldType::JidTyped`] and the enum\nlinker never resolves their argument, so a policy on them would name a set this\ndocument does not carry.\n\nWithout it `attrEnum` and `attrEnumOrNullIfUnknown` are the same field — same\n`type`, same `parserRequired` — while one rejects the whole stanza on an\nunrecognised value and the other yields null. Which one a wire enum is decides\nwhether a consumer may close its generated enum or must give it a fallback\nvariant, so reading it off the WhatsApp method name in English was the last step\na consumer had to do by hand.", + "anyOf": [ + { + "$ref": "#/$defs/UnknownValuePolicy" + }, + { + "type": "null" + } + ] + }, "wireName": { "description": "The wire attribute/content name (snake_case), when it differs from `name`.\nCodegen reads the attribute by this name; falls back to `name` when absent.", "type": [ @@ -315,7 +327,7 @@ "method", "name", "type", - "required" + "parserRequired" ] }, "ParsedFieldType": { @@ -404,6 +416,11 @@ "description": "A discriminated union (`{name, value}` smax disjunction) — the alternatives\nare carried in [`ParsedField::union_variants`].", "type": "string", "const": "union" + }, + { + "description": "A structural container, not a value: the field has **no accessor of its own**\n(`method` is empty) and its content is entirely in [`ParsedField::children`] —\na smax payload mixin folded into the response (`groupAddressingModeMixin`,\n`wAMOSubMixin`, …), read off this same node when [`same_node`] is set.\n\nIt exists because the alternative was worse: `method_field_type(\"\")` fell through\nto [`String`], so 517 containers in `iq/index.json` alone declared a scalar type\nthey have no value for, and a codegen switching on `type` emitted `String` for a\nnode with children. Carrying no scalar type at all is the fact.\n\nIt says nothing about the *identity* of the mixin that was folded in — that\nsurvives only in the field's camelCase name.\n\n[`String`]: ParsedFieldType::String\n[`same_node`]: ParsedField::same_node", + "type": "string", + "const": "node" } ] }, @@ -620,6 +637,26 @@ "name", "fields" ] + }, + "UnknownValuePolicy": { + "description": "What a response parser does when the wire carries a value **outside** the legal set\na field's accessor checks against.\n\nThe second dimension of an accessor, next to the type it decodes to\n([`crate::wap::method_field_type`]): WA spells both into one method name, and only\nthe first was ever published. See [`ParsedField::unknown_value`] for why the\ndifference is not cosmetic.", + "oneOf": [ + { + "description": "The parse fails: an unrecognised value makes the whole node unparseable, so the\nvariant does not match and the stanza falls through to the next one (or is\nrejected outright). `attrEnum`, `attrEnumValues`, `attrStringEnum`, `contentEnum`,\n`contentStringEnum`. A consumer may generate a closed enum — the client cannot see\na value outside it either.", + "type": "string", + "const": "reject" + }, + { + "description": "The field becomes null and the parse continues — `attrEnumOrNullIfUnknown`. The\nwire may legitimately carry a value this bundle's enum does not list (a newer\nserver), so a consumer needs a fallback variant or an optional field; closing the\nenum here rejects traffic the official client accepts.", + "type": "string", + "const": "null" + }, + { + "description": "The accessor has a closed value set and this build does **not** know which of the\nabove it does with a value outside it. Emitted rather than silently folded into\n[`Reject`], the commoner state: a new WA enum accessor must be visible as\nunclassified — `scripts/lint-ir.py` counts it and holds the count at zero — rather\nthan arriving with a policy nobody checked.\n\n[`Reject`]: UnknownValuePolicy::Reject", + "type": "string", + "const": "unclassified" + } + ] } } } diff --git a/generated/schema/stanza.schema.json b/generated/schema/stanza.schema.json index c0d0fc9f..a5450f20 100644 --- a/generated/schema/stanza.schema.json +++ b/generated/schema/stanza.schema.json @@ -245,7 +245,7 @@ "format": "int64" }, "literalValue": { - "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`required`] tells the two pinning forms apart, and the difference matters to an\nemitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`required`]: ParsedField::required\n[`wire_name`]: ParsedField::wire_name", + "description": "The fixed value the parser pins this field to — `literal(attrString, participant,\n\"type\", \"admin\")` → `\"admin\"`, `literal(attrInt, error, \"code\", 429)` → `\"429\"`.\nAlways the string form of the literal; [`field_type`] says how to read it (a\n`code` field with `literalValue: \"429\"` is the integer 429 on the wire). On a\n[`ParsedFieldType::Bytes`] field it is **lowercase hex** — the encoding\n[`WapContent::const_bytes`] already uses on the request side —\nand [`byte_length`] is its length: `contentLiteralBytes(node, new Uint8Array([5]))`\n→ `literalValue: \"05\"`, `byteLength: 1`.\n\n[`byte_length`]: ParsedField::byte_length\n\n[`parser_required`] tells the two pinning forms apart, and the difference matters\nto an emitter: a **required** literal (`literal`) is a hard discriminator — the\nattribute MUST be present and equal to this value or the variant does not match;\nan **optional** one (`optionalLiteral`) is pinned only when present — the emitter\nmay omit the attribute, but must never send a contradicting value.\n\n**On a [`ParsedFieldType::Bool`] field the pin is always conditional.** Such a\nfield is a *presence flag* — `{hasListCDhash: m.value != null}` — so its\n`required: true` describes the flag (the parser always produces it), never the\nwire attribute named by [`wire_name`], which by construction may be absent. The\npin constrains that attribute when present, and never the boolean itself.\n\n[`field_type`]: ParsedField::field_type\n[`parser_required`]: ParsedField::parser_required\n[`wire_name`]: ParsedField::wire_name", "type": [ "string", "null" @@ -258,6 +258,10 @@ "description": "The output (struct field) name — the camelCase `makeResult` key in smax.", "type": "string" }, + "parserRequired": { + "description": "**The accessor does not tolerate absence** — it is `attrX`, not `maybeAttrX`, so\nthe parser rejects the node when the value is missing *at the point it reads it*.\n\nDeliberately not called `required`, which is what it was called and what it never\nmeant. `` is read with a non-`maybe` accessor and so is\n`parserRequired`, but the client only reaches that read when the envelope's\n`type` is `poll` — 1 of 7 values. A consumer that treated the old name as \"the\nwire always carries this\" and validated on it rejected legitimate traffic.\n\nThe IR models shape and constraint, not control flow: **no domain carries the\nbranch condition** that decides whether a field is read at all, so `true` here is\nan upper bound on presence, never a guarantee of it. `false` is the sharper\nclaim — the parser accepts the node without the value.\n\nOn the *request* side [`WapAttrDef::required`] is a different statement (the\nbuilder always writes the attribute) and keeps its name.", + "type": "boolean" + }, "referencePath": { "description": "The field is pinned not to a constant but to **a value taken from the request** —\nthe same echo rule [`AssertionKind::Reference`] carries, in the same\n`attrStringFromReference` path form, but for a pin that is *not* a variant guard.\n\nA required echo (`literal(…, \"from\", ref.to)`) is recorded as an assertion, since\nit must hold for the variant to match at all. An **optional** one\n(`optionalLiteral(…, \"c_dhash\", ref.item.dhash)`) is not a guard — the attribute\nmay be absent — so it lives here instead: an emitter may omit it, but if it sends\nit, the value must be the request's. Mutually exclusive with [`literal_value`],\nand — like it — always conditional when carried on a [`ParsedFieldType::Bool`]\npresence flag.\n\n[`literal_value`]: ParsedField::literal_value", "type": [ @@ -274,9 +278,6 @@ "null" ] }, - "required": { - "type": "boolean" - }, "sameNode": { "description": "The field's attrs/content are read off the PARENT node, not a child named\n`tag` (a smax payload mixin spread inline) — codegen must not descend.", "type": "boolean" @@ -310,6 +311,17 @@ "$ref": "#/$defs/UnionVariant" } }, + "unknownValue": { + "description": "What the parser does with a wire value **outside** this field's legal set — the\ndimension the accessor's name carried and the IR did not. Present exactly on the\nfields whose type is `enum`, which are the ones this document publishes a value\nset for; absent means there is no set *here*, not that anything goes.\n\nThe JID accessors are outside it, `attrJidEnum` included. They do reject an\nunrecognised server, but they decode to [`ParsedFieldType::JidTyped`] and the enum\nlinker never resolves their argument, so a policy on them would name a set this\ndocument does not carry.\n\nWithout it `attrEnum` and `attrEnumOrNullIfUnknown` are the same field — same\n`type`, same `parserRequired` — while one rejects the whole stanza on an\nunrecognised value and the other yields null. Which one a wire enum is decides\nwhether a consumer may close its generated enum or must give it a fallback\nvariant, so reading it off the WhatsApp method name in English was the last step\na consumer had to do by hand.", + "anyOf": [ + { + "$ref": "#/$defs/UnknownValuePolicy" + }, + { + "type": "null" + } + ] + }, "wireName": { "description": "The wire attribute/content name (snake_case), when it differs from `name`.\nCodegen reads the attribute by this name; falls back to `name` when absent.", "type": [ @@ -322,7 +334,7 @@ "method", "name", "type", - "required" + "parserRequired" ] }, "ParsedFieldType": { @@ -411,6 +423,11 @@ "description": "A discriminated union (`{name, value}` smax disjunction) — the alternatives\nare carried in [`ParsedField::union_variants`].", "type": "string", "const": "union" + }, + { + "description": "A structural container, not a value: the field has **no accessor of its own**\n(`method` is empty) and its content is entirely in [`ParsedField::children`] —\na smax payload mixin folded into the response (`groupAddressingModeMixin`,\n`wAMOSubMixin`, …), read off this same node when [`same_node`] is set.\n\nIt exists because the alternative was worse: `method_field_type(\"\")` fell through\nto [`String`], so 517 containers in `iq/index.json` alone declared a scalar type\nthey have no value for, and a codegen switching on `type` emitted `String` for a\nnode with children. Carrying no scalar type at all is the fact.\n\nIt says nothing about the *identity* of the mixin that was folded in — that\nsurvives only in the field's camelCase name.\n\n[`String`]: ParsedFieldType::String\n[`same_node`]: ParsedField::same_node", + "type": "string", + "const": "node" } ] }, @@ -690,6 +707,26 @@ "fields" ] }, + "UnknownValuePolicy": { + "description": "What a response parser does when the wire carries a value **outside** the legal set\na field's accessor checks against.\n\nThe second dimension of an accessor, next to the type it decodes to\n([`crate::wap::method_field_type`]): WA spells both into one method name, and only\nthe first was ever published. See [`ParsedField::unknown_value`] for why the\ndifference is not cosmetic.", + "oneOf": [ + { + "description": "The parse fails: an unrecognised value makes the whole node unparseable, so the\nvariant does not match and the stanza falls through to the next one (or is\nrejected outright). `attrEnum`, `attrEnumValues`, `attrStringEnum`, `contentEnum`,\n`contentStringEnum`. A consumer may generate a closed enum — the client cannot see\na value outside it either.", + "type": "string", + "const": "reject" + }, + { + "description": "The field becomes null and the parse continues — `attrEnumOrNullIfUnknown`. The\nwire may legitimately carry a value this bundle's enum does not list (a newer\nserver), so a consumer needs a fallback variant or an optional field; closing the\nenum here rejects traffic the official client accepts.", + "type": "string", + "const": "null" + }, + { + "description": "The accessor has a closed value set and this build does **not** know which of the\nabove it does with a value outside it. Emitted rather than silently folded into\n[`Reject`], the commoner state: a new WA enum accessor must be visible as\nunclassified — `scripts/lint-ir.py` counts it and holds the count at zero — rather\nthan arriving with a policy nobody checked.\n\n[`Reject`]: UnknownValuePolicy::Reject", + "type": "string", + "const": "unclassified" + } + ] + }, "WapAttrDef": { "description": "A single attribute on a request stanza node.", "type": "object", diff --git a/generated/srvreq/index.json b/generated/srvreq/index.json index 2dd0c566..09caf094 100644 --- a/generated/srvreq/index.json +++ b/generated/srvreq/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "requests": [ { @@ -24,21 +24,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "business" }, { @@ -46,7 +46,7 @@ "name": "ctwaSuggestionTargetEntityId", "wireName": "target_entity_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "ctwa_suggestion" ] @@ -56,21 +56,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 }, @@ -78,7 +78,7 @@ "method": "child", "name": "ctwaSuggestionBanner", "type": "string", - "required": false, + "parserRequired": false, "tag": "banner", "children": [ { @@ -86,7 +86,7 @@ "name": "configExpiresAt", "wireName": "expires_at", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "config" ] @@ -96,7 +96,8 @@ "name": "configDisplay", "wireName": "display", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_INFO_WARNING", "module": "WASmaxInBizCtwaActionEnums", @@ -120,7 +121,8 @@ "name": "configRevoked", "wireName": "revoked", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInBizCtwaActionEnums", @@ -144,7 +146,7 @@ "name": "contentLocale", "wireName": "locale", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "content" ] @@ -153,7 +155,7 @@ "method": "contentString", "name": "contentHeadingElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "content", "heading" @@ -163,7 +165,7 @@ "method": "contentString", "name": "contentBodyElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "content", "body" @@ -173,7 +175,7 @@ "method": "contentString", "name": "contentHighlightElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "content", "highlight" @@ -183,7 +185,7 @@ "method": "child", "name": "nativeAction", "type": "string", - "required": true, + "parserRequired": true, "tag": "native_action", "children": [ { @@ -191,28 +193,28 @@ "name": "platform", "wireName": "platform", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "minAppVersion", "wireName": "min_app_version", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "localLink", "wireName": "local_link", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "universalLink", "wireName": "universal_link", "type": "string", - "required": false + "parserRequired": false } ], "repeats": true @@ -221,7 +223,7 @@ "method": "child", "name": "action", "type": "string", - "required": false, + "parserRequired": false, "tag": "action", "children": [ { @@ -229,21 +231,21 @@ "name": "deepLink", "wireName": "deep_link", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "localLink", "wireName": "local_link", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "localAndroidLink", "wireName": "local_android_link", "type": "string", - "required": false + "parserRequired": false } ], "repeats": false @@ -252,7 +254,7 @@ "method": "child", "name": "contentLocalisedHeading", "type": "string", - "required": false, + "parserRequired": false, "tag": "localised_heading", "children": [ { @@ -260,13 +262,13 @@ "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "localisationMetadataLocalisationMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "localisation_metadata", "children": [ { @@ -274,20 +276,20 @@ "name": "uid", "wireName": "uid", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "translationProject", "wireName": "translation_project", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "parameter", "type": "string", - "required": true, + "parserRequired": true, "tag": "parameter", "children": [ { @@ -295,14 +297,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -320,7 +322,7 @@ "method": "child", "name": "contentLocalisedBody", "type": "string", - "required": false, + "parserRequired": false, "tag": "localised_body", "children": [ { @@ -328,13 +330,13 @@ "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "localisationMetadataLocalisationMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "localisation_metadata", "children": [ { @@ -342,20 +344,20 @@ "name": "uid", "wireName": "uid", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "translationProject", "wireName": "translation_project", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "parameter", "type": "string", - "required": true, + "parserRequired": true, "tag": "parameter", "children": [ { @@ -363,14 +365,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -388,7 +390,7 @@ "method": "child", "name": "contentLocalisedHighlight", "type": "string", - "required": false, + "parserRequired": false, "tag": "localised_highlight", "children": [ { @@ -396,13 +398,13 @@ "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "localisationMetadataLocalisationMetadataMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "localisation_metadata", "children": [ { @@ -410,20 +412,20 @@ "name": "uid", "wireName": "uid", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "translationProject", "wireName": "translation_project", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "parameter", "type": "string", - "required": true, + "parserRequired": true, "tag": "parameter", "children": [ { @@ -431,14 +433,14 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -483,28 +485,28 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "business" }, { "method": "contentString", "name": "waAdAccountNonceElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "wa_ad_account_nonce" ] @@ -514,21 +516,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -557,28 +559,28 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "business" }, { "method": "child", "name": "privacySmbDataSharingSettingMixin", "type": "string", - "required": false, + "parserRequired": false, "tag": "privacy", "children": [ { @@ -586,7 +588,8 @@ "name": "value", "wireName": "value", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_NOTSET_TRUE", "module": "WASmaxInBizSettingsEnums", @@ -614,7 +617,7 @@ "name": "version", "wireName": "version", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "smb_data_sharing_with_meta_consent" ] @@ -627,21 +630,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -670,14 +673,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "hosted" }, { @@ -685,7 +688,8 @@ "name": "offboardingProductSurface", "wireName": "product_surface", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_AIFROMMETA_AUTOMATION_BUSINESSPLATFORM", "module": "WASmaxInCoexistenceEnums", @@ -712,21 +716,21 @@ "method": "child", "name": "offboardingProviderInfoMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "offboarding", "children": [ { "method": "child", "name": "providerInfoLogoUrl", "type": "string", - "required": false, + "parserRequired": false, "tag": "logo_url", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -738,14 +742,14 @@ "method": "child", "name": "providerInfoName", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -757,14 +761,14 @@ "method": "child", "name": "providerInfoId", "type": "string", - "required": false, + "parserRequired": false, "tag": "id", "children": [ { "method": "contentInt", "name": "elementValue", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false, @@ -780,21 +784,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -823,14 +827,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "hosted" }, { @@ -838,7 +842,8 @@ "name": "onboardingStatusStatus", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_COMPLETED_FAILED", "module": "WASmaxInCoexistenceEnums", @@ -861,7 +866,7 @@ "method": "child", "name": "onboardingStatusProductSurfaceMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "onboarding_status", "children": [ { @@ -869,7 +874,8 @@ "name": "productSurface", "wireName": "product_surface", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_AIFROMMETA_AUTOMATION_BUSINESSPLATFORM", "module": "WASmaxInCoexistenceEnums", @@ -896,21 +902,21 @@ "method": "child", "name": "onboardingStatusProviderInfoMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "onboarding_status", "children": [ { "method": "child", "name": "providerInfoLogoUrl", "type": "string", - "required": false, + "parserRequired": false, "tag": "logo_url", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -922,14 +928,14 @@ "method": "child", "name": "providerInfoName", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -941,14 +947,14 @@ "method": "child", "name": "providerInfoId", "type": "string", - "required": false, + "parserRequired": false, "tag": "id", "children": [ { "method": "contentInt", "name": "elementValue", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false, @@ -964,21 +970,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -1007,7 +1013,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "w:gp2" }, { @@ -1015,28 +1021,28 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 }, @@ -1044,7 +1050,7 @@ "method": "child", "name": "groupsDirtyGroup", "type": "string", - "required": true, + "parserRequired": true, "tag": "group", "children": [ { @@ -1052,7 +1058,7 @@ "name": "jid", "wireName": "jid", "type": "group_jid", - "required": true + "parserRequired": true } ], "repeats": true, @@ -1085,7 +1091,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "passkey_prologue_request" }, { @@ -1093,28 +1099,28 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 }, @@ -1122,14 +1128,14 @@ "method": "child", "name": "passkeyRequestOptions", "type": "string", - "required": false, + "parserRequired": false, "tag": "passkey_request_options", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 4096 } @@ -1161,7 +1167,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "link_code_companion_reg" }, { @@ -1169,14 +1175,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "linkCodeCompanionRegStage", "wireName": "stage", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "primary_hello", "sourcePath": [ "link_code_companion_reg" @@ -1186,7 +1192,7 @@ "method": "contentBytes", "name": "linkCodeCompanionRegLinkCodePairingWrappedPrimaryEphemeralPubElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "link_code_companion_reg", "link_code_pairing_wrapped_primary_ephemeral_pub" @@ -1196,7 +1202,7 @@ "method": "contentBytes", "name": "linkCodeCompanionRegPrimaryIdentityPubElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "link_code_companion_reg", "primary_identity_pub" @@ -1206,7 +1212,7 @@ "method": "contentBytes", "name": "linkCodeCompanionRegLinkCodePairingRefElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "link_code_companion_reg", "link_code_pairing_ref" @@ -1217,21 +1223,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -1260,7 +1266,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "link_code_companion_reg" }, { @@ -1268,14 +1274,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "linkCodeCompanionRegStage", "wireName": "stage", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "refresh_code", "sourcePath": [ "link_code_companion_reg" @@ -1286,7 +1292,8 @@ "name": "linkCodeCompanionRegForceManualRefresh", "wireName": "force_manual_refresh", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInMdEnums", @@ -1309,7 +1316,7 @@ "method": "contentBytes", "name": "linkCodeCompanionRegLinkCodePairingRefElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "link_code_companion_reg", "link_code_pairing_ref" @@ -1320,21 +1327,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -1363,7 +1370,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "crsc_continuation" }, { @@ -1371,13 +1378,13 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "primaryEphemeralIdentityElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "primary_ephemeral_identity" ] @@ -1387,21 +1394,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -1429,7 +1436,7 @@ "method": "child", "name": "liveUpdatesMessagesNewsletterMessageResponsePayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "messages", "children": [ { @@ -1437,20 +1444,20 @@ "name": "jid", "wireName": "jid", "type": "newsletter_jid", - "required": false + "parserRequired": false }, { "method": "maybeAttrInt", "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "child", "name": "message", "type": "string", - "required": true, + "parserRequired": true, "tag": "message", "children": [ { @@ -1458,14 +1465,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": false + "parserRequired": false }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -1474,28 +1481,28 @@ "name": "t", "wireName": "t", "type": "integer", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "newsletterMessageOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -1506,15 +1513,15 @@ { "method": "", "name": "newsletterMessageLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp_millis", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -1525,15 +1532,15 @@ { "method": "", "name": "adminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "id", "wireName": "id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta", "admin_profile" @@ -1543,14 +1550,14 @@ "method": "child", "name": "name", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -1563,7 +1570,7 @@ "method": "child", "name": "picture", "type": "string", - "required": false, + "parserRequired": false, "tag": "picture", "children": [ { @@ -1571,14 +1578,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -1594,19 +1601,19 @@ "method": "", "name": "hasPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNewsletterAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "newsletterMessageHistoryContent", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterQuestion", @@ -1616,7 +1623,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -1625,15 +1632,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -1646,7 +1653,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -1655,14 +1662,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -1674,21 +1681,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -1718,7 +1725,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -1813,14 +1821,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -1832,21 +1840,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -1858,15 +1866,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -1911,15 +1920,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -1958,21 +1967,21 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -1985,7 +1994,7 @@ "method": "", "name": "newsletterQuestionReplyOrTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionReply", @@ -1995,7 +2004,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -2004,15 +2013,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2025,7 +2034,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -2034,14 +2043,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -2053,21 +2062,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2097,7 +2106,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -2192,14 +2202,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -2211,21 +2221,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2237,15 +2247,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -2290,15 +2301,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -2336,14 +2347,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -2355,21 +2366,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2399,7 +2410,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -2494,14 +2506,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -2513,21 +2525,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2539,15 +2551,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -2592,15 +2605,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -2644,7 +2657,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -2653,15 +2666,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2674,7 +2687,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -2683,14 +2696,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -2702,21 +2715,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2746,7 +2759,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -2841,14 +2855,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -2860,21 +2874,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -2886,15 +2900,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -2939,15 +2954,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -2986,7 +3001,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -2994,21 +3009,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -3042,14 +3057,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -3061,21 +3076,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -3105,7 +3120,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInNewslettersEnums", @@ -3200,14 +3216,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -3219,21 +3235,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -3245,15 +3261,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInNewslettersEnums", @@ -3298,15 +3315,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -3334,14 +3351,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -3353,7 +3370,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -3361,7 +3378,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -3372,7 +3389,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -3380,15 +3397,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -3417,14 +3434,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -3436,7 +3453,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -3444,7 +3461,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -3455,7 +3472,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -3463,15 +3480,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -3500,14 +3517,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -3519,7 +3536,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -3527,7 +3544,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result_snapshot", "sourcePath": [ "meta" @@ -3536,15 +3553,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -3574,7 +3591,7 @@ "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -3583,15 +3600,15 @@ { "method": "", "name": "adminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -3600,15 +3617,15 @@ { "method": "", "name": "adminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -3618,7 +3635,7 @@ "method": "", "name": "newsletterWamoEmptyContent", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionEmpty", @@ -3628,7 +3645,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -3638,7 +3655,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -3648,7 +3665,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -3672,7 +3689,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -3706,7 +3723,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -3716,7 +3733,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -3726,7 +3743,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -3750,7 +3767,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -3784,7 +3801,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -3808,7 +3825,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -3832,7 +3849,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -3840,7 +3857,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -3851,7 +3868,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -3877,7 +3894,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -3885,7 +3902,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -3896,7 +3913,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -3929,14 +3946,14 @@ { "method": "", "name": "newsletterReactionsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "reactionsReaction", "type": "string", - "required": true, + "parserRequired": true, "tag": "reaction", "children": [ { @@ -3944,14 +3961,14 @@ "name": "code", "wireName": "code", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true, @@ -3965,14 +3982,14 @@ { "method": "", "name": "newsletterPollVotesMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { @@ -3980,13 +3997,13 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -4001,15 +4018,15 @@ { "method": "", "name": "newsletterResponsesCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "responsesCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "responses_count" ] @@ -4020,15 +4037,15 @@ { "method": "", "name": "receiverContentTypeMediaRCATMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "plaintextMediatype", "wireName": "mediatype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "url", "sourcePath": [ "plaintext" @@ -4038,7 +4055,7 @@ "method": "contentBytes", "name": "rcatElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "rcat" ] @@ -4048,7 +4065,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -4057,15 +4074,15 @@ { "method": "", "name": "newsletterForwardsCountMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "forwardsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "forwards_count" ] @@ -4077,7 +4094,7 @@ "method": "", "name": "newsletterViewsCountViewsOrDeprecatedMixinGroup", "type": "union", - "required": false, + "parserRequired": false, "unionVariants": [ { "name": "NewsletterViewsCountViews", @@ -4086,7 +4103,7 @@ "method": "child", "name": "viewsCount", "type": "string", - "required": true, + "parserRequired": true, "tag": "views_count", "children": [ { @@ -4094,7 +4111,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "views" }, { @@ -4102,7 +4119,7 @@ "name": "count", "wireName": "count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": true @@ -4123,7 +4140,7 @@ "name": "viewsCountCount", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "views_count" ] @@ -4152,14 +4169,14 @@ "name": "from", "wireName": "from", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "newsletter" }, { @@ -4167,21 +4184,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -4210,14 +4227,14 @@ "name": "from", "wireName": "from", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "psa" }, { @@ -4225,21 +4242,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -4268,28 +4285,28 @@ "name": "from", "wireName": "from", "type": "user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "psa" }, { "method": "child", "name": "surfacesQPSurfacesMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "surfaces", "children": [ { "method": "child", "name": "surface", "type": "string", - "required": true, + "parserRequired": true, "tag": "surface", "children": [ { @@ -4297,13 +4314,13 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "promotion", "type": "string", - "required": true, + "parserRequired": true, "tag": "promotion", "children": [ { @@ -4311,20 +4328,20 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "instanceId", "wireName": "instance_id", "type": "string", - "required": false + "parserRequired": false }, { "method": "contentString", "name": "titleElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "title" ] @@ -4333,7 +4350,7 @@ "method": "contentString", "name": "textElementValue", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "text" ] @@ -4343,7 +4360,7 @@ "name": "qpConfigTemplateName", "wireName": "template_name", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4353,7 +4370,7 @@ "name": "qpConfigStartTimeSeconds", "wireName": "start_time_seconds", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4363,7 +4380,7 @@ "name": "qpConfigEndTimeSeconds", "wireName": "end_time_seconds", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4373,7 +4390,7 @@ "name": "qpConfigTtlSeconds", "wireName": "ttl_seconds", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4383,7 +4400,8 @@ "name": "qpConfigDismissable", "wireName": "dismissable", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInQpSurfacesEnums", @@ -4407,7 +4425,8 @@ "name": "qpConfigForcePass", "wireName": "force_pass", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInQpSurfacesEnums", @@ -4431,7 +4450,7 @@ "name": "qpConfigSurfaceDelayTimeSeconds", "wireName": "surface_delay_time_seconds", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4441,7 +4460,8 @@ "name": "qpConfigDeterministic", "wireName": "deterministic", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInQpSurfacesEnums", @@ -4465,7 +4485,7 @@ "name": "qpConfigExperimentKey", "wireName": "experiment_key", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "qp_config" ] @@ -4475,7 +4495,8 @@ "name": "qpConfigExposureHoldout", "wireName": "exposure_holdout", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInQpSurfacesEnums", @@ -4499,7 +4520,7 @@ "name": "qpConfigMaxImpressions", "wireName": "max_impressions", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4509,7 +4530,7 @@ "name": "qpConfigImpressionCooldown", "wireName": "impression_cooldown", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4519,7 +4540,7 @@ "name": "qpConfigEligibilityDurationMs", "wireName": "eligibility_duration_ms", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4529,7 +4550,7 @@ "name": "qpConfigPriority", "wireName": "priority", "type": "integer", - "required": true, + "parserRequired": true, "sourcePath": [ "qp_config" ] @@ -4539,7 +4560,8 @@ "name": "qpConfigLogEligibilityWaterfall", "wireName": "log_eligibility_waterfall", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInQpSurfacesEnums", @@ -4562,7 +4584,7 @@ "method": "child", "name": "header", "type": "string", - "required": false, + "parserRequired": false, "tag": "header", "children": [ { @@ -4570,7 +4592,7 @@ "name": "title", "wireName": "title", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false @@ -4579,7 +4601,7 @@ "method": "child", "name": "image", "type": "string", - "required": false, + "parserRequired": false, "tag": "image", "children": [ { @@ -4587,20 +4609,20 @@ "name": "description", "wireName": "description", "type": "string", - "required": true + "parserRequired": true }, { "method": "child", "name": "light", "type": "string", - "required": false, + "parserRequired": false, "tag": "light", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false @@ -4609,14 +4631,14 @@ "method": "child", "name": "dark", "type": "string", - "required": false, + "parserRequired": false, "tag": "dark", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false @@ -4628,7 +4650,7 @@ "method": "child", "name": "primaryAction", "type": "string", - "required": false, + "parserRequired": false, "tag": "primary_action", "children": [ { @@ -4636,21 +4658,21 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "universalLink", "wireName": "universal_link", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "deepLink", "wireName": "deep_link", "type": "string", - "required": false + "parserRequired": false } ], "repeats": false @@ -4659,7 +4681,7 @@ "method": "child", "name": "secondaryAction", "type": "string", - "required": false, + "parserRequired": false, "tag": "secondary_action", "children": [ { @@ -4667,21 +4689,21 @@ "name": "text", "wireName": "text", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "universalLink", "wireName": "universal_link", "type": "string", - "required": false + "parserRequired": false }, { "method": "maybeAttrString", "name": "deepLink", "wireName": "deep_link", "type": "string", - "required": false + "parserRequired": false } ], "repeats": false @@ -4690,7 +4712,7 @@ "method": "child", "name": "colors", "type": "string", - "required": false, + "parserRequired": false, "tag": "colors", "children": [ { @@ -4698,7 +4720,7 @@ "name": "lightBackground", "wireName": "background", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "light" ] @@ -4708,7 +4730,7 @@ "name": "lightHighlight", "wireName": "highlight", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "light" ] @@ -4718,7 +4740,7 @@ "name": "darkBackground", "wireName": "background", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "dark" ] @@ -4728,7 +4750,7 @@ "name": "darkHighlight", "wireName": "highlight", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "dark" ] @@ -4740,14 +4762,14 @@ "method": "child", "name": "contentAttributes", "type": "string", - "required": false, + "parserRequired": false, "tag": "content_attributes", "children": [ { "method": "child", "name": "attribute", "type": "string", - "required": true, + "parserRequired": true, "tag": "attribute", "children": [ { @@ -4755,14 +4777,14 @@ "name": "key", "wireName": "key", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "value", "wireName": "value", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true @@ -4774,14 +4796,14 @@ "method": "child", "name": "qpConfigFilterRules", "type": "string", - "required": false, + "parserRequired": false, "tag": "filter_rules", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -4793,14 +4815,14 @@ "method": "child", "name": "qpConfigInstanceLogData", "type": "string", - "required": false, + "parserRequired": false, "tag": "instance_log_data", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -4812,14 +4834,14 @@ "method": "child", "name": "qpConfigPacing", "type": "string", - "required": false, + "parserRequired": false, "tag": "pacing", "children": [ { "method": "child", "name": "promotionConfig", "type": "string", - "required": false, + "parserRequired": false, "tag": "promotion_config", "children": [ { @@ -4827,28 +4849,28 @@ "name": "maxImpressions", "wireName": "max_impressions", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "maxPrimaryClicks", "wireName": "max_primary_clicks", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "maxSecondaryClicks", "wireName": "max_secondary_clicks", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "maxDismisses", "wireName": "max_dismisses", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -4857,7 +4879,7 @@ "method": "child", "name": "userInfo", "type": "string", - "required": false, + "parserRequired": false, "tag": "user_info", "children": [ { @@ -4865,28 +4887,28 @@ "name": "impressionCount", "wireName": "impression_count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "primaryClickCount", "wireName": "primary_click_count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "secondaryClickCount", "wireName": "secondary_click_count", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "dismissClickCount", "wireName": "dismiss_click_count", "type": "integer", - "required": true + "parserRequired": true } ], "repeats": false @@ -4901,7 +4923,7 @@ "method": "child", "name": "qpConfigTriggersTrigger", "type": "string", - "required": true, + "parserRequired": true, "tag": "trigger", "children": [ { @@ -4909,7 +4931,7 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true } ], "repeats": true, @@ -4932,21 +4954,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -4975,21 +4997,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "to", "wireName": "to", "type": "user_jid", - "required": false + "parserRequired": false }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "business" }, { @@ -4997,7 +5019,7 @@ "name": "mmCampaignAdId", "wireName": "ad_id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "mm_campaign" ] @@ -5007,7 +5029,7 @@ "name": "mmCampaignAdGroupId", "wireName": "ad_group_id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "mm_campaign" ] @@ -5017,7 +5039,7 @@ "name": "mmCampaignAdCreativeId", "wireName": "ad_creative_id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "mm_campaign" ] @@ -5027,7 +5049,8 @@ "name": "mmCampaignStatus", "wireName": "status", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_INTEGRITYNOTCLEARED_OK", "module": "WASmaxInSmbMeteredMessagesCampaignEnums", @@ -5051,21 +5074,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -5094,14 +5117,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "waffle" }, { @@ -5109,7 +5132,7 @@ "name": "notificationMetadataEvent", "wireName": "event", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 7, "sourcePath": [ @@ -5121,7 +5144,8 @@ "name": "notificationMetadataShowUserNotif", "wireName": "show_user_notif", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -5145,7 +5169,7 @@ "name": "notificationMetadataType", "wireName": "type", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 0, "sourcePath": [ @@ -5157,7 +5181,8 @@ "name": "notificationMetadataClientResync", "wireName": "client_resync", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -5181,7 +5206,7 @@ "name": "notificationMetadataSyncDelay", "wireName": "sync_delay", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "notification_metadata" ] @@ -5191,7 +5216,8 @@ "name": "notificationMetadataNpr", "wireName": "npr", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInWaffleEnums", @@ -5215,21 +5241,21 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": false, + "parserRequired": false, "intMin": 0, "intMax": 1024 } @@ -5263,21 +5289,21 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "xmlns", "wireName": "xmlns", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "md" }, { "method": "contentBytes", "name": "pairSuccessDeviceIdentityElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 500, "sourcePath": [ @@ -5290,7 +5316,7 @@ "name": "pairSuccessDeviceJid", "wireName": "jid", "type": "device_jid", - "required": true, + "parserRequired": true, "sourcePath": [ "pair-success", "device" @@ -5301,7 +5327,7 @@ "name": "pairSuccessDeviceLid", "wireName": "lid", "type": "device_jid", - "required": false, + "parserRequired": false, "sourcePath": [ "pair-success", "device" @@ -5312,7 +5338,8 @@ "name": "pairSuccessDeviceBeta", "wireName": "beta", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_FALSE_TRUE", "module": "WASmaxInMdEnums", @@ -5337,7 +5364,7 @@ "name": "pairSuccessPlatformName", "wireName": "name", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "pair-success", "platform" @@ -5348,21 +5375,21 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "set" }, { "method": "child", "name": "pairSuccessBiz", "type": "string", - "required": false, + "parserRequired": false, "tag": "biz", "children": [ { @@ -5370,7 +5397,7 @@ "name": "name", "wireName": "name", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -5382,14 +5409,14 @@ "method": "child", "name": "pairSuccessClientProps", "type": "string", - "required": false, + "parserRequired": false, "tag": "client-props", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": false, @@ -5401,7 +5428,7 @@ "method": "child", "name": "pairSuccessEncryptionMetadata", "type": "string", - "required": false, + "parserRequired": false, "tag": "encryption-metadata", "children": [ { @@ -5409,7 +5436,7 @@ "name": "version", "wireName": "version", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "1" }, { @@ -5417,14 +5444,14 @@ "name": "algorithm", "wireName": "algorithm", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "aes-256-gcm" }, { "method": "contentBytes", "name": "encryptedKeyElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 2048, "sourcePath": [ @@ -5435,7 +5462,7 @@ "method": "contentBytes", "name": "nonceElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -5446,7 +5473,7 @@ "method": "contentBytes", "name": "encryptedDataElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 8192, "sourcePath": [ @@ -5457,7 +5484,7 @@ "method": "contentBytes", "name": "authTagElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 128, "sourcePath": [ @@ -5500,14 +5527,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "xmlns", "wireName": "xmlns", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "md" }, { @@ -5515,28 +5542,28 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "set" }, { "method": "child", "name": "pairDeviceRef", "type": "string", - "required": true, + "parserRequired": true, "tag": "ref", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true + "parserRequired": true } ], "repeats": true, @@ -5564,14 +5591,14 @@ "name": "from", "wireName": "from", "type": "jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrInt", "name": "clientExpirationT", "wireName": "t", "type": "integer", - "required": false, + "parserRequired": false, "sourcePath": [ "client_expiration" ] @@ -5595,7 +5622,7 @@ "method": "", "name": "presenceUpdates", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "GroupAvailable", @@ -5605,14 +5632,14 @@ "name": "from", "wireName": "from", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "count", "wireName": "count", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1, "intMax": 1024 } @@ -5632,14 +5659,14 @@ "name": "from", "wireName": "from", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "unavailable" } ], @@ -5663,14 +5690,14 @@ "name": "from", "wireName": "from", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "unavailable" }, { @@ -5678,7 +5705,8 @@ "name": "last", "wireName": "last", "type": "enum", - "required": false, + "parserRequired": false, + "unknownValue": "reject", "enumRef": { "name": "ENUM_DENY_ERROR_NONE", "module": "WASmaxInPresenceEnums", @@ -5719,14 +5747,14 @@ "name": "from", "wireName": "from", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "unavailable" }, { @@ -5734,7 +5762,7 @@ "name": "last", "wireName": "last", "type": "string", - "required": false + "parserRequired": false } ], "assertions": [ @@ -5757,14 +5785,14 @@ "name": "from", "wireName": "from", "type": "lid_user_jid", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "type", "wireName": "type", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "available" }, { @@ -5772,7 +5800,7 @@ "name": "last", "wireName": "last", "type": "string", - "required": false + "parserRequired": false } ], "assertions": [ @@ -5802,15 +5830,15 @@ { "method": "", "name": "internalTestMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "testConfig", "wireName": "config", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "test" ] @@ -5822,7 +5850,7 @@ "method": "", "name": "stateSource", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "FromUser", @@ -5832,7 +5860,7 @@ "name": "from", "wireName": "from", "type": "jid_typed", - "required": true + "parserRequired": true } ], "assertions": [ @@ -5850,21 +5878,21 @@ "name": "from", "wireName": "from", "type": "group_jid", - "required": true + "parserRequired": true }, { "method": "attrJidEnum", "name": "participant", "wireName": "participant", "type": "jid_typed", - "required": true + "parserRequired": true }, { "method": "attrUserJid", "name": "participantPn", "wireName": "participant_pn", "type": "user_jid", - "required": false + "parserRequired": false } ], "assertions": [ @@ -5880,7 +5908,7 @@ "method": "", "name": "stateTypes", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "Composing", @@ -5890,7 +5918,7 @@ "name": "composingMedia", "wireName": "media", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "audio", "sourcePath": [ "composing" @@ -5930,21 +5958,21 @@ "name": "from", "wireName": "from", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -5953,28 +5981,28 @@ "name": "t", "wireName": "t", "type": "integer", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "newsletterMessageOriginalTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaOriginalMsgT", "wireName": "original_msg_t", "type": "timestamp", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -5985,15 +6013,15 @@ { "method": "", "name": "newsletterMessageLastEditTimestampMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "metaMsgEditT", "wireName": "msg_edit_t", "type": "timestamp_millis", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -6004,15 +6032,15 @@ { "method": "", "name": "adminProfileMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "id", "wireName": "id", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta", "admin_profile" @@ -6022,14 +6050,14 @@ "method": "child", "name": "name", "type": "string", - "required": false, + "parserRequired": false, "tag": "name", "children": [ { "method": "contentString", "name": "elementValue", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -6042,7 +6070,7 @@ "method": "child", "name": "picture", "type": "string", - "required": false, + "parserRequired": false, "tag": "picture", "children": [ { @@ -6050,14 +6078,14 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrString", "name": "directPath", "wireName": "direct_path", "type": "string", - "required": true + "parserRequired": true } ], "repeats": false, @@ -6073,19 +6101,19 @@ "method": "", "name": "hasPaidPartnershipContentMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "hasNewsletterAIContentMetaMixin", "type": "bool", - "required": true + "parserRequired": true }, { "method": "", "name": "newsletterMessageFanoutContent", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestion", @@ -6095,7 +6123,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -6104,15 +6132,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6125,7 +6153,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -6134,14 +6162,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -6153,21 +6181,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6197,7 +6225,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInMessageDeliverEnums", @@ -6292,14 +6321,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -6311,21 +6340,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6337,15 +6366,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInMessageDeliverEnums", @@ -6390,15 +6420,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -6436,14 +6466,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -6455,7 +6485,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { @@ -6463,7 +6493,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "response", "sourcePath": [ "meta" @@ -6474,7 +6504,7 @@ "name": "metaResponseServerId", "wireName": "response_server_id", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "meta" ] @@ -6500,21 +6530,21 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6527,7 +6557,7 @@ "method": "", "name": "newsletterQuestionReplyOrTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionReply", @@ -6537,7 +6567,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -6546,15 +6576,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6567,7 +6597,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -6576,14 +6606,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -6595,21 +6625,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6639,7 +6669,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInMessageDeliverEnums", @@ -6734,14 +6765,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -6753,21 +6784,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6779,15 +6810,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInMessageDeliverEnums", @@ -6832,15 +6864,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -6878,14 +6910,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -6897,21 +6929,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -6941,7 +6973,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInMessageDeliverEnums", @@ -7036,14 +7069,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -7055,21 +7088,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -7081,15 +7114,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInMessageDeliverEnums", @@ -7134,15 +7168,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -7186,7 +7220,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -7195,15 +7229,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -7216,7 +7250,7 @@ "method": "", "name": "newsletterTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterText", @@ -7225,14 +7259,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -7244,21 +7278,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -7288,7 +7322,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInMessageDeliverEnums", @@ -7383,14 +7418,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -7402,21 +7437,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -7428,15 +7463,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInMessageDeliverEnums", @@ -7481,15 +7517,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -7528,7 +7564,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -7536,21 +7572,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -7584,14 +7620,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -7603,21 +7639,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -7647,7 +7683,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_1PSTICKER_AUDIO_AVATARSTICKER_CATALOGLINK_COLLECTION_DOCUMENT_GENAISTICKER_GIF_IMAGE_MOTIONPHOTO_MOTIONVIDEO_PRODUCTLINK_PTT_PTV_STICKER_STICKERPACK_URL_USERCREATEDSTICKER_VCARD_VIDEO", "module": "WASmaxInMessageDeliverEnums", @@ -7742,14 +7779,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -7761,21 +7798,21 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" }, { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -7787,15 +7824,16 @@ { "method": "", "name": "messageAssociationTypeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrEnum", "name": "metaMessageAssociationType", "wireName": "message_association_type", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_HDIMAGEDUALUPLOAD_HDVIDEODUALUPLOAD_HEVCVIDEODUALUPLOAD_MEDIAPOLL_MOTIONPHOTO_POLLADDOPTION_STICKERANNOTATION", "module": "WASmaxInMessageDeliverEnums", @@ -7840,15 +7878,15 @@ { "method": "", "name": "mediaMetaMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "maybeAttrString", "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -7877,7 +7915,7 @@ "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -7887,7 +7925,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -7911,7 +7949,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" }, { @@ -7919,7 +7957,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -7947,14 +7985,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -7966,7 +8004,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -7974,7 +8012,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -7985,7 +8023,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -7993,15 +8031,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -8030,14 +8068,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -8049,7 +8087,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -8057,7 +8095,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -8068,7 +8106,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -8076,15 +8114,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -8114,7 +8152,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -8122,7 +8160,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "vote", "sourcePath": [ "meta" @@ -8133,7 +8171,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -8142,14 +8180,14 @@ "method": "child", "name": "votesVote", "type": "string", - "required": true, + "parserRequired": true, "tag": "vote", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteLength": 32 } ], @@ -8178,14 +8216,14 @@ "method": "child", "name": "plaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -8197,7 +8235,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -8205,7 +8243,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "result_snapshot", "sourcePath": [ "meta" @@ -8214,15 +8252,15 @@ { "method": "", "name": "wAMOSubMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -8252,7 +8290,7 @@ "name": "metaIsWamoSub", "wireName": "is_wamo_sub", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "true", "sourcePath": [ "meta" @@ -8261,15 +8299,15 @@ { "method": "", "name": "adminRevokeMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" } ], @@ -8278,15 +8316,15 @@ { "method": "", "name": "adminEditMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "3" } ], @@ -8296,7 +8334,7 @@ "method": "", "name": "newsletterWamoEmptyContent", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "NewsletterQuestionEmpty", @@ -8306,7 +8344,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "question", "sourcePath": [ "meta" @@ -8316,7 +8354,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -8326,7 +8364,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -8350,7 +8388,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -8384,7 +8422,7 @@ "name": "metaQuestiontype", "wireName": "questiontype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reply", "sourcePath": [ "meta" @@ -8394,7 +8432,7 @@ "method": "", "name": "contentTypeTextOrMediaMixinGroup", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "ContentTypeText", @@ -8404,7 +8442,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -8428,7 +8466,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -8462,7 +8500,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -8486,7 +8524,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -8510,7 +8548,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -8518,7 +8556,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "creation", "sourcePath": [ "meta" @@ -8529,7 +8567,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -8555,7 +8593,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "poll" }, { @@ -8563,7 +8601,7 @@ "name": "metaPolltype", "wireName": "polltype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "quiz_creation", "sourcePath": [ "meta" @@ -8574,7 +8612,7 @@ "name": "metaContenttype", "wireName": "contenttype", "type": "string", - "required": false, + "parserRequired": false, "sourcePath": [ "meta" ] @@ -8607,15 +8645,15 @@ { "method": "", "name": "offlineMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 12 } @@ -8625,15 +8663,15 @@ { "method": "", "name": "stsMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "sts", "wireName": "sts", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 1577865600000000, "intMax": 4102473600000000 } @@ -8643,15 +8681,15 @@ { "method": "", "name": "receiverContentTypeMediaRCATMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrString", "name": "plaintextMediatype", "wireName": "mediatype", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "url", "sourcePath": [ "plaintext" @@ -8661,7 +8699,7 @@ "method": "contentBytes", "name": "rcatElementValue", "type": "bytes", - "required": true, + "parserRequired": true, "sourcePath": [ "rcat" ] @@ -8671,7 +8709,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -8697,21 +8735,21 @@ "name": "id", "wireName": "id", "type": "string", - "required": true + "parserRequired": true }, { "method": "attrNewsletterJid", "name": "from", "wireName": "from", "type": "newsletter_jid", - "required": true + "parserRequired": true }, { "method": "attrInt", "name": "serverId", "wireName": "server_id", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 99, "intMax": 2147476647 }, @@ -8720,21 +8758,21 @@ "name": "t", "wireName": "t", "type": "timestamp", - "required": true + "parserRequired": true }, { "method": "maybeAttrString", "name": "isSender", "wireName": "is_sender", "type": "string", - "required": false, + "parserRequired": false, "literalValue": "true" }, { "method": "", "name": "newsletterStatusContentTypeMixins", "type": "union", - "required": true, + "parserRequired": true, "unionVariants": [ { "name": "StatusNewsletterRevoke", @@ -8744,7 +8782,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "8" }, { @@ -8752,7 +8790,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -8780,14 +8818,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -8799,7 +8837,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "text" } ], @@ -8823,7 +8861,8 @@ "name": "plaintextMediatype", "wireName": "mediatype", "type": "enum", - "required": true, + "parserRequired": true, + "unknownValue": "reject", "enumRef": { "name": "ENUM_AUDIO_GIF_IMAGE_VIDEO", "module": "WASmaxInStatusDeliverEnums", @@ -8854,14 +8893,14 @@ "method": "child", "name": "plaintextNewsletterPlaintextPayloadMixin", "type": "string", - "required": true, + "parserRequired": true, "tag": "plaintext", "children": [ { "method": "contentBytes", "name": "elementValue", "type": "bytes", - "required": true, + "parserRequired": true, "byteMin": 1, "byteMax": 1048576 } @@ -8873,7 +8912,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "media" } ], @@ -8897,7 +8936,7 @@ "name": "reactionCode", "wireName": "code", "type": "string", - "required": true, + "parserRequired": true, "sourcePath": [ "reaction" ] @@ -8907,7 +8946,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -8931,7 +8970,7 @@ "name": "edit", "wireName": "edit", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "7" }, { @@ -8939,7 +8978,7 @@ "name": "type", "wireName": "type", "type": "string", - "required": true, + "parserRequired": true, "literalValue": "reaction" } ], @@ -8965,15 +9004,15 @@ { "method": "", "name": "offlineMixin", - "type": "string", - "required": false, + "type": "node", + "parserRequired": false, "children": [ { "method": "attrInt", "name": "offline", "wireName": "offline", "type": "integer", - "required": true, + "parserRequired": true, "intMin": 0, "intMax": 12 } diff --git a/generated/stanza/index.json b/generated/stanza/index.json index 0fb9bdd9..ab899636 100644 --- a/generated/stanza/index.json +++ b/generated/stanza/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "stanzas": [ { @@ -4323,7 +4323,8 @@ }, { "name": "to", - "kind": "dynamic", + "kind": "const", + "value": "s.whatsapp.net", "required": true } ], @@ -4452,7 +4453,8 @@ "attrs": [ { "name": "to", - "kind": "dynamic", + "kind": "const", + "value": "s.whatsapp.net", "required": true }, { @@ -4947,7 +4949,8 @@ "attrs": [ { "name": "to", - "kind": "dynamic", + "kind": "const", + "value": "s.whatsapp.net", "required": true }, { @@ -5153,7 +5156,8 @@ }, { "name": "to", - "kind": "dynamic", + "kind": "const", + "value": "s.whatsapp.net", "required": true } ], diff --git a/generated/tokens/index.json b/generated/tokens/index.json index e18cc135..88d6e107 100644 --- a/generated/tokens/index.json +++ b/generated/tokens/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "dictVersion": 3, "singleByte": [ diff --git a/generated/wam/index.json b/generated/wam/index.json index 0e61c571..bd396e4d 100644 --- a/generated/wam/index.json +++ b/generated/wam/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "events": [ { diff --git a/generated/wasm/index.json b/generated/wasm/index.json index f871d8e1..7d72c3f8 100644 --- a/generated/wasm/index.json +++ b/generated/wasm/index.json @@ -1,5 +1,5 @@ { - "schemaVersion": "2.0.0", + "schemaVersion": "3.0.0", "waVersion": "2.3000.1044659339", "binaries": [ { diff --git a/scripts/lint-ir.py b/scripts/lint-ir.py index b0ee5c9e..ac1303d9 100755 --- a/scripts/lint-ir.py +++ b/scripts/lint-ir.py @@ -33,6 +33,26 @@ # recover is now being lost, and the number has to be updated with a reason. BASELINE = { "content integer with no byte width": 0, + # An accessor that checks a value set whose out-of-set behaviour `wa_ir::wap` has not + # judged. Held at zero: a new WA enum accessor must be classified, not silently + # assumed to reject, which is what the whole `unknownValue` dimension exists to stop. + "enum accessor with no judged unknown-value policy": 0, + # `` requests the scan could not address, pinned per state so a swap between the + # two is not invisible. The four are the newsletter builders, whose `to` comes from + # `mergeNewsletterIQ*RequestMixin` as `WAWap.JID(newsletterId)` — a runtime JID with + # no fixed server, so `unknown` is what they are and `unset` would be a lie about + # them. Counted here rather than floor-guarded because these must FALL as extraction + # improves; `diagnostics.iq.targets.resolved` guards the other direction in + # `check_floor`, so a request cannot move from an address to no address unseen. + # The fifth is `makeGetGroupProfilePicturesRequest`, and it is here by CORRECTION + # rather than by loss: it folds in `mergeBaseGetGroupOrServerMixinGroup`, a runtime + # router whose two arms address a group's own JID and the group server, so the union + # reaches both and the caller's argument decides. It was published as `group_jid` + # until the union learned to record a conflicting addressee the way it already did + # for `xmlns` and `type`. Raising a baseline is normally the shape of a loss; this + # once it is the shape of a claim withdrawn. + "iq request with a unknown addressee": 5, + "iq request with a unset addressee": 0, } # The enums no extraction path could resolve, by IDENTITY rather than by total. @@ -122,9 +142,17 @@ "string", "integer", "timestamp", "timestamp_millis", "enum", "bytes", "jid", "user_jid", "lid_user_jid", "device_jid", "lid_device_jid", "group_jid", "newsletter_jid", "call_jid", "broadcast_jid", "status_jid", - "jid_typed", "bool", "union", + "jid_typed", "bool", "union", "node", } +# The `UnknownValuePolicy` vocabulary, mirroring `wa_ir::UnknownValuePolicy`. +UNKNOWN_VALUE_POLICIES = {"reject", "null", "unclassified"} + +# Addressee values that name no server. `wa_ir::IqTarget::is_resolved` is their negation; +# the two must agree, so a variant added on one side and not the other is a lint failure +# rather than a number that quietly stops counting anything. +UNRESOLVED_TARGETS = {"unset", "unknown"} + def collect_unresolved_enums(data, domain, proto_enums, out): """Every enum field no extraction path could resolve, keyed by SEMANTIC path. @@ -431,6 +459,64 @@ def check_field(f, path, domain, errors, counts, proto_enums): f"which pin the value to different things" ) + # A field with NO accessor whose content is its children is a structural container, + # not a value. It used to declare `string` — `method_field_type("")` fell through to + # the default — so a generator switching on `type` emitted a scalar for a node with a + # subtree, 617 times across the emitted documents. + children = f.get("children") + if children is not None and not isinstance(children, list): + errors.append(f"{path}: children is {type(children).__name__}, not a list") + children = None + if not method and children and t != "node": + errors.append( + f"{path}: no accessor and {len(children)} child(ren), but declares " + f"scalar type {t!r} — a container is not a value" + ) + # And the converse, so the type cannot be handed out to anything else: `node` is only + # ever a container. A `node` with an accessor would be claiming both at once. + if t == "node" and (method or not children): + errors.append( + f"{path}: type 'node' with " + f"{'an accessor' if method else 'no children'} — `node` means the field IS " + f"its children and reads nothing itself" + ) + + # The out-of-set dimension. It must be present exactly where the IR publishes a value + # set to fall outside of, and absent everywhere else: a policy on a field whose set the + # document does not carry tells a consumer that unrecognised values are rejected while + # naming nothing to recognise, and omitting it on a field that DOES carry one leaves + # the `attrEnum`/`attrEnumOrNullIfUnknown` pair indistinguishable — same `type`, same + # `parserRequired`, opposite behaviour on an unrecognised value. + # + # Keyed on the decoded type, mirroring `wa_ir::wap::has_closed_value_set`. Keying on + # the accessor spelling instead put a policy on all 34 `attrJidEnum` fields, whose + # JID-server table the enum linker never resolves — the unusable state this dimension + # exists to remove rather than relocate. + # `appstate` is excluded because its enums are not WAP accessors at all: an action + # field names a protobuf enum via `protoEnum`, resolved and checked against + # `WAProto.proto` above. There is no accessor whose out-of-set behaviour could be + # classified, so requiring the dimension there would be asking a question the domain + # does not have. + policy = f.get("unknownValue") + if policy is not None and not isinstance(policy, str): + errors.append(f"{path}: unknownValue is {policy!r}, not a string") + policy = None + checks_a_set = t == "enum" and domain != "appstate" + if policy is not None and policy not in UNKNOWN_VALUE_POLICIES: + errors.append(f"{path}: unknownValue {policy!r} is not in the policy vocabulary") + elif checks_a_set and policy is None: + errors.append( + f"{path}: an enum field with no unknownValue — whether an unrecognised value " + f"is rejected or nulled is what decides if a generated enum may be closed" + ) + elif policy is not None and not checks_a_set: + errors.append( + f"{path}: unknownValue {policy!r} on a {t!r} field, which publishes no value " + f"set — a policy for a set that is not there" + ) + if policy == "unclassified": + counts["enum accessor with no judged unknown-value policy"] += 1 + def check_enum_ref(node, path, errors, seen_refs=None): """An `enumRef` anywhere, not only on a `ParsedField`. @@ -631,6 +717,111 @@ def visit(node, path): walk(data, visit) +def collect_catalog_keys(path, errors): + """`(module, name)` for every entry in the enum catalog, and the collisions in it. + + Returns `(keys, duplicates)`. The key is the PAIR: four names in the catalog are + defined twice, and `EventType`'s two definitions disagree on `valueKind`, so a + consumer indexing by name generates a type from the wrong universe. Reading the + catalog once here, rather than per-document, keeps the reference check O(refs). + """ + try: + data = json.loads(path.read_text()) + except (OSError, json.JSONDecodeError) as e: + # Not "nothing to check" — the worst case. Every `enumRef` in every other domain + # resolves against this file, so an unreadable one means the reference check + # cannot run at all; returning quietly would print "internally consistent" over a + # document whose every enum reference is unverified. + errors.append( + f"enums: the catalog at {path} cannot be read ({e}) — every enumRef in " + f"every domain resolves against it, so the reference check cannot run" + ) + return None, [] + # Readable is not the same as well-formed. A catalog that parses but is not an object + # with an `enums` list resolves nothing, and reporting that beats a TypeError from the + # first `.get()` — the linter exists to name malformed input, not to fall over on it. + if not isinstance(data, dict) or not isinstance(data.get("enums"), list): + errors.append( + f"enums: the catalog at {path} is not an object with an `enums` list — " + f"no enumRef in any domain can resolve against it" + ) + return None, [] + keys, dupes = set(), [] + for e in data["enums"]: + if not isinstance(e, dict): + continue + # A non-string identity is not a key. Guarded before it reaches a tuple, both + # because an unhashable `dict`/`list` would abort the linter with a TypeError + # instead of reporting the document, and because the report is the point. + module, name = e.get("module"), e.get("name") + if not isinstance(module, str) or not isinstance(name, str): + errors.append( + f"enums: an entry identifies itself as ({module!r}, {name!r}), which is " + f"not a (module, name) pair — nothing can reference it" + ) + continue + k = (module, name) + if k in keys: + dupes.append(k) + keys.add(k) + return keys, dupes + + +def check_catalog_resolution(data, domain, catalog_keys, errors): + """Every `enumRef` in the document names an entry of the enum catalog. + + The promise the catalog now makes: one index, one key, and a reference that always + lands. Before it did not — 75 of the 87 `(module, name)` pairs the IR referenced + existed nowhere in `enums/index.json`, so a generator reading the catalog emitted a + fraction of the types the IR names and hand-wrote the rest. Nothing said so, because + each reference carried its own copy of the variants and looked complete in place. + """ + if catalog_keys is None: + return + + def visit(node, path): + ref = node.get("enumRef") + if not isinstance(ref, dict): + return + module, name = ref.get("module"), ref.get("name") + if not isinstance(module, str) or not isinstance(name, str): + errors.append( + f"{domain}{path}/enumRef: names ({module!r}, {name!r}), which is not a " + f"(module, name) pair" + ) + return + key = (module, name) + if key not in catalog_keys: + errors.append( + f"{domain}{path}/enumRef: {module}.{name} resolves against no catalog " + f"entry — a consumer indexing enums/index.json cannot generate this type" + ) + + walk(data, visit) + + +def count_unresolved_targets(data, domain, counts): + """`` requests whose addressee the scan could not name, per state. + + A counted state, not an error: `unset` is a true statement about a builder that + writes no `to`. It is here so it can only fall — the number rising means requests + stopped resolving, which is how all 143 came to claim `s.whatsapp.net`. + + One counter per state, not a total for both. `unset` and `unknown` are different + claims — "writes no addressee" against "writes one this scan cannot name" — and a + single number is blind to a swap between them: the four newsletter requests turning + from `unknown` into `unset` would hold the sum at 4 and pass, having replaced a true + statement with a false one. That is the same substitution-under-an-aggregate the + unresolved-enum and flattened-key baselines are keyed by identity to avoid. + """ + if domain != "iq": + return + for st in data.get("stanzas") or []: + if isinstance(st, dict) and isinstance(st.get("target"), str) \ + and st["target"] in UNRESOLVED_TARGETS: + counts[f"iq request with a {st['target']} addressee"] += 1 + + def check_event_codes(data, domain, errors): """A WAM event's `code` is its wire identifier, so two events cannot share one. @@ -1143,6 +1334,14 @@ def main() -> int: # The protobuf enums an appstate `protoEnum` may name. A path that resolves to # nothing is not a constraint — it only looks like one because the string is present, # and the schema accepts any string. + # The one index every `enumRef` in every domain has to resolve against. + catalog_keys, catalog_dupes = collect_catalog_keys(root / "enums" / "index.json", errors) + for m, n in catalog_dupes: + errors.append( + f"enums: ({m}, {n}) is defined more than once — (module, name) is the " + f"catalog key and a duplicate makes it unresolvable" + ) + proto_enums = collect_proto_enums(root / "proto" / "WAProto.proto") proto_messages = collect_proto_messages(root / "proto" / "WAProto.proto") sync_fields = collect_sync_action_fields(root / "proto" / "WAProto.proto") @@ -1160,6 +1359,16 @@ def main() -> int: # line naming the file. errors.append(f"{doc}: cannot be read as JSON ({e})") continue + # Parsing is not the same as being a document. Every per-document check below + # reaches for keys on the root, so a top-level array or scalar aborts the linter + # with a `AttributeError` instead of reporting the file — the one input this whole + # script exists to name. Guarded once here rather than at each `.get()`. + if not isinstance(data, dict): + errors.append( + f"{doc}: the root is a {type(data).__name__}, not an object — " + f"an IR document is a {{ waVersion, … }} envelope" + ) + continue domain = doc.parent.name def visit(node, path, domain=domain): @@ -1207,6 +1416,8 @@ def visit(node, path, domain=domain): ) check_tokens(data, domain, errors) check_notif_identifiers(data, domain, errors) + check_catalog_resolution(data, domain, catalog_keys, errors) + count_unresolved_targets(data, domain, counts) collect_unresolved_enums(data, domain, proto_enums, unresolved) ok = True